Rev 677 | Rev 734 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 677 | Rev 728 | ||
---|---|---|---|
1 | /**************************************************************************** |
1 | /**************************************************************************** |
2 | * Copyright (C) 2009 by Claas Anders "CaScAdE" Rathje * |
2 | * Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje * |
3 | * admiralcascade@gmail.com * |
3 | * admiralcascade@gmail.com * |
4 | * Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
4 | * Project-URL: http://www.mylifesucks.de/oss/c-osd/ * |
5 | * * |
5 | * * |
6 | * This program is free software; you can redistribute it and/or modify * |
6 | * This program is free software; you can redistribute it and/or modify * |
7 | * it under the terms of the GNU General Public License as published by * |
7 | * it under the terms of the GNU General Public License as published by * |
8 | * the Free Software Foundation; either version 2 of the License. * |
8 | * the Free Software Foundation; either version 2 of the License. * |
9 | * * |
9 | * * |
10 | * This program is distributed in the hope that it will be useful, * |
10 | * This program is distributed in the hope that it will be useful, * |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of * |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * |
13 | * GNU General Public License for more details. * |
13 | * GNU General Public License for more details. * |
14 | * * |
14 | * * |
15 | * You should have received a copy of the GNU General Public License * |
15 | * You should have received a copy of the GNU General Public License * |
16 | * along with this program; if not, write to the * |
16 | * along with this program; if not, write to the * |
17 | * Free Software Foundation, Inc., * |
17 | * Free Software Foundation, Inc., * |
18 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
18 | * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * |
19 | ****************************************************************************/ |
19 | ****************************************************************************/ |
20 | 20 | ||
21 | /* ########################################################################## |
21 | /* ########################################################################## |
22 | * gain some fake arm compat :) |
22 | * gain some fake arm compat :) |
23 | * ##########################################################################*/ |
23 | * ##########################################################################*/ |
24 | #define u8 uint8_t |
24 | #define u8 uint8_t |
25 | #define s8 int8_t |
25 | #define s8 int8_t |
26 | #define u16 uint16_t |
26 | #define u16 uint16_t |
27 | #define s16 int16_t |
27 | #define s16 int16_t |
28 | #define u32 uint32_t |
28 | #define u32 uint32_t |
29 | #define s32 int32_t |
29 | #define s32 int32_t |
30 | 30 | ||
31 | /* |
31 | /* |
32 | * FC Debug Struct |
32 | * FC Debug Struct |
33 | * portions taken and adapted from |
33 | * portions taken and adapted from |
34 | * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.72p%2Fuart.h |
34 | * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.72p%2Fuart.h |
35 | */ |
35 | */ |
36 | typedef struct { |
36 | typedef struct { |
37 | uint8_t Digital[2]; |
37 | uint8_t Digital[2]; |
38 | uint16_t Analog[32]; // Debugvalues |
38 | uint16_t Analog[32]; // Debugvalues |
39 | } __attribute__((packed)) DebugOut_t; |
39 | } __attribute__((packed)) DebugOut_t; |
40 | 40 | ||
41 | 41 | ||
42 | typedef struct { |
42 | typedef struct { |
43 | unsigned char SWMajor; |
43 | unsigned char SWMajor; |
44 | unsigned char SWMinor; |
44 | unsigned char SWMinor; |
45 | unsigned char ProtoMajor; |
45 | unsigned char ProtoMajor; |
46 | unsigned char ProtoMinor; |
46 | unsigned char ProtoMinor; |
47 | unsigned char SWPatch; |
47 | unsigned char SWPatch; |
48 | unsigned char Reserved[5]; |
48 | unsigned char Reserved[5]; |
49 | } str_VersionInfo; |
49 | } str_VersionInfo; |
50 | 50 | ||
51 | 51 | ||
52 | /* |
52 | /* |
53 | * NaviCtrl OSD Structs |
53 | * NaviCtrl OSD Structs |
54 | * portions taken and adapted from |
54 | * portions taken and adapted from |
55 | * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.17e%2Fuart1.h |
55 | * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.18c%2Fuart1.h |
56 | */ |
56 | */ |
57 | typedef struct { |
57 | typedef struct { |
58 | s32 Longitude; // in 1E-7 deg |
58 | s32 Longitude; // in 1E-7 deg |
59 | s32 Latitude; // in 1E-7 deg |
59 | s32 Latitude; // in 1E-7 deg |
60 | s32 Altitude; // in mm |
60 | s32 Altitude; // in mm |
61 | u8 Status; // validity of data |
61 | u8 Status; // validity of data |
62 | } __attribute__((packed)) GPS_Pos_t; |
62 | } __attribute__((packed)) GPS_Pos_t; |
63 | #define INVALID 0x00 |
63 | #define INVALID 0x00 |
64 | #define NEWDATA 0x01 |
64 | #define NEWDATA 0x01 |
65 | #define PROCESSED 0x02 |
65 | #define PROCESSED 0x02 |
66 | 66 | ||
67 | 67 | ||
68 | typedef struct { |
68 | typedef struct { |
69 | u16 Distance; // distance to target in cm |
69 | u16 Distance; // distance to target in cm |
70 | s16 Bearing; // course to target in deg |
70 | s16 Bearing; // course to target in deg |
71 | } __attribute__((packed)) GPS_PosDev_t; |
71 | } __attribute__((packed)) GPS_PosDev_t; |
72 | 72 | ||
73 | typedef struct { |
73 | typedef struct { |
74 | u8 Version; // version of the data structure |
74 | u8 Version; // version of the data structure |
75 | GPS_Pos_t CurrentPosition; // see ubx.h for details |
75 | GPS_Pos_t CurrentPosition; // see ubx.h for details |
76 | GPS_Pos_t TargetPosition; |
76 | GPS_Pos_t TargetPosition; |
77 | GPS_PosDev_t TargetPositionDeviation; |
77 | GPS_PosDev_t TargetPositionDeviation; |
78 | GPS_Pos_t HomePosition; |
78 | GPS_Pos_t HomePosition; |
79 | GPS_PosDev_t HomePositionDeviation; |
79 | GPS_PosDev_t HomePositionDeviation; |
80 | u8 WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1 |
80 | u8 WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1 |
81 | u8 WaypointNumber; // number of stored waypoints |
81 | u8 WaypointNumber; // number of stored waypoints |
82 | u8 SatsInUse; // number of satellites used for position solution |
82 | u8 SatsInUse; // number of satellites used for position solution |
83 | s16 Altimeter; // hight according to air pressure |
83 | s16 Altimeter; // hight according to air pressure |
84 | s16 Variometer; // climb(+) and sink(-) rate |
84 | s16 Variometer; // climb(+) and sink(-) rate |
85 | u16 FlyingTime; // in seconds |
85 | u16 FlyingTime; // in seconds |
86 | u8 UBat; // Battery Voltage in 0.1 Volts |
86 | u8 UBat; // Battery Voltage in 0.1 Volts |
87 | u16 GroundSpeed; // speed over ground in cm/s (2D) |
87 | u16 GroundSpeed; // speed over ground in cm/s (2D) |
88 | s16 Heading; // current flight direction in ° as angle to north |
88 | s16 Heading; // current flight direction in � as angle to north |
89 | s16 CompassHeading; // current compass value in ° |
89 | s16 CompassHeading; // current compass value in � |
90 | s8 AngleNick; // current Nick angle in 1° |
90 | s8 AngleNick; // current Nick angle in 1� |
91 | s8 AngleRoll; // current Rick angle in 1° |
91 | s8 AngleRoll; // current Rick angle in 1� |
92 | u8 RC_Quality; // RC_Quality |
92 | u8 RC_Quality; // RC_Quality |
93 | u8 MKFlags; // Flags from FC |
93 | u8 FCFlags; // Flags from FC |
94 | u8 NCFlags; // Flags from NC |
94 | u8 NCFlags; // Flags from NC |
95 | u8 Errorcode; // 0 --> okay |
95 | u8 Errorcode; // 0 --> okay |
96 | u8 OperatingRadius; // current operation radius around the Home Position in m |
96 | u8 OperatingRadius; // current operation radius around the Home Position in m |
97 | s16 TopSpeed; // velocity in vertical direction in cm/s |
97 | s16 TopSpeed; // velocity in vertical direction in cm/s |
98 | u8 TargetHoldTime; // time in s to stay at the given target, counts down to 0 if target has been reached |
98 | u8 TargetHoldTime; // time in s to stay at the given target, counts down to 0 if target has been reached |
99 | u8 RC_RSSI; // Receiver signal strength (since version 2 added) |
99 | u8 RC_RSSI; // Receiver signal strength (since version 2 added) |
100 | s16 SetpointAltitude; // setpoint for altitude |
100 | s16 SetpointAltitude; // setpoint for altitude |
- | 101 | u8 Gas; // for future use |
|
- | 102 | u16 Current; // actual current in 0.1A steps |
|
101 | u8 Gas; // for future use |
103 | u16 UsedCapacity; // used capacity in mAh |
- | 104 | } __attribute__((packed)) NaviData_t; |
|
102 | } __attribute__((packed)) NaviData_t; |
105 | |
103 | 106 | ||
104 | /* |
107 | /* |
105 | * MikroKopter Flags |
108 | * MikroKopter Flags |
106 | * taken from |
109 | * taken from |
107 | * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.73d%2Ffc.h |
110 | * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.73d%2Ffc.h |
108 | */ |
111 | */ |
109 | #define FLAG_MOTOR_RUN 1 |
112 | #define FLAG_MOTOR_RUN 1 |
110 | #define FLAG_FLY 2 |
113 | #define FLAG_FLY 2 |
111 | #define FLAG_CALIBRATE 4 |
114 | #define FLAG_CALIBRATE 4 |
112 | #define FLAG_START 8 |
115 | #define FLAG_START 8 |
113 | 116 | ||
114 | /* |
117 | /* |
115 | * NaviCtrl Flags |
118 | * NaviCtrl Flags |
116 | * taken from |
119 | * taken from |
117 | * http://mikrocontroller.cco-ev.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.17e%2Fuart1.h |
120 | * http://mikrocontroller.cco-ev.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.17e%2Fuart1.h |
118 | */ |
121 | */ |
119 | #define NC_FLAG_FREE 0x01 |
122 | #define NC_FLAG_FREE 0x01 |
120 | #define NC_FLAG_PH 0x02 |
123 | #define NC_FLAG_PH 0x02 |
121 | #define NC_FLAG_CH 0x04 |
124 | #define NC_FLAG_CH 0x04 |
122 | #define NC_FLAG_RANGE_LIMIT 0x08 |
125 | #define NC_FLAG_RANGE_LIMIT 0x08 |
123 | #define NC_FLAG_NOSERIALLINK 0x10 |
126 | #define NC_FLAG_NOSERIALLINK 0x10 |
124 | #define NC_FLAG_TARGET_REACHED 0x20 |
127 | #define NC_FLAG_TARGET_REACHED 0x20 |
125 | #define NC_FLAG_MANUAL_CONTROL 0x40 |
128 | #define NC_FLAG_MANUAL_CONTROL 0x40 |
126 | #define NC_FLAG_8 0x80 |
129 | #define NC_FLAG_8 0x80 |
127 | 130 | ||
128 | 131 | ||
129 | 132 |