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 | | + | |
| - | | ::: | + | |