Rev 206 | Details | Compare with Previous | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
41 | ingob | 1 | #ifndef _UART1_H |
2 | #define _UART1_H |
||
3 | |||
4 | #define UART_FLIGHTCTRL 0 |
||
5 | #define UART_MK3MAG 1 |
||
6 | #define UART_MKGPS 2 |
||
7 | |||
92 | killagreg | 8 | #include "ubx.h" |
41 | ingob | 9 | |
156 | killagreg | 10 | |
62 | killagreg | 11 | typedef struct |
92 | killagreg | 12 | { |
112 | killagreg | 13 | u8 SWMajor; |
14 | u8 SWMinor; |
||
15 | u8 ProtoMajor; |
||
16 | u8 ProtoMinor; |
||
17 | u8 SWPatch; |
||
18 | u8 Reserved[5]; |
||
161 | killagreg | 19 | } __attribute__((packed)) UART_VersionInfo_t; |
112 | killagreg | 20 | |
21 | extern UART_VersionInfo_t UART_VersionInfo; |
||
22 | |||
23 | |||
24 | typedef struct |
||
25 | { |
||
161 | killagreg | 26 | s16 AngleNick; // in 0.1 deg |
27 | s16 AngleRoll; // in 0.1 deg |
||
28 | s16 Heading; // in 0.1 deg |
||
29 | u8 reserve[8]; |
||
61 | holgerb | 30 | } __attribute__((packed)) Data3D_t; |
31 | |||
32 | extern Data3D_t Data3D; |
||
33 | |||
112 | killagreg | 34 | |
35 | extern const u8 ANALOG_LABEL[32][16]; |
||
36 | |||
41 | ingob | 37 | typedef struct |
38 | { |
||
39 | u8 Digital[2]; |
||
40 | u16 Analog[32]; // Debugwerte |
||
41 | } __attribute__((packed)) DebugOut_t; |
||
42 | |||
43 | extern DebugOut_t DebugOut; |
||
44 | |||
45 | typedef struct |
||
46 | { |
||
47 | u8 Digital[2]; |
||
48 | u8 RemoteButtons; |
||
49 | s8 Nick; |
||
50 | s8 Roll; |
||
51 | s8 Yaw; |
||
52 | u8 Gas; |
||
53 | s8 Height; |
||
54 | u8 free; |
||
55 | u8 Frame; |
||
56 | u8 Config; |
||
57 | } __attribute__((packed)) ExternControl_t; |
||
58 | |||
59 | extern ExternControl_t ExternControl; |
||
60 | |||
61 | typedef struct |
||
62 | { |
||
63 | s16 Nick; |
||
64 | s16 Roll; |
||
65 | s16 Compass; // angle between north and head of the MK |
||
161 | killagreg | 66 | } __attribute__((packed)) Attitude_t; |
41 | ingob | 67 | |
68 | typedef struct |
||
69 | { |
||
89 | killagreg | 70 | u16 Distance; // distance to target in dm |
92 | killagreg | 71 | s16 Bearing; // course to target in deg |
161 | killagreg | 72 | } __attribute__((packed)) GPS_PosDev_t; |
41 | ingob | 73 | |
206 | killagreg | 74 | #define NAVIDATA_VERSION 3 |
89 | killagreg | 75 | |
41 | ingob | 76 | typedef struct |
77 | { |
||
89 | killagreg | 78 | u8 Version; // version of the data structure |
41 | ingob | 79 | GPS_Pos_t CurrentPosition; // see ubx.h for details |
80 | GPS_Pos_t TargetPosition; |
||
81 | GPS_PosDev_t TargetPositionDeviation; |
||
82 | GPS_Pos_t HomePosition; |
||
83 | GPS_PosDev_t HomePositionDeviation; |
||
84 | u8 WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1 |
||
85 | u8 WaypointNumber; // number of stored waypoints |
||
89 | killagreg | 86 | u8 SatsInUse; // number of satellites used for position solution |
41 | ingob | 87 | s16 Altimeter; // hight according to air pressure |
88 | s16 Variometer; // climb(+) and sink(-) rate |
||
89 | u16 FlyingTime; // in seconds |
||
90 | u8 UBat; // Battery Voltage in 0.1 Volts |
||
91 | u16 GroundSpeed; // speed over ground in cm/s (2D) |
||
89 | killagreg | 92 | s16 Heading; // current flight direction in ° as angle to north |
93 | s16 CompassHeading; // current compass value in ° |
||
41 | ingob | 94 | s8 AngleNick; // current Nick angle in 1° |
95 | s8 AngleRoll; // current Rick angle in 1° |
||
96 | u8 RC_Quality; // RC_Quality |
||
199 | killagreg | 97 | u8 FCFlags; // Flags from FC |
41 | ingob | 98 | u8 NCFlags; // Flags from NC |
99 | u8 Errorcode; // 0 --> okay |
||
161 | killagreg | 100 | u8 OperatingRadius; // current operation radius around the Home Position in m |
89 | killagreg | 101 | s16 TopSpeed; // velocity in vertical direction in cm/s |
125 | killagreg | 102 | u8 TargetHoldTime; // time in s to stay at the given target, counts down to 0 if target has been reached |
103 | u8 RC_RSSI; // Receiver signal strength (since version 2 added) |
||
161 | killagreg | 104 | s16 SetpointAltitude; // setpoint for altitude |
105 | u8 Gas; // for future use |
||
206 | killagreg | 106 | u16 Current; // actual current in 0.1A steps |
107 | u16 UsedCapacity; // used capacity in mAh |
||
41 | ingob | 108 | } __attribute__((packed)) NaviData_t; |
109 | |||
110 | extern NaviData_t NaviData; |
||
111 | |||
92 | killagreg | 112 | #define NC_FLAG_FREE 0x01 |
113 | #define NC_FLAG_PH 0x02 |
||
114 | #define NC_FLAG_CH 0x04 |
||
115 | #define NC_FLAG_RANGE_LIMIT 0x08 |
||
116 | #define NC_FLAG_NOSERIALLINK 0x10 |
||
117 | #define NC_FLAG_TARGET_REACHED 0x20 |
||
101 | holgerb | 118 | #define NC_FLAG_MANUAL_CONTROL 0x40 |
92 | killagreg | 119 | #define NC_FLAG_8 0x80 |
41 | ingob | 120 | |
121 | extern UART_TypeDef *DebugUART; |
||
92 | killagreg | 122 | extern volatile u8 SerialLinkOkay; |
41 | ingob | 123 | |
92 | killagreg | 124 | |
41 | ingob | 125 | void UART1_Init(void); |
126 | void UART1_Transmit(void); |
||
127 | void UART1_TransmitTxData(void); |
||
128 | void UART1_ProcessRxData(void); |
||
129 | |||
110 | killagreg | 130 | s16 UART1_Putchar(char c); |
131 | void UART1_PutString(u8 *s); |
||
150 | killagreg | 132 | extern u8 text[]; // globally used text buffer |
110 | killagreg | 133 | extern u8 UART1_Request_SendFollowMe; |
41 | ingob | 134 | #endif //_UART1_H |