2179
Kommentar: moving links sections to bottom
|
2185
indent
|
Gelöschter Text ist auf diese Art markiert. | Hinzugefügter Text ist auf diese Art markiert. |
Zeile 6: | 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' || |
||<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 12: | 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 || |
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
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 )
Links