1730
Kommentar: indent+toc
|
2045
adding example for checksum
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 1: | Zeile 1: |
[TableOfContents] | [[TableOfContents]] |
Zeile 4: | 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. |
Zeile 8: | Zeile 6: |
||<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 13: | Zeile 12: |
||<tablewidth="" tablestyle="text-align: center;"bgcolor="#cccccc"> '''''Slave-Address''''''''''''''''''''''' ||<bgcolor="#cccccc"> '''''Part''''' || ||<style="text-align: center;"> 1 ||<style="text-align: center;"> FC || ||<style="text-align: center;"> 2 ||<style="text-align: center;"> NC || ||<style="text-align: center;"> 3 ||<style="text-align: center;"> MK3MAG || |
||<tablewidth="" tablestyle="text-align: center;"bgcolor="#cccccc">Slave-Address||<bgcolor="#cccccc">Part|| ||<style="text-align: center;"> 1 ||<style="text-align: center;"> FC || ||<style="text-align: center;"> 2 ||<style="text-align: center;"> NC || ||<style="text-align: center;"> 3 ||<style="text-align: center;"> MK3MAG || |
Zeile 20: | 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 23: | 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 )