This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
wiki:v2:protocol_reference [2018/10/10 17:18] pixycam [sendPacket / requests sent to Pixy2] |
wiki:v2:protocol_reference [2020/05/29 00:02] (current) pixycam [getVersion()] |
||
---|---|---|---|
Line 13: | Line 13: | ||
- | It's not hugely important that you understand little-endian and two's complement representations -- 95% of all processors use little-endian and two's complement. So you basically read the bytes into memory and tell the processor there's an integer there and it will happily interpret it correctly. But it's good to know, and required information for the protocol to work correctly. | + | It's not hugely important that you understand little-endian and two's complement representations -- 95% of all processors use little-endian and two's complement. So you basically read the bytes into memory and tell the processor there's an integer there, and it will happily interpret it correctly. But it's good to know, and required information for the protocol to work correctly. |
Line 23: | Line 23: | ||
^Byte ^Description ^ Value(s) ^ | ^Byte ^Description ^ Value(s) ^ | ||
- | |0 - 1 |16-bit sync | 174, 193 | | + | |0 - 1 |16-bit sync | 174, 193 (0xc1ae) | |
|2 |Type of packet | (varies) | | |2 |Type of packet | (varies) | | ||
|3 |Length of payload in bytes (len) | (varies) | | |3 |Length of payload in bytes (len) | (varies) | | ||
Line 31: | Line 31: | ||
==== recvPacket / responses received from Pixy2 ==== | ==== recvPacket / responses received from Pixy2 ==== | ||
- | ^Byte ^Description ^ Value ^ | + | ^Byte ^Description ^ Value(s) ^ |
- | |0 - 1 |Sync (indicates whether to expect checksum) | 175, 193 | | + | |0 - 1 |16-bit sync | 175, 193 (0xc1af) | |
|2 |Type of packet | (varies) | | |2 |Type of packet | (varies) | | ||
|3 |Length of payload in bytes (len) | (varies) | | |3 |Length of payload in bytes (len) | (varies) | | ||
- | |4 - 5 |Checksum | sum of payload bytes | | + | |4 - 5 |16-bit checksum | sum of payload bytes | |
- | |6 - len |Payload | (varies) | | + | |6 - len |Variable length payload | (varies) | |
Line 44: | Line 44: | ||
=== Request: === | === Request: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 174 193 | | + | |0 - 1 |16-bit sync| 174, 193 (0xc1ae)| |
|2 |Type of packet |14 | | |2 |Type of packet |14 | | ||
|3 |Length of payload |0 | | |3 |Length of payload |0 | | ||
Line 51: | Line 51: | ||
=== Response: === | === Response: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 175 193 | | + | |0 - 1 |16-bit sync | 175, 193 (0xc1af)| |
|2 |Type of packet |15 | | |2 |Type of packet |15 | | ||
- | |3 |Length of payload |7 | | + | |3 |Length of payload |16 | |
- | |4 - 5 |Checksum | | | + | |4 - 5 |16-bit checksum | sum of payload bytes | |
- | |6 - 7 |Hardware version | (varies) | | + | |6 - 7 |16-bit hardware version | (varies) | |
|8 |Firmware version (major) | (varies) | | |8 |Firmware version (major) | (varies) | | ||
|9 |Firmware version (minor) | (varies) | | |9 |Firmware version (minor) | (varies) | | ||
- | |10 - 11 |Firmware build | (varies) | | + | |10 - 11 | 16-bit firmware build | (varies) | |
|12 |Firmware type (human readable string) | (varies) | | |12 |Firmware type (human readable string) | (varies) | | ||
Line 66: | Line 66: | ||
=== Request: === | === Request: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 174 193 | | + | |0 - 1 |16-bit sync| 174, 193 (0xc1ae)| |
|2 |Type of packet |12 | | |2 |Type of packet |12 | | ||
|3 |Length of payload |1 | | |3 |Length of payload |1 | | ||
Line 74: | Line 74: | ||
=== Response: === | === Response: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 175 193 | | + | |0 - 1 |16-bit sync| 175, 193 (0xc1af)| |
|2 |Type of packet |13 | | |2 |Type of packet |13 | | ||
|3 |Length of payload |2 | | |3 |Length of payload |2 | | ||
- | |4 - 5 |Checksum | | | + | |4 - 5 |16-bit checksum | sum of payload bytes | |
- | |6 - 7 |Frame width | 0 - 511 (little-endian) | | + | |6 - 7 |16-bit frame width | 0 - 511 | |
- | |8 - 9 |Frame height | 0 - 511 (little-endian) | | + | |8 - 9 |16-bit frame height | 0 - 511 | |
==== setCameraBrightness(brightness) ==== | ==== setCameraBrightness(brightness) ==== | ||
=== Request: === | === Request: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 174 193 | | + | |0 - 1 |Sync | 174, 193 (0xc1ae)| |
|2 |Type of packet |16 | | |2 |Type of packet |16 | | ||
|3 |Length of payload |1 | | |3 |Length of payload |1 | | ||
Line 92: | Line 92: | ||
=== Response: === | === Response: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 175 193 | | + | |0 - 1 |16-bit sync| 175, 193 (0xc1af)| |
- | |2 |Type of packet |17 | | + | |2 |Type of packet |1 | |
|3 |Length of payload |4 | | |3 |Length of payload |4 | | ||
- | |4 - 5 |Checksum | | | + | |4 - 5 |16-bit checksum | sum of payload bytes | |
- | |6 - 9 |Result |0 (???) | | + | |6 - 9 |32-bit result |result value | |
==== setServos(s0, s1) ==== | ==== setServos(s0, s1) ==== | ||
=== Request: === | === Request: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 174 193 | | + | |0 - 1 |16-bit sync| 174, 193 (0xc1ae)| |
|2 |Type of packet |18 | | |2 |Type of packet |18 | | ||
|3 |Length of payload |4 | | |3 |Length of payload |4 | | ||
- | |4 - 5 |s0 - pan servo value |0 - 511 (little-endian)| | + | |4 - 5 |16-bit s0 - pan servo value |0 - 511 | |
- | |6 - 7 |s1 - tilt servo value |0 - 511 (little-endian)| | + | |6 - 7 |16-bit s1 - tilt servo value |0 - 511 | |
=== Response: === | === Response: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 175 193 | | + | |0 - 1 |16-bit sync | 175, 193 (0xc1af)| |
- | |2 |Type of packet |19 | | + | |2 |Type of packet |1 | |
|3 |Length of payload |4 | | |3 |Length of payload |4 | | ||
- | |4 - 5 |Checksum | | | + | |4 - 5 |16-bit checksum | sum of payload bytes | |
- | |6 - 9 |Result |0 (???) | | + | |6 - 9 |32-bit result/acknowledge |result value | |
==== setLED(r, g, b) ==== | ==== setLED(r, g, b) ==== | ||
=== Request: === | === Request: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 174 193 | | + | |0 - 1 |16-bit sync | 174, 193 (0xc1ae)| |
|2 |Type of packet |20 | | |2 |Type of packet |20 | | ||
|3 |Length of payload |3 | | |3 |Length of payload |3 | | ||
Line 129: | Line 129: | ||
=== Response: === | === Response: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 175 193 | | + | |0 - 1 |16-bit sync | 175, 193 (0xc1af)| |
- | |2 |Type of packet |21 | | + | |2 |Type of packet |1 | |
|3 |Length of payload |4 | | |3 |Length of payload |4 | | ||
- | |4 - 5 |Checksum | | | + | |4 - 5 |16-bit checksum | sum of payload bytes | |
- | |6 - 9 |Result |0 (???) | | + | |6 - 9 |32-bit result/acknowledge | result value | |
==== setLamp(upper, lower) ==== | ==== setLamp(upper, lower) ==== | ||
=== Request: === | === Request: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 174 193 | | + | |0 - 1 |16-bit sync | 174, 193 (0xc1ae)| |
|2 |Type of packet |22 | | |2 |Type of packet |22 | | ||
|3 |Length of payload |2 | | |3 |Length of payload |2 | | ||
Line 147: | Line 147: | ||
=== Response: === | === Response: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 175 193 | | + | |0 - 1 |16-bit sync | 175, 193 (0xc1af)| |
- | |2 |Type of packet |23 | | + | |2 |Type of packet |1 | |
|3 |Length of payload |4 | | |3 |Length of payload |4 | | ||
- | |4 - 5 |Checksum | | | + | |4 - 5 |16-bit checksum | sum of payload bytes | |
- | |6 - 9 |Result |0 (???) | | + | |6 - 9 |32-bit result/acknowledge | result value | |
==== getFPS() ==== | ==== getFPS() ==== | ||
=== Request: === | === Request: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 174 193 | | + | |0 - 1 |16-bit sync | 174, 193 (0xc1ae)| |
|2 |Type of packet |24 | | |2 |Type of packet |24 | | ||
|3 |Length of payload |0 | | |3 |Length of payload |0 | | ||
Line 164: | Line 164: | ||
=== Response: === | === Response: === | ||
- | ^Byte ^Description ^Value ^ | + | ^Byte ^Description ^Value(s) ^ |
- | |0 - 1 |Sync | 175 193 | | + | |0 - 1 |16-bit sync | 175, 193 (0xc1af)| |
- | |2 |Type of packet |25 | | + | |2 |Type of packet |1 | |
|3 |Length of payload |4 | | |3 |Length of payload |4 | | ||
- | |4 - 5 |Checksum | | | + | |4 - 5 |16-bit checksum | sum of payload bytes | |
- | |6 - 9 |Result |0 (???) | | + | |6 - 9 |32-bit result | frames-per-second | |
{{page>wiki:v2:ccc-packets&noindent}} | {{page>wiki:v2:ccc-packets&noindent}} | ||
{{page>wiki:v2:line-packets&noindent}} | {{page>wiki:v2:line-packets&noindent}} | ||
{{page>wiki:v2:video-packets&noindent}} | {{page>wiki:v2:video-packets&noindent}} |