1693
Kommentar:
|
2177
add some info on data format
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
[[TableOfContents]] |
|
Zeile 2: | Zeile 4: |
The protocol is based on individual serial data frames that are organized as shown in the following table. ||<tablewidth="690px" tableheight="43px" tablestyle="text-align: center;"bgcolor="#cccccc">'''''Start-Byte''''''''''''''''' ||<bgcolor="#cccccc">'''''Address-Byte''''''''''''''''' ||<bgcolor="#cccccc">'''''ID-Byte''''''''''''''''' ||<bgcolor="#cccccc">'''''n Data-Bytes coded ''''''''''''''''' ||<bgcolor="#cccccc">'''''CRC-Byte1''''''''''''''''' ||<bgcolor="#cccccc">'''''CRC-Byte2''''''''''''''''' ||<bgcolor="#cccccc">'''''Stop-Byte''''' || ||<style="text-align: center;">'#' ||<style="text-align: center;">variable ||<style="text-align: center;">V,D etc ||<style="text-align: center;">"modified-base64" ||<style="text-align: center;">variable ||<style="text-align: center;">variable ||<style="text-align: center;">'\r' || |
. The protocol is based on individual serial data frames that are organized as shown in the following table. ||<tablewidth="690px" tableheight="43px" tablestyle="text-align: center;"bgcolor="#cccccc">Start-Byte||<bgcolor="#cccccc">Address-Byte||<bgcolor="#cccccc">ID-Byte||<bgcolor="#cccccc">n Data-Bytes coded||<bgcolor="#cccccc">CRC-Byte1||<bgcolor="#cccccc">CRC-Byte2||<bgcolor="#cccccc">Stop-Byte|| ||<style="text-align: center;">'#' ||<style="text-align: center;">variable ||<style="text-align: center;">'V','D' etc ||<style="text-align: center;">"modified-base64" ||<style="text-align: center;">variable ||<style="text-align: center;">variable ||<style="text-align: center;">'\r' || |
Zeile 6: | Zeile 9: |
. The Commands based on the dataframes above (named data-types in the picture above) are listed [:en/SerialCommands:here] | . The Commands based on the dataframes above are listed [:en/SerialCommands:here] |
Zeile 9: | Zeile 12: |
||<tablewidth="" tablestyle="text-align: center;"bgcolor="#cccccc"> '''''Slave-Address''''''''''''''''' ||<bgcolor="#cccccc"> '''''Part''''' || | ||<tablewidth="" tablestyle="text-align: center;"bgcolor="#cccccc">Slave-Address||<bgcolor="#cccccc">Part|| |
Zeile 14: | Zeile 17: |
Have a look into the Functions Decode64 and !SendOutData in uart.c of the FC Firmware to see how the Data is encoded and decoded. | |
Zeile 16: | Zeile 20: |
. /!\ 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 19: | Zeile 25: |
= 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
Have a look into the Functions Decode64 and SendOutData in uart.c of the FC Firmware to see how the Data is encoded and decoded.
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 )