TCP Integration

TCP Integration

Preparations

Set up NumberOk to recognize license plates.

You will notice LP overlay accompanying vehicles under View tab when recognition is tuned up properly.



TCP Integration settinga

Basic settings

Go to Settings > Analytic.

Check Analytics: comparison and result

Check Soft comparison and set Levenshtein distance to 2.

Uncheck Use RAW recognition results (unless you expect every recognition from a series being sent) to limit down the number of same LP events sent.

Set Do not show first X results to 1, 3, 5, 7 or 9.
 This parameter is used to refine the initial recognition. It is recommended to use
1 or 3 for high-speed roadways, 7 or 9 for stop-and-go use cases.

Click Apply.

Go to Settings > Integration > TCP server.

Check Enable TCP server to launch NumberOk TCP server.

Check Attach screenshots to events to have event frame snapshot attached to event data.

Check Send lost recognize events only to have a single event sent when the vehicle exits the area of interest.

Click Apply.

NumberOk will send events to every client that would connect to NumberOk TCP server.

NumberOk TCP server by default listens to the port 7700.

Preparing for tests

Download simple TCP client from this location on our Google Drive

Unpack files from the archive at a location of your preference on the computer NumberOk is installed on.

Open Windows command prompt

Make sure you are in the directory TCP client is located in and execute NumberOkSimpleClient.exe. You will see TCP client usage instructions.

Test #1

Execute NumberOkSimpleClient 127.0.0.1 7700

Expected result looks like the one below:

When no connection or no recognition results you will only see timeout messages.

Press Ctrl-C to terminate the TCP client.

Proceed to the Test #2 when results meet expectations.

Test #2

Launch TCP client at a different computer or using LAN/WAN IP address of the computer NumberOk is installed on.

Identify the IPv4 address of the computer that hosts NumberOk:

Launch TCP client following instructions above and execute the following:

NumberOkSimpleClient 10.0.3.218 7700

Make sure to replace 10.0.3.218 with a real IPv4 address.

On success the outcome will be similar to the below. 

On failure you will want to check host computer Firewall and your LAN/WAN routing settings to allow data over TCP exchange and proper port forwarding.

Multiple events for the same Licence Plate

Every license plate in view is recognized multiple times. A series of same plate recognitions share the same RuntimeID
 (check the package structure specs:
https://goo.gl/7DMWH4 *).

To ensure that the remote system is properly updated on important changes of license plate state NumberOk will send a package for the same license plate on:

1. NEW (number of skipped results taken into account), frame snapshot is sent along with event data;

2. UPDATE if Channel or zone changed;

3. UPDATE if Plate text refined, frame snapshot is sent along with event data;

4. UPDATE if Direction has changed;

5. UPDATE two times per minute (no frame snapshot sent);

6. LOST (LP quits either ROI for the Interval of number plate loss - 5 sec by the deafault).

For more details please see the Supplementary information section below.

The Interval of number plate loss is set at Settings > Connection - Recognition zones.

The receiving party is expected to join the events if required so based on RuntimeID
and using either of video frame snapshots from the series that fits the requirements the best.

Navigate to Settings > Integration > TCP server and check Send lost recognize events only to have a single event sent when a vehicle exits
the area of interest (either of ROI, for the time longer than
Interval of number plate loss).

Supplementary information

TCP events and post analytics

On the following table please find an explanation  how TCP and post analytics work

#

RAW recognition event, time ms

Number Plate

Runtime ID

TCP event

Comments

1

10:12:10 AM 100

AA7690EQ

123456789

~10:12:10 AM 100 TCP Event - NEW AA7690EQ

Events send immediately

2

10:12:10 AM 150

AA7690EQ

123456789



3

10:12:10 AM 200

AA7690EQ

123456789



4

10:12:10 AM 250

AA7690EO

123456789



5

10:12:10 AM 300

AA7690EO

123456789



6

10:12:10 AM 350

AA7690EO

123456789



7

10:12:10 AM 400

AA7690EO

123456789

~10:12:10 AM 400 TCP Event - Update - AA7690EO

event sent if license plate has been changed

8

10:12:10 AM 450

AA7690EO

123456789



9

10:12:10 AM 500

AA7690EO

123456789



10

10:12:10 AM 550

AA7690EO

123456789



11

10:12:10 AM 600

AA7690EO

123456789



12

10:12:10 AM 650

AA7690EO

123456789



13

10:12:10 AM 700

AA7690EO

123456789



14

10:12:10 AM 750

AA7690EO

123456789



15

10:12:10 AM 800

AA7690EO

123456789



16

10:12:10 AM 850

AA7690EO

123456789



17

10:12:10 AM 900

AA7690EO

123456789

~10:12:10 AM 900 TCP Event - Update - AA7690EO

Events sent on timeout (~500ms after previous events)

18

10:12:10 AM 950

AA7690EO

123456789



19

10:12:11 AM 000

AA7690EO

123456789



20

10:12:11 AM 050

AA7690EO

123456789



21

License plate left the frame





22

10:12:16 AM 050

----/----

123456789

~10:12:15 AM 1050 TCP Event - LOST - AA7690EO

Events sent after the last license plate recognition+5 s








 So for Parking solution, you need to use all our recognition  events:

  • New – it is the first recognition event. External software should check condition to open the barrier

  • Update – if something changes  (license plate, direction or country code). Your software should check the condition to open a barrier on update events too.

Also, NumberOk will send update events every ~500 ms if the vehicle is still in the frame and license plate is still recognizing.
 So it indicates that barriers are not open and the vehicle is waiting

  • Lost events  external software will  get after ~5s (by default) after last recognition (the vehicle had left the recognition zone rectangle)

 To understand that is the same car please use RuntimeID and you can “glue” results with this parameter

In the NumberOK interface or exported excel file you see the recognition results by lost event


Traffic solution

Please use only lost events you can choose send only lost events in the Numberok setting

Event-over-TCP Package Structure Specs: https://goo.gl/7DMWH4 *

Developer’s API: https://goo.gl/ocR1EN *



    • Related Articles

    • German Special Characters Transfer via TCP/IP Integration

      Specific German characters (e.g., ü, ö) are transferred via TCP/IP in a particular format. To correctly process these characters, check two fields: RawPlateNumber and UnicodePlateNumber. License plates containing special German characters should be ...
    • VMS integration

      General information NumberOk has been integrated with VMS . NumberOk sends to the VMS recognized license plates as Generic Events. For sending Generic Events from NumberOk are using a standard API call in the form of an HTTP string - also known as ...
    • NumberOk event package specification. Delivered over TCP

      In the TCP packet data pairs PARAM=VALUE are divided with ascii 0x05. Not every pair may appear in a package. Order of pairs may vary. Text is UTF-8 encoded. Pair "SystemId=N" ( N - integer value) is added to all events. Value - is primary key from ...
    • LPR Cameras Connection (NumberOk META)

      1. Adding LPR camera in NumberOk Meta Navigate to Settings > Integration > LPR Cameras Click Add Camera button. Add LPR camera dialog will open. Complete the dialog with the following: Camera type - FF group protocol Describe your camera Specify ...
    • Feature comparison table

      Key features (comparison across editions) Lite SMB Enterprise Meta Reporter ANPR Sources IP cameras Y Y Y n/a n/a DVR Y Y Y n/a n/a Video file Y Y Y n/a n/a ANPR camera n/a n/a n/a Y n/a Results refinement analytics Y Y Y n/a n/a # of source channels ...