Größe: 1498
Kommentar:
|
Größe: 2045
Kommentar: adding example for checksum
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 19: | Zeile 19: |
. /!\ ToDo: describe checksum calculation | || unsigned int tmpCRC = 0; [[BR]] for(int i = 0; i < !DataBufferLength;i++)[[BR]] { tmpCRC += !DataBuffer[i]; } [[BR]] tmpCRC %= 4096; [[BR]] CRC1 = '=' + tmpCRC / 64; [[BR]] CRC2 = '=' + tmpCRC % 64;[[BR]] || . /!\ ToDo: describe checksum calculation verbaly |
Zeile 22: | Zeile 24: |
= Implementations = Sometimes its a lot more easy to look at code rather than reather than to look at Specifications/Documentation: * uart.c in the Flight-Ctrl Firmware ( C ) * MKCommunicator.java from ["DUBwise"] ( Java / J2ME ) * mktool.cpp @ ["QMKGroundStation"] ( C++ ) * !GroundStation ( !LabView ) |
Protocol
- The protocol is based on individual serial data frames that are organized as shown in the following table.
Start-Byte |
Address-Byte |
ID-Byte |
n Data-Bytes coded |
CRC-Byte1 |
CRC-Byte2 |
Stop-Byte |
'#' |
variable |
'V','D' etc |
"modified-base64" |
variable |
variable |
'\r' |
Commands
The Commands based on the dataframes above are listed [:en/SerialCommands:here]
Slave Adresses
Since Navi 0.12h FC 0.71f Mag 0.19 there are constant SlaveAdresses:
Slave-Address |
Part |
1 |
FC |
2 |
NC |
3 |
MK3MAG |
Data Format
ToDo: describe data-format
Checksum
ToDo: describe checksum calculation verbaly
Links
Implementations
- Sometimes its a lot more easy to look at code rather than reather than to look at Specifications/Documentation:
- uart.c in the Flight-Ctrl Firmware ( C )
- MKCommunicator.java from ["DUBwise"] ( Java / J2ME )
- mktool.cpp @ ["QMKGroundStation"] ( C++ )
GroundStation ( LabView )