Unterschiede zwischen den Revisionen 60 und 67 (über 7 Versionen hinweg)
Revision 60 vom 17.03.2011 13:36
Größe: 13296
Kommentar: The page en/SerialProtocol contains the same information, and more. Thus, I'm "forwarding" to that page. Hope this is ok.
Revision 67 vom 25.04.2012 09:09
Größe: 8414
Autor: IngoBusker
Kommentar:
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
See [[en/SerialProtocol]] The structs used below are defined in [[http://mikrokopter.de/mikrosvn/FlightCtrl/tags/V0.84a/uart.h|uart.h]]. For implementation details, see [[http://mikrokopter.de/mikrosvn/FlightCtrl/tags/V0.84a/uart.c|uart.c]]. Addresses are defined as follows:
Zeile 3: Zeile 3:
/* {{{
#!cplusplus
#define FC_ADDRESS 1 //(b)
#define NC_ADDRESS 2 //(c)
#define MK3MAG_ADDRESS 3 //(d)
#define BL_CTRL_ADDRESS 5 //(f)
}}}
Zeile 5: Zeile 11:
The page en/SerialProtocol contains the same information, and more.
Zeile 8: Zeile 13:
||<tablewidth="" tablestyle="text-align: center;"bgcolor="#cccccc"> ||||||<bgcolor="#cccccc" style="text-align: center;">'''''Received '''''''' ''' ||||||<bgcolor="#cccccc" style="text-align: center;">'''''Send '''''''' ''' ||
||<bgcolor="#cccccc">'''''Description''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''ID''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Address''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Data''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''ID''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Address''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Data''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||
||Labels of analog values ||'a' ||!AnyAddr ||u8 Index of Analog Channel ||'A' ||!SlaveAddr ||u8 Index, char[16] label text ||
||!ExternControl ||'b' ||!AnyAddr ||!ExternControl Struct ||'B' ||!SlaveAddr ||!ConfirmFrame ||
||Request display || 'h' ||!AnyAddr || u8 ~!RemoteKey, u8 !AutoSendInterval ||'H' ||!SlaveAddr || char[80] !DisplayText ||
||Request display || 'l' ||!AnyAddr || u8 !MenuItem ||'L' ||!SlaveAddr ||u8 !MenuItem, u8 !MaxMenuItem, char[80] Display Text ||
||Version Request ||'v' ||!AnyAddr || none || 'V' ||!SlaveAddr ||!Version Info Struct ||
||Debug Request ||'d' ||!AnyAddr ||u8 !AutoSendInterval ||'D' ||!SlaveAddr ||Debug Data Struct ||
||<tablewidth="" tablestyle="text-align:center; "#cccccc> ||||||<#cccccc style="text-align:center; ">'''''Received '''''''' ''' ||||||<#cccccc style="text-align:center; ">'''''Sent '''''''' ''' ||
||<#cccccc>'''''Description''''' ||<#cccccc>'''''ID''''' ||<#cccccc>'''''Address''''' ||<#cccccc>'''''Data''''' ||<#cccccc>'''''ID''''' ||<#cccccc>'''''Address''''' ||<#cccccc>'''''Data''''' ||
||Labels of the analog values in the Debug Data Struct (see 'd') ||'a' ||!AnyAddr ||u8 Index of Analog Channel ||'A' ||!SlaveAddr ||u8 Index, char[16] label text ||
||!ExternControl ||'b' ||!AnyAddr ||!ExternControl Struct ||'B' ||!SlaveAddr ||unsigned char, echo of !ExternControl.Frame as confirmation ||
||Request display ||'h' ||!AnyAddr ||u8 ~!RemoteKey, u8 !AutoSendInterval ||'H' ||!SlaveAddr ||char[80] !DisplayText ||
||Request display ||'l' ||!AnyAddr ||u8 !MenuItem ||'L' ||!SlaveAddr ||u8 !MenuItem, u8 !MaxMenuItem, char[80] Display Text ||
||Version Request ||'v' ||!AnyAddr ||none ||'V' ||!SlaveAddr ||[[en/SerialCommands/VersionStruct|VersionStruct]] ||
||Debug Request ||'d' ||!AnyAddr ||u8 !AutoSendInterval<<BR>> Value is multiplied by 10 in receiver and then used as milliseconds. Subsciption needs to be renewed every 4s. <<BR>>These values can be display in MK-Tool as values or graphs. ||'D' ||!SlaveAddr ||[[en/SerialCommands/DebugOutStruct|DebugOutStruct]] ||
Zeile 19: Zeile 24:
Zeile 20: Zeile 26:
||<tablewidth="" tablestyle="text-align: center;"bgcolor="#cccccc"> ||||||<bgcolor="#cccccc" style="text-align: center;">'''''Received by FC '''''''' ''' ||||||<bgcolor="#cccccc" style="text-align: center;">'''''Send by FC '''''''' ''' ||<bgcolor="#cccccc"> ||
||<bgcolor="#cccccc">'''''Description''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''ID''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Address''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Data''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''ID''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Address''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Data''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''since FC Firmware''''' ||
|| Compass Heading ||'K' || FC-Addr || s16 Compass Value ||'k' || MK3MAG-Addr ||Nick Roll Attitude ... ||0.71f ||
|| Engine Test ||'t' || FC-Addr || u8[16] values for the engines || 'T' || FC-Addr ||- ||0.71f ||
|| Settings Request ||'q' ||FC-Addr || u8 Settings Index ( 1..5 READ or 0xff for actual setting) <<BR>> u8 Settings Index (11..15 RESET setting to default (channel mapping will not be changed))<<BR>> u8 Settings Index (21..25 RESET setting to default (complete reset including channel settings))||'Q' ||FC-Addr ||u8 Settings Index, u8 Settings Version, Settings Struct ||0.71f ||
|| Write Settings || 's' ||FC-Addr || u8 Settings Index, u8 Settings Version, Settings Struct ||'S' ||FC-Addr ||u8 Settings Index (1 ..5, 0=Error) ||0.71f ||
|| Read PPM Channels || 'p' ||FC-Addr ||none ||'P' ||FC-Addr ||s16 PPM-Array[11] ||0.71f ||
|| Set 3D-Data Interval || 'c' || !AnyAddr || u8 Interval || 'C' || FC-Addr || struct Data3D|| 0.72p ||
|| Mixer Request ||'n' ||FC-Addr || none ||'N' ||FC-Addr ||u8 !MixerRevision, u8 Name[12], u8 MixerTable[16][4] ||0.73 ||
|| Mixer Write ||'m' ||FC-Addr || u8 !MixerRevision, u8 Name[12], u8 MixerTable[16][4] ||'M' ||FC-Addr || u8 ack (1 = okay, 0 = error) ||0.73 ||
|| Change setting ||'f' ||FC-Addr || u8 Number of new Setting ||'F' ||FC-Addr || u8 Number ||0.77 ||
|| Serial Poti ||'y' ||FC-Addr || s8 Poti[12] ||- ||- || - ||0.77 ||
|| BL parameter request ||'u' ||FC-Addr || u8 BL_Addr ||'U' ||FC-Addr || u8 Status1, u8 Status2, u8 BL_Addr, BLConfig Struct ||0.80 ||
|| BL parameter write ||'w' ||FC-Addr || u8 BL_Addr, BLConfig Struct ||'W' ||FC-Addr || u8Status1, u8 Status2 ||0.80 ||
||<tablewidth="" tablestyle="text-align:center; "#cccccc> ||||||<#cccccc style="text-align:center; ">'''''Received by FC '''''''' ''' ||||||<#cccccc style="text-align:center; ">'''''Sent by FC '''''''' ''' ||<#cccccc> ||
||<#cccccc>'''''Description''''' ||<#cccccc>'''''ID''''' ||<#cccccc>'''''Address''''' ||<#cccccc>'''''Data''''' ||<#cccccc>'''''ID''''' ||<#cccccc>'''''Address''''' ||<#cccccc>'''''Data''''' ||<#cccccc>'''''since FC Firmware''''' ||
||Compass Heading ||'K' ||FC-Addr ||s16 Compass Value ||'k' ||MK3MAG-Addr ||Nick Roll Attitude ... ||0.71f ||
||Engine Test ||'t' ||FC-Addr ||u8[16] values for the engines ||'T' ||FC-Addr ||- ||0.71f ||
||Settings Request ||'q' ||FC-Addr ||u8 Settings Index ( 1..5 READ or 0xff for actual setting) <<BR>> u8 Settings Index (11..15 RESET setting to default (channel mapping will not be changed))<<BR>> u8 Settings Index (21..25 RESET setting to default (complete reset including channel settings)) ||'Q' ||FC-Addr ||u8 Settings Index, u8 Settings Version, [[en/SerialCommands/ParamsetStruct|ParamsetStruct]] ||0.71f ||
||Write Settings ||'s' ||FC-Addr ||u8 Settings Index, u8 Settings Version, [[en/SerialCommands/ParamsetStruct|ParamsetStruct]] ||'S' ||FC-Addr ||u8 Settings Index (1 ..5, 0=Error) ||0.71f ||
||Read PPM Channels ||'p' ||FC-Addr ||none ||'P' ||FC-Addr ||s16 PPM-Array[11] ||0.71f ||
||Set 3D-Data Interval ||'c' ||!AnyAddr ||u8 Interval ||'C' ||FC-Addr ||struct Data3D ||0.72p ||
||Mixer Request ||'n' ||FC-Addr ||none ||'N' ||FC-Addr ||u8 !MixerRevision, u8 Name[12], u8 MixerTable[16][4] ||0.73 ||
||Mixer Write ||'m' ||FC-Addr ||u8 !MixerRevision, u8 Name[12], u8 MixerTable[16][4] ||'M' ||FC-Addr ||u8 ack (1 = okay, 0 = error) ||0.73 ||
||Change setting ||'f' ||FC-Addr ||u8 Number of new Setting ||'F' ||FC-Addr ||u8 Number ||0.77 ||
||Serial Poti ||'y' ||FC-Addr ||s8 Poti[12] ||- ||- ||- ||0.77 ||
||BL parameter request ||'u' ||FC-Addr ||u8 BL_Addr ||'U' ||FC-Addr ||u8 Status1, u8 Status2, u8 BL_Addr, BLConfig Struct ||0.80 ||
||BL parameter write ||'w' ||FC-Addr ||u8 BL_Addr, BLConfig Struct ||'W' ||FC-Addr ||u8Status1, u8 Status2 ||0.80 ||
Zeile 36: Zeile 43:
||<tablewidth="" tablestyle="text-align: center;"bgcolor="#cccccc"> ||||||<bgcolor="#cccccc" style="text-align: center;">'''''Received by NC '''''''' ''' ||||||<bgcolor="#cccccc" style="text-align: center;">'''''Send by NC '''''''' ''' ||<bgcolor="#cccccc"> ||
||<bgcolor="#cccccc">'''''Description''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc"
>'''''ID''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Address''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Data''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''ID''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Address''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Data''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''since NC Firmware''''' ||
||<style="text-align: center;"> Serial Link Test ||<style="text-align: center;">'z' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">u16 !EchoPattern ||<style="text-align: center;">'Z' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">u16 !EchoPattern ||<style="text-align: center;"> 0.14f ||
||<style="text-align: center;"> Error Text Request ||<style="text-align: center;">'e' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">none ||<style="text-align: center;">'E' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">char[] Error Message String ||<style="text-align: center;"> 0.12h ||
||<style="text-align: center;"> Send target Position ||<style="text-align: center;">'s' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;"> [[en/WayPointStruct|WayPointStruct]] ||<style="text-align: center;">- ||<style="text-align: center;">- ||<style="text-align: center;">- ||<style="text-align: center;"> 0.12h ||
||<style="text-align: center;"> Send Waypoint ||<style="text-align: center;">'w' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">[[en/WayPointStruct|WayPointStruct]] (sending an invalid position will clear the WPList) ||<style="text-align: center;">'W' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">u8 Number of WPs ||<style="text-align: center;"> 0.12h ||
||<style="text-align: center;"> Request Waypoint ||<style="text-align: center;">'x' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">u8 WP-Index ||<style="text-align: center;">'X' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">u8 Number of WPs, u8 WP-Index, [[en/WayPointStruct|WayPointStruct]] ||<style="text-align: center;"> 0.14f ||
||<style="text-align: center;"> Request OSD-Data ||<style="text-align: center;">'o' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;"> 1 byte sending interval ( in 10ms steps ) ||<style="text-align: center;">'O' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">[[en/NaviDataStruct|NaviDataStruct]] ||<style="text-align: center;"> 0.12h ||
||<style="text-align: center;">Redirect UART ||<style="text-align: center;">'u' ||<style="text-align: center;">NC-Addr ||<style="text-align: center;">1 byte param for uart selector (0=FC, 1=MK3MAG, 2=MKGPS), can be switched back to NC debug by sending the magic packet "0x1B,0x1B,0x55,0xAA,0x00" ||<style="text-align: center;">- ||<style="text-align: center;">- ||<style="text-align: center;">- ||<style="text-align: center;">0.12h ||
|| Set 3D-Data Interval || 'c' || !AnyAddr || u8 Interval || 'C' || NC-Addr || struct Data3D|| 0.14a ||
|| Set/get NC-Parameter || 'j' || !NC-Addr || ? ||- ||- ||- || 0.20 ||
||<tablewidth="" tablestyle="text-align:center; "#cccccc> ||||||<#cccccc style="text-align:center; ">'''''Received by NC '''''''' ''' ||||||<#cccccc style="text-align:center; ">'''''Sent by NC '''''''' ''' ||<#cccccc> ||
||<#cccccc>'''''Descripti
on''''' ||<#cccccc>'''''ID''''' ||<#cccccc>'''''Address''''' ||<#cccccc>'''''Data''''' ||<#cccccc>'''''ID''''' ||<#cccccc>'''''Address''''' ||<#cccccc>'''''Data''''' ||<#cccccc>'''''since NC Firmware''''' ||
||<style="text-align:center;">Serial Link Test ||<style="text-align:center;">'z' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">u16 !EchoPattern ||<style="text-align:center;">'Z' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">u16 !EchoPattern ||<style="text-align:center;">0.14f ||
||<style="text-align:center;">Error Text Request ||<style="text-align:center;">'e' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">none ||<style="text-align:center;">'E' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">char[] Error Message String ||<style="text-align:center;">0.12h ||
||<style="text-align:center;">Send target Position ||<style="text-align:center;">'s' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">[[en/SerialCommands/WayPointStruct|WayPointStruct]] ||<style="text-align:center;">- ||<style="text-align:center;">- ||<style="text-align:center;">- ||<style="text-align:center;">0.12h ||
||<style="text-align:center;">Send Waypoint ||<style="text-align:center;">'w' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">[[en/SerialCommands/WayPointStruct|WayPointStruct]] (sending an invalid position will clear the WPList) ||<style="text-align:center;">'W' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">u8 Number of WPs ||<style="text-align:center;">0.12h ||
||<style="text-align:center;">Request Waypoint ||<style="text-align:center;">'x' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">u8 WP-Index ||<style="text-align:center;">'X' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">u8 Number of WPs, u8 WP-Index, [[en/SerialCommands/WayPointStruct|WayPointStruct]] ||<style="text-align:center;">0.14f ||
||<style="text-align:center;">Request OSD-Data ||<style="text-align:center;">'o' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">1 byte sending interval ( in 10ms steps ) ||<style="text-align:center;">'O' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">[[en/SerialCommands/NaviDataStruct|NaviDataStruct]] ||<style="text-align:center;">0.12h ||
||<style="text-align:center;">Redirect UART ||<style="text-align:center;">'u' ||<style="text-align:center;">NC-Addr ||<style="text-align:center;">1 byte param for uart selector (0=FC, 1=MK3MAG, 2=MKGPS), can be switched back to NC debug by sending the magic packet "0x1B,0x1B,0x55,0xAA,0x00" ||<style="text-align:center;">- ||<style="text-align:center;">- ||<style="text-align:center;">- ||<style="text-align:center;">0.12h ||
||Set 3D-Data Interval ||'c' ||!AnyAddr ||u8 Interval ||'C' ||NC-Addr ||struct Data3D ||0.14a ||
||Set/get NC-Parameter ||'j' ||!NC-Addr ||u8 get(=0)/set(=1),u8 parameterId, s16 value (only when set) ||'J' ||NC_Addr ||u8 parameterId, s16 value ||0.20 ||
Zeile 49: Zeile 57:
||<tablewidth="" tablestyle="text-align: center;"bgcolor="#cccccc"> ||||||<bgcolor="#cccccc" style="text-align: center;">'''''Received by MK3-MAG '''''''' ''' ||||||<bgcolor="#cccccc" style="text-align: center;">'''''Send by MK3-MAG '''''''' ''' ||<bgcolor="#cccccc"> ||
||<bgcolor="#cccccc">'''''Description''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''ID''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Address''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Data''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''ID''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Address''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''Data''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''' ||<bgcolor="#cccccc">'''''since MK3-MAG Firmware''''' ||
||<style="text-align: center;"> Heading Request ||<style="text-align: center;">'w' ||<style="text-align: center;">MK3MAG-Addr ||<style="text-align: center;">Attitude (s16 Nick, s16 Roll, u8 Param1, u8 Param2, u8 !CalcState, u8 Orientation) ||<style="text-align: center;">'K' ||<style="text-align: center;">FC-Addr ||<style="text-align: center;">s16 Heading ||<style="text-align: center;"> since beginning ||
||<tablewidth="" tablestyle="text-align:center; "#cccccc> ||||||<#cccccc style="text-align:center; ">'''''Received by MK3-MAG '''''''' ''' ||||||<#cccccc style="text-align:center; ">'''''Sent by MK3-MAG '''''''' ''' ||<#cccccc> ||
||<#cccccc>'''''Description''''' ||<#cccccc>'''''ID''''' ||<#cccccc>'''''Address''''' ||<#cccccc>'''''Data''''' ||<#cccccc>'''''ID''''' ||<#cccccc>'''''Address''''' ||<#cccccc>'''''Data''''' ||<#cccccc>'''''since MK3-MAG Firmware''''' ||
||<style="text-align:center;">Heading Request ||<style="text-align:center;">'w' ||<style="text-align:center;">MK3MAG-Addr ||<style="text-align:center;">Attitude (s16 Nick, s16 Roll, u8 Param1, u8 Param2, u8 !CalcState, u8 Orientation) ||<style="text-align:center;">'K' ||<style="text-align:center;">FC-Addr ||<style="text-align:center;">s16 Heading ||<style="text-align:center;">since beginning ||

Zeile 54: Zeile 64:
*/

The structs used below are defined in uart.h. For implementation details, see uart.c. Addresses are defined as follows:

   1 #define FC_ADDRESS      1  //(b)
   2 #define NC_ADDRESS      2  //(c)
   3 #define MK3MAG_ADDRESS  3  //(d)
   4 #define BL_CTRL_ADDRESS 5  //(f)
   5 

Common Commands

Received

Sent

Description

ID

Address

Data

ID

Address

Data

Labels of the analog values in the Debug Data Struct (see 'd')

'a'

AnyAddr

u8 Index of Analog Channel

'A'

SlaveAddr

u8 Index, char[16] label text

ExternControl

'b'

AnyAddr

ExternControl Struct

'B'

SlaveAddr

unsigned char, echo of ExternControl.Frame as confirmation

Request display

'h'

AnyAddr

u8 ~RemoteKey, u8 AutoSendInterval

'H'

SlaveAddr

char[80] DisplayText

Request display

'l'

AnyAddr

u8 MenuItem

'L'

SlaveAddr

u8 MenuItem, u8 MaxMenuItem, char[80] Display Text

Version Request

'v'

AnyAddr

none

'V'

SlaveAddr

VersionStruct

Debug Request

'd'

AnyAddr

u8 AutoSendInterval
Value is multiplied by 10 in receiver and then used as milliseconds. Subsciption needs to be renewed every 4s.
These values can be display in MK-Tool as values or graphs.

'D'

SlaveAddr

DebugOutStruct

Reset

'R'

AnyAddr

none

-

-

-

Get External Control

'g'

AnyAddr

none

'G'

SlaveAddr

ExternControl Strcut

Flight-Ctrl

Received by FC

Sent by FC

Description

ID

Address

Data

ID

Address

Data

since FC Firmware

Compass Heading

'K'

FC-Addr

s16 Compass Value

'k'

MK3MAG-Addr

Nick Roll Attitude ...

0.71f

Engine Test

't'

FC-Addr

u8[16] values for the engines

'T'

FC-Addr

-

0.71f

Settings Request

'q'

FC-Addr

u8 Settings Index ( 1..5 READ or 0xff for actual setting)
u8 Settings Index (11..15 RESET setting to default (channel mapping will not be changed))
u8 Settings Index (21..25 RESET setting to default (complete reset including channel settings))

'Q'

FC-Addr

u8 Settings Index, u8 Settings Version, ParamsetStruct

0.71f

Write Settings

's'

FC-Addr

u8 Settings Index, u8 Settings Version, ParamsetStruct

'S'

FC-Addr

u8 Settings Index (1 ..5, 0=Error)

0.71f

Read PPM Channels

'p'

FC-Addr

none

'P'

FC-Addr

s16 PPM-Array[11]

0.71f

Set 3D-Data Interval

'c'

AnyAddr

u8 Interval

'C'

FC-Addr

struct Data3D

0.72p

Mixer Request

'n'

FC-Addr

none

'N'

FC-Addr

u8 MixerRevision, u8 Name[12], u8 MixerTable[16][4]

0.73

Mixer Write

'm'

FC-Addr

u8 MixerRevision, u8 Name[12], u8 MixerTable[16][4]

'M'

FC-Addr

u8 ack (1 = okay, 0 = error)

0.73

Change setting

'f'

FC-Addr

u8 Number of new Setting

'F'

FC-Addr

u8 Number

0.77

Serial Poti

'y'

FC-Addr

s8 Poti[12]

-

-

-

0.77

BL parameter request

'u'

FC-Addr

u8 BL_Addr

'U'

FC-Addr

u8 Status1, u8 Status2, u8 BL_Addr, BLConfig Struct

0.80

BL parameter write

'w'

FC-Addr

u8 BL_Addr, BLConfig Struct

'W'

FC-Addr

u8Status1, u8 Status2

0.80

Received by NC

Sent by NC

Description

ID

Address

Data

ID

Address

Data

since NC Firmware

Serial Link Test

'z'

NC-Addr

u16 EchoPattern

'Z'

NC-Addr

u16 EchoPattern

0.14f

Error Text Request

'e'

NC-Addr

none

'E'

NC-Addr

char[] Error Message String

0.12h

Send target Position

's'

NC-Addr

WayPointStruct

-

-

-

0.12h

Send Waypoint

'w'

NC-Addr

WayPointStruct (sending an invalid position will clear the WPList)

'W'

NC-Addr

u8 Number of WPs

0.12h

Request Waypoint

'x'

NC-Addr

u8 WP-Index

'X'

NC-Addr

u8 Number of WPs, u8 WP-Index, WayPointStruct

0.14f

Request OSD-Data

'o'

NC-Addr

1 byte sending interval ( in 10ms steps )

'O'

NC-Addr

NaviDataStruct

0.12h

Redirect UART

'u'

NC-Addr

1 byte param for uart selector (0=FC, 1=MK3MAG, 2=MKGPS), can be switched back to NC debug by sending the magic packet "0x1B,0x1B,0x55,0xAA,0x00"

-

-

-

0.12h

Set 3D-Data Interval

'c'

AnyAddr

u8 Interval

'C'

NC-Addr

struct Data3D

0.14a

Set/get NC-Parameter

'j'

!NC-Addr

u8 get(=0)/set(=1),u8 parameterId, s16 value (only when set)

'J'

NC_Addr

u8 parameterId, s16 value

0.20

MK3-MAG

Received by MK3-MAG

Sent by MK3-MAG

Description

ID

Address

Data

ID

Address

Data

since MK3-MAG Firmware

Heading Request

'w'

MK3MAG-Addr

Attitude (s16 Nick, s16 Roll, u8 Param1, u8 Param2, u8 CalcState, u8 Orientation)

'K'

FC-Addr

s16 Heading

since beginning