Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 806 → Rev 807

/trunk/main.h
14,7 → 14,7
 
#define VERSION_MAJOR 2
#define VERSION_MINOR 17
#define VERSION_PATCH 3
#define VERSION_PATCH 4
// 0 = A
// 1 = B
// 2 = C
94,7 → 94,20
#define OSD2_FLAG_AUTO_STARTING 0x40
#define OSD2_FLAG_AUTO_LANDING 0x80
 
// NaviData_Home.OSDStatusFlags3 (Index:13 Home-Position) -> use only for flags that change slowly
#define OSD_FIX_NONE 0
#define OSD_FIX_2D 1
#define OSD_FIX_3D 2
#define OSD_FIX_DGPS 3
#define OSD_FIX_RTK_FLOAT 4
#define OSD_FIX_RTK_FIX 5
 
#define OSD3_FLAG_FIXBIT0 0x01
#define OSD3_FLAG_FIXBIT1 0x02
#define OSD3_FLAG_FIXBIT2 0x04
#define OSD3_FLAG_HOTSHOE 0x08
#define OSD3_FLAG_BOAT_MODE 0x10
 
// the OSD-Flags are built from the FC status flags. They are combined into new bytes to increse the efficiency in the data protocol
#define OSD_FLAG_MASK1 (0x04 + 0x20 + 0x40 + 0x80)
#define OSD_FLAG_MASK2 (0x01 + 0x02 + 0x08 + 0x10)
/trunk/uart1.c
82,6 → 82,7
#include "fat16.h"
#include "crc16.h"
#include "eeprom.h"
#include "triggerlog.h"
 
#define LIC_CMD_READ_LICENSE 1
#define LIC_CMD_WRITE_LICENSE 2
1181,6 → 1182,21
NaviData_Home.HomeLatitude = NaviData.HomePosition.Latitude;
NaviData_Home.HomeAltitude = NaviData.HomePosition.Altitude;
NaviData_Home.WP_OperatingRadius = MaxWP_Radius_in_m;
// ++++++++++++++
// + Fix Type
// ++++++++++++++
if(!(GPSData.Flags & FLAG_GPSFIXOK)) NaviData_Home.OSDStatusFlags3 = (NaviData_Home.OSDStatusFlags3 & 0xf8) | OSD_FIX_NONE;
else
if(GPSData.SatFix == SATFIX_2D) NaviData_Home.OSDStatusFlags3 = (NaviData_Home.OSDStatusFlags3 & 0xf8) | OSD_FIX_2D;
else
if(GPSData.Flags & FLAG_DIFFSOLN) NaviData_Home.OSDStatusFlags3 = (NaviData_Home.OSDStatusFlags3 & 0xf8) | OSD_FIX_DGPS;
else
if(GPSData.SatFix == SATFIX_3D) NaviData_Home.OSDStatusFlags3 = (NaviData_Home.OSDStatusFlags3 & 0xf8) | OSD_FIX_3D;
// ++++++++++++++
if(BlitzSchuhConnected) NaviData_Home.OSDStatusFlags3 |= OSD3_FLAG_HOTSHOE; else NaviData_Home.OSDStatusFlags3 &= ~OSD3_FLAG_HOTSHOE;
// ++++++++++++++
if(FC.StatusFlags3 & FC_STATUS3_BOAT) NaviData_Home.OSDStatusFlags3 |= OSD3_FLAG_BOAT_MODE; else NaviData_Home.OSDStatusFlags3 &= ~OSD3_FLAG_BOAT_MODE;
// ++++++++++++++
crc_home = CRC16((unsigned char*)(&NaviData_Home.HomeLongitude), sizeof(NaviData_Home_t) - START_PAYLOAD_DATA); // update crc for the structure
if((crc_home != CRC_Home) || (--count_home == 0))
{
/trunk/uart1.h
253,8 → 253,8
u8 LipoCellCount;
u8 DescendRange; // in [10m]
u8 ManualFlyingRange; // in [10m]
u8 OSDStatusFlags3;
u8 reserve1;
u8 reserve2;
} __attribute__((packed)) NaviData_Home_t;
extern NaviData_Home_t NaviData_Home;