This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
projects:crazyflie:firmware:comm_protocol [2013-09-17 10:39] ledvinap [Logging] |
projects:crazyflie:firmware:comm_protocol [2021-06-24 16:49] (current) kimberly |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | <WRAP center round important 60%> | ||
+ | This page has deprecated and will be archived. Please go to [[https:// | ||
+ | </ | ||
====== Overview ====== | ====== Overview ====== | ||
CRTP is the protocol used to communicate with Crazyflie. Is originally stands for //Crazy RealTime Protocol//. The protocol permits to communicate independently with the copter subsystem and would have the capability to handle packet priorities. | CRTP is the protocol used to communicate with Crazyflie. Is originally stands for //Crazy RealTime Protocol//. The protocol permits to communicate independently with the copter subsystem and would have the capability to handle packet priorities. | ||
Line 200: | Line 203: | ||
| Start a log block | | Start a log block | ||
| ::: | | | ::: | | ||
- | | ::: | | + | | ::: | |
| Stop a log block | | Stop a log block | ||
| ::: | | | ::: | | ||
Line 305: | Line 308: | ||
=== Log data access (Port 5 channel 2) === | === Log data access (Port 5 channel 2) === | ||
Logging data is sent back to the copter as raw data with only the block id. This means that the lookup of what data is for what variable has to be done on the computer side. Log | Logging data is sent back to the copter as raw data with only the block id. This means that the lookup of what data is for what variable has to be done on the computer side. Log | ||
- | block header contains 3 byte timestamp, its value is number of milliseconds | + | block header contains 3 byte timestamp, its value is number of microseconds |
^ **Byte** | ^ **Byte** | ||
| | | | ||
- | | 1-3 | Block send time timestamp in ms, LSB first | | + | | 1-3 | Block send time timestamp in us, LSB first | |
| 4-31 | Logged variable values, LSB first | | | 4-31 | Logged variable values, LSB first | | ||
Line 316: | Line 319: | ||
Computer -> CF : 0x[5,1] 0x00 0xbb 0x02 0x55 // create logging block | Computer -> CF : 0x[5,1] 0x00 0xbb 0x02 0x55 // create logging block | ||
CF -> Computer : 0x[5,1] 0x00 0x55 0x00 // OK | CF -> Computer : 0x[5,1] 0x00 0x55 0x00 // OK | ||
- | Computer -> CF : 0x[5, | + | Computer -> CF : 0x[5, |
- | CF -> Computer : 0x[5, | + | CF -> Computer : 0x[5, |
Receiving a log block 0xbb with timestamp 130.532s (0x1FDE4 ms), logging uint16 variable with value 0xBABE: | Receiving a log block 0xbb with timestamp 130.532s (0x1FDE4 ms), logging uint16 variable with value 0xBABE: | ||
- | CF -> Computer : 0x[5,2] 0xBB 0xE4 0xDF 0x01 0xBE 0xBA | + | CF -> Computer : 0x[5,2] 0xBB 0xE4 0xFD 0x01 0xBE 0xBA |
</ | </ | ||
==== Parameters ==== | ==== Parameters ==== | ||
- | The parameters system | + | The parameters system |
- | | **Port** | **Function** | | + | ^ Port ^ Channel |
- | | | + | | |
- | | | + | | |
- | | | + | | 2 | 2 | Parameter write | |
- | === TOC access === | + | === TOC access |
- | This ports permits | + | These messages permit |
- | | **Message ID** | **Meaning in upstream packets** | **Meaning in downstream packets** | | + | ^ |
- | | 0 | Reset TOC pointer | + | | 0 | Reset TOC pointer |
- | | 1 | Get next TOC element | + | | 1 | Get next TOC element |
- | | 3 | Get TOC CRC32 | TOC CRC32 | + | | 3 | Get TOC CRC32 |
- | The upstream ID are commands and are sent alone. The downstream | + | The upstream ID are commands and are sent alone. The downstream |
< | < | ||
Line 352: | Line 355: | ||
</ | </ | ||
- | The parameters are sequentially requested by the PC until the end. When the last parameter is reached it has the ID 0 'Last TOC element' | + | The parameters are sequentially requested by the PC until the end. When the last parameter is reached it has the ID 0 'Last TOC element' |
- | The CRC32 is a hash of the copter TOC. This is aim at implementing caching of the TOC in the PC Utils to avoid fetching the full TOC each time the copter is connected. | + | The CRC32 is a hash of the copter TOC. This is aimed at implementing caching of the TOC in the PC Utils to avoid fetching the full TOC each time the copter is connected. |
- | === Parameter read === | + | === Parameter read (Port 2 channel 1) and parameter write (Port 2 channel 2)=== |
- | **TODO** | + | |
- | === Parameter write === | + | The following messages are sent from the client to the Crazyflie: |
- | **TODO** | + | ^ |
+ | | Parameter read | | ||
+ | | | ||
+ | | ::: | ||
+ | |||
+ | The following messages are sent from the Crazyflie to the client: | ||
+ | ^ | ||
+ | | Parameter read & write | ||
+ | | ::: | ||
=== Fight control ==== | === Fight control ==== |