It operates on top of a normal IP networkstack, the connections are simple TCP/IP socket connection.
Default port is 15740 (same as the ISO standard number for PTP).
There are 2 connections used:
The participants communicate in packets, their layout is:
Length | Variable | Notes |
---|---|---|
4 | length (little endian) | Length of the whole packet including the header |
4 | type (little endian) | Type, listed below |
length - 8 | data | specific on type |
Observed types:
Type | Direction | Name | Next reply(s) | Payload |
---|---|---|---|---|
1 | I->R | Init_Command_Request | 2 or 5 |
|
2 | R->I | Init_Command_Ack | 5 or MAINLOOP |
|
3 | I->R | Init_Event_Request | 4 or 5 |
|
4 | R->I | Init_Event_Ack | EVENTLOOP |
|
5 | I->R | Init_Fail | End of communication |
|
6 | I->R | Cmd_Request | 9 -> A/C or 7 |
|
7 | R->I | Cmd_Response | MAINLOOP |
|
8 | R->I | Event | EVENTLOOP |
|
9 | R<->I | Start_Data_Packet | 10,12 |
|
10 | R<->I | Data_Packet | 10,12 |
|
11 | I->R | Cancel_Transaction | 7 ? | (Untested yet.)
|
12 | R<->I | End_Data_Packet | 7 ? |
|
13 | R<->I | Ping | 14 |
|
13 | R<->I | Pong | EVENTLOOP |
|
State transitions:
Initial Phase:
Command Connection:
1 | -> 2 | -> MAINLOOP |
\ 5 | -> EXIT | |
Event Connection:
3 | -> 4 | -> EVENTLOOP |
\ 5 | -> EXIT | |