Unterschiede zwischen den Revisionen 8 und 72 (über 64 Versionen hinweg)
Revision 8 vom 19.11.2008 21:25
Größe: 1153
Autor: ligi
Kommentar: correcting version info
Revision 72 vom 12.06.2013 21:49
Größe: 8796
Autor: Cebra
Kommentar: Serielles Protokoll um NC-Command "t" Systemtime erweitert
Gelöschter Text ist auf diese Art markiert. Hinzugefügter Text ist auf diese Art markiert.
Zeile 1: Zeile 1:
|| ''' Command ''' || ''' Description ''' || ''' Parameter's ''' || '''since FC Firmware'' ''''' ||
|| K || compass || compass value || ||
|| a || labels of analog Values || position of requested analog Value ( 1 byte ) || ||
|| b || !ExternControl || struct !ExternControl (uart.h) || 0.68b ||
|| c || !ExternControl + Debug request || struct !ExternControl (uart.h) || 0.68b ||
|| h || request Display line || Key Value ( 1 Byte ) || ||
|| t || Engine Test || values for the 4 engines ( 4 Bytes ) || ||
|| k || Dubwise Keys || keys ( 4 bytes) || 0.67e ||
|| v || Version Request || none || ||
|| g || Debug Request || none || ||
|| q || Settings Request || settings-num 1 Byte - or 0xff for actual setting (1 Byte) || ||
|| l || Write Setting 1 || mk_param_struct (fc.h) || ||
|| m || Write Setting 2 || mk_param_struct (fc.h) || ||
|| n || Write Setting 3 || mk_param_struct (fc.h) || ||
|| o || Write Setting 4 || mk_param_struct (fc.h) || ||
|| p || Write Setting 5 || mk_param_struct (fc.h) || ||
|| f || Debug Request || none || v0.71f ||
|| R || Reset ATMEGA || in SIGNAL(INT_VEC_RX) || ||
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:

<<BR>>
Here you find some of the structs and defines used for serial commands:
<<Navigation(children)>>

<<BR>><<BR>>
----
Address used for communication:
{{{
#!cplusplus
#define FC_ADDRESS 1 //(b)
#define NC_ADDRESS 2 //(c)
#define MK3MAG_ADDRESS 3 //(d)
#define BL_CTRL_ADDRESS 5 //(f)
}}}


== Common Commands ==
||<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]] ||
||Reset ||'R' ||!AnyAddr ||none ||- ||- ||- ||
||Get External Control ||'g' ||!AnyAddr ||none ||'G' ||!SlaveAddr ||!ExternControl Struct ||


== Flight-Ctrl ==
||<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 ||


== Navi-Ctrl ==
||<tablewidth="" tablestyle="text-align:center; "#cccccc> ||||||<#cccccc style="text-align:center; ">'''''Received by NC '''''''' ''' ||||||<#cccccc style="text-align:center; ">'''''Sent by NC '''''''' ''' ||<#cccccc> ||
||<#cccccc>'''''Description''''' ||<#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 ||
||BL Ctrl Status || 'k' ||!AnyAddr ||u8 Interval ||'K' ||!SlaveAddr || [[en/SerialCommands/BLDataStruct|BLDataStruct]] ||
||SystemTime || 't' ||NC-Addr ||u8 Interval ||'T' ||NC-Addr || struct DateTime_t (from timer1.h) ||
== MK3-MAG ==
||<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 21: Zeile 70:
 CategoryCoding  . CategoryCoding KategorieFirmware KategorieFirmware

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


Here you find some of the structs and defines used for serial commands:




Address used for communication:

   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 Struct

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

BL Ctrl Status

'k'

AnyAddr

u8 Interval

'K'

SlaveAddr

BLDataStruct

SystemTime

't'

NC-Addr

u8 Interval

'T'

NC-Addr

struct DateTime_t (from timer1.h)

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