This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
doc:crazyflie:crtp:param [2015-07-15 16:31] 127.0.0.1 external edit |
doc:crazyflie:crtp:param [2020-05-12 14:22] (current) kimberly |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ==== Parameters ==== | + | <WRAP center round important 60%> |
+ | This page has deprecated and moved to the new documentation framework of the main Bitcraze website. Please go to [[https:// | ||
+ | </ | ||
+ | |||
+ | ====== Parameters | ||
The parameters system makes all the gettable and settable parameters of the copter accessible. The copter holds a table of parameters which can be retrieved. In this table every parameter name is associated with an ID and a group name. Three IDs are used to acces the TOC and the parameters: | The parameters system makes all the gettable and settable parameters of the copter accessible. The copter holds a table of parameters which can be retrieved. In this table every parameter name is associated with an ID and a group name. Three IDs are used to acces the TOC and the parameters: | ||
- | ^ Port ^ Channel | + | ^ Port ^ Channel |
- | | 2 | 0 | + | | 2 |
- | | 2 | 1 | + | | 2 |
- | | 2 | 2 | + | | 2 |
+ | | 2 | ||
- | === TOC access | + | ===== TOC access |
These messages permit to access the parameters table of content. The first byte of the message is a message ID, three messages ID are defined: | These messages permit to access the parameters table of content. The first byte of the message is a message ID, three messages ID are defined: | ||
Line 33: | Line 38: | ||
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. | 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 (Port 2 channel 1) and parameter write (Port 2 channel 2)=== | + | The type is one byte describing the parameter type: |
+ | |||
+ | ^ Type code ^ C type ^ Python unpack | | ||
+ | | 0x08 | uint8_t | '< | ||
+ | | 0x09 | uint16_t | '< | ||
+ | | 0x0A | uint32_t | '< | ||
+ | | 0x0B | uint64_t | '< | ||
+ | | 0x00 | int8_t | '< | ||
+ | | 0x01 | int16_t | '< | ||
+ | | 0x02 | int32_t | '< | ||
+ | | 0x03 | int64_t | '< | ||
+ | | 0x05 | FP16 | '' | ||
+ | | 0x06 | float | '< | ||
+ | | 0x07 | double | '< | ||
+ | |||
+ | ===== Parameter | ||
+ | |||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | ^ Byte ^ Request fields ^ Content | ||
+ | | 0 | ID | ID of the parameter to read (see TOC) | | ||
+ | </ | ||
+ | |||
+ | <WRAP half column> | ||
+ | ^ Byte ^ Answer fields | ||
+ | | 0 | ID | ID of the parameter | | ||
+ | | 1-.. | value | Value of the parameter. Size and format is described in the TOC | | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | The read request is a simple packet on channel 1. Crazyflie answers with the value. | ||
+ | |||
+ | ===== Parameter write ===== | ||
+ | |||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | ^ Byte ^ Request fields ^ Content | ||
+ | | 0 | ID | ID of the parameter to write | | ||
+ | | 1-... | value | Value to write. Size and format is described in the TOC | | ||
+ | </ | ||
+ | |||
+ | <WRAP half column> | ||
+ | ^ Byte ^ Answer fields | ||
+ | | 0 | ID | ID of the parameter | ||
+ | | 1-... | value | Value of the parameter. Size and format is described in the TOC | | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | The write request is a simple packet on channel 2. Crazyflie sends back the parameter value as an acknowledgement. | ||
+ | |||
+ | ===== Misc. commands ===== | ||
+ | |||
+ | The following misc commands are implemented: | ||
+ | |||
+ | ^ Code ^ Command ^ | ||
+ | | 0x00 | [[doc: | ||
+ | |||
+ | ==== Set by name ==== | ||
+ | |||
+ | <WRAP group> | ||
+ | <WRAP half column> | ||
+ | ^ Byte ^ Request fields ^ Content | ||
+ | | 0 | SET_BY_NAME | ||
+ | | 1-n | group | Name of the group | | ||
+ | | n-(n+1) | ||
+ | | (n+1)-(n+m+1) | ||
+ | | (n+m+1)-(n+m+2) | ||
+ | | (n+m+2)-(n+m+3) | ||
+ | | (n+m+3)-... | ||
+ | </ | ||
+ | |||
+ | <WRAP half column> | ||
+ | ^ Byte ^ Answer fields | ||
+ | | 0 | SET_BY_NAME | ||
+ | | 1-n | group | Name of the group | | ||
+ | | n-(n+1) | ||
+ | | (n+1)-(n+m+1) | ||
+ | | (n+m+2) | ||
+ | | (n+m+3) | ||
+ | </ | ||
+ | </ | ||
- | The following messages are sent from the client | + | //Group// and //name// are ascii strings of size respectively //n// and // |
- | ^ **Request for** | + | |
- | | Parameter read | | + | |
- | | Parameter write | + | |
- | | ::: | + | |
- | The following messages are sent from the Crazyflie | + | This command is useful to set a parameter without having to fetch the full TOC. It is enough |
- | ^ **Reply for** ^ **Byte** | + | |
- | | Parameter read & write | | + | |
- | | ::: | + |