Subversion Repositories Projects

Compare Revisions

Ignore whitespace Rev 740 → Rev 741

/C-OSD/trunk/C-OSD AGRESSiVA mod/mk-data-structs.h
0,0 → 1,141
/****************************************************************************
* Copyright (C) 2009-2010 by Claas Anders "CaScAdE" Rathje *
* admiralcascade@gmail.com *
* Project-URL: http://www.mylifesucks.de/oss/c-osd/ *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
* GNU General Public License for more details. *
* *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
****************************************************************************/
 
/* ##########################################################################
* gain some fake arm compat :)
* ##########################################################################*/
#define u8 uint8_t
#define s8 int8_t
#define u16 uint16_t
#define s16 int16_t
#define u32 uint32_t
#define s32 int32_t
 
/*
* FC Debug Struct
* portions taken and adapted from
* http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.72p%2Fuart.h
*/
typedef struct {
uint8_t Digital[2];
uint16_t Analog[32]; // Debugvalues
} __attribute__((packed)) DebugOut_t;
 
 
typedef struct {
unsigned char SWMajor;
unsigned char SWMinor;
unsigned char ProtoMajor;
unsigned char ProtoMinor;
unsigned char SWPatch;
unsigned char Reserved[5];
} str_VersionInfo;
 
 
/*
* NaviCtrl OSD Structs
* portions taken and adapted from
* http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.18c%2Fuart1.h
*/
typedef struct {
s32 Longitude; // in 1E-7 deg
s32 Latitude; // in 1E-7 deg
s32 Altitude; // in mm
u8 Status; // validity of data
} __attribute__((packed)) GPS_Pos_t;
#define INVALID 0x00
#define NEWDATA 0x01
#define PROCESSED 0x02
 
 
+ u16 Distance; // distance to target in cm
+ s16 Bearing; // course to target in deg
+} __attribute__((packed)) GPS_PosDev_t;
+
+typedef struct {
+ u8 Version; // version of the data structure
+ GPS_Pos_t CurrentPosition; // see ubx.h for details
+ GPS_Pos_t TargetPosition;
+ GPS_PosDev_t TargetPositionDeviation;
+ GPS_Pos_t HomePosition;
+ GPS_PosDev_t HomePositionDeviation;
+ u8 WaypointIndex; // index of current waypoints running from 0 to WaypointNumber-1
+ u8 WaypointNumber; // number of stored waypoints
+ u8 SatsInUse; // number of satellites used for position solution
+ s16 Altimeter; // hight according to air pressure
+ s16 Variometer; // climb(+) and sink(-) rate
+ u16 FlyingTime; // in seconds
+ u8 UBat; // Battery Voltage in 0.1 Volts
+ u16 GroundSpeed; // speed over ground in cm/s (2D)
+ s16 Heading; // current flight direction in � as angle to north
+ s16 CompassHeading; // current compass value in �
+ s8 AngleNick; // current Nick angle in 1�
+ s8 AngleRoll; // current Rick angle in 1�
+ u8 RC_Quality; // RC_Quality
+ u8 FCFlags; // Flags from FC
+ u8 NCFlags; // Flags from NC
+ u8 Errorcode; // 0 --> okay
+ u8 OperatingRadius; // current operation radius around the Home Position in m
+ s16 TopSpeed; // velocity in vertical direction in cm/s
+ u8 TargetHoldTime; // time in s to stay at the given target, counts down to 0 if target has been reached
+ u8 RC_RSSI; // Receiver signal strength (since version 2 added)
+ s16 SetpointAltitude; // setpoint for altitude
+ u8 Gas; // for future use
+ u16 Current; // actual current in 0.1A steps
+ u16 UsedCapacity; // used capacity in mAh
+} __attribute__((packed)) NaviData_t;
+
+
+/*
+ * MikroKopter Flags
+ * taken from
+ * http://svn.mikrokopter.de/mikrowebsvn/filedetails.php?repname=FlightCtrl&path=%2Ftags%2FV0.78b%2Ffc.h
+ */
+#define FCFLAG_MOTOR_RUN 0x01
+#define FCFLAG_FLY 0x02
+#define FCFLAG_CALIBRATE 0x04
+#define FCFLAG_START 0x08
+#define FCFLAG_NOTLANDUNG 0x10
+#define FCFLAG_LOWBAT 0x20
+#define FCFLAG_SPI_RX_ERR 0x40
+#define FCFLAG_I2CERR 0x80
+
+// backward compat
+#define FLAG_MOTOR_RUN FCFLAG_MOTOR_RUN
+#define FLAG_FLY FCFLAG_FLY
+#define FLAG_CALIBRATE FCFLAG_CALIBRATE
+#define FLAG_START FCFLAG_START
+
+/*
+ * NaviCtrl Flags
+ * taken from
+ * http://mikrocontroller.cco-ev.de/mikrowebsvn/filedetails.php?repname=NaviCtrl&path=%2Ftags%2FV0.17e%2Fuart1.h
+ */
+#define NC_FLAG_FREE 0x01
+#define NC_FLAG_PH 0x02
+#define NC_FLAG_CH 0x04
+#define NC_FLAG_RANGE_LIMIT 0x08
+#define NC_FLAG_NOSERIALLINK 0x10
+#define NC_FLAG_TARGET_REACHED 0x20
+#define NC_FLAG_MANUAL_CONTROL 0x40
+#define NC_FLAG_8 0x80
+
+