Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 293 → Rev 294

/trunk/main.h
7,7 → 7,7
 
#define VERSION_MAJOR 0
#define VERSION_MINOR 23
#define VERSION_PATCH 11
#define VERSION_PATCH 12
// 0 = A
// 1 = B
// 2 = C
20,6 → 20,7
// 9 = J
// 10 = k
// 11 = L
// 12 = M
 
#define VERSION_SERIAL_MAJOR 11
#define VERSION_SERIAL_MINOR 0
37,6 → 38,11
#define FC_STATUS_VARIO_TRIM_UP 0x40
#define FC_STATUS_VARIO_TRIM_DOWN 0x80
 
// FC STATUS FLAGS2
#define FC_STATUS2_CAREFREE 0x01
#define FC_STATUS2_ALTITUDE_CONTROL 0x02
 
 
// FC ERRORS FLAGS
#define FC_ERROR0_GYRO_NICK 0x01
#define FC_ERROR0_GYRO_ROLL 0x02
126,6 → 132,7
u16 BAT_UsedCapacity;
u8 StatusFlags;
u8 Error[5];
u8 StatusFlags2;
} __attribute__((packed)) FC_t;
 
 
/trunk/params.c
9,6 → 9,9
{
NCParams[NCPARAMS_GPS_TARGETSPEED] = 50; // 5.0 m/s
NCParams[NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT] = -1;
NCParams[NCPARAMS_NEW_CAMERA_ELEVATION] = -30000; // invalid
NCParams[NCPARAMS_ALTITUDE_RATE] = -1;
NCParams[NCPARAMS_ALTITUDE_SETPOINT] = -30000; // in 0,1m -3000 -> invalid
}
 
u8 NCParams_SetValue(u8 id, s16* pvalue)
/trunk/params.h
4,9 → 4,13
// ids 0...255
#define NCPARAMS_GPS_TARGETSPEED 0
#define NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT 1
#define NCPARAMS_NEW_CAMERA_ELEVATION 2
#define NCPARAMS_ALTITUDE_RATE 3
#define NCPARAMS_ALTITUDE_SETPOINT 4
 
extern void NCParams_Init();
extern u8 NCParams_SetValue(u8 id, s16* pvalue);
extern u8 NCParams_GetValue(u8 id, s16* pvalue);
extern s16 NCParams[255];
 
#endif // _PARAMS_H
/trunk/spi_slave.c
67,8 → 67,8
#include "config.h"
#include "main.h"
#include "compass.h"
#include "params.h"
 
 
#define SPI_RXSYNCBYTE1 0xAA
#define SPI_RXSYNCBYTE2 0x83
#define SPI_TXSYNCBYTE1 0x81
312,7 → 312,16
{
ToFlightCtrl.Param.sInt[4] = -1;
}
ToFlightCtrl.Param.sInt[5] = CAM_Orientation.Elevation;
 
if(NCParams[NCPARAMS_NEW_CAMERA_ELEVATION] != -30000) // Elevation set via 'j' command
{
ToFlightCtrl.Param.sInt[5] = NCParams[NCPARAMS_NEW_CAMERA_ELEVATION];
}
else
{
if(FC.StatusFlags2 & FC_STATUS2_CAREFREE) ToFlightCtrl.Param.sInt[5] = CAM_Orientation.Elevation; // only, if carefree is active
else ToFlightCtrl.Param.sInt[5] = 0;
}
break;
 
case SPI_NCCMD_VERSION:
334,8 → 343,10
ToFlightCtrl.Param.Int[2] = NaviData.HomePositionDeviation.Distance; // dm //4&5
ToFlightCtrl.Param.sInt[3] = NaviData.HomePositionDeviation.Bearing; // deg //6&7
ToFlightCtrl.Param.Byte[8] = (s8)(FC_WP_EventChannel - 110);
ToFlightCtrl.Param.Byte[9] = (u8) ToFC_AltitudeRate;
ToFlightCtrl.Param.sInt[5] = (s16) ToFC_AltitudeSetpoint;
if(NCParams[NCPARAMS_ALTITUDE_RATE] != -1) ToFlightCtrl.Param.Byte[9] = (u8) NCParams[NCPARAMS_ALTITUDE_RATE];
else ToFlightCtrl.Param.Byte[9] = (u8) ToFC_AltitudeRate;
if(NCParams[NCPARAMS_ALTITUDE_SETPOINT] != -30000) ToFlightCtrl.Param.sInt[5] = (s16) NCParams[NCPARAMS_ALTITUDE_SETPOINT];
else ToFlightCtrl.Param.sInt[5] = (s16) ToFC_AltitudeSetpoint;
break;
default:
break;
377,7 → 388,9
}
Parameter.ActiveSetting = FromFlightCtrl.Param.Byte[9];
DebugOut.Analog[5] = FC.StatusFlags;
FC.StatusFlags2 = FromFlightCtrl.Param.Byte[11];
NaviData.FCStatusFlags = FC.StatusFlags;
NaviData.FCStatusFlags2 = FC.StatusFlags2;
HeadFreeStartAngle = (s32) FromFlightCtrl.Param.Byte[10] * 20; // convert to 0.1°
break;
 
439,8 → 452,8
CHK_POTI_MM(Parameter.NaviGpsDLimit,FromFlightCtrl.Param.Byte[8],0,255);
FC.RC_Quality = FromFlightCtrl.Param.Byte[9];
FC.RC_RSSI = FromFlightCtrl.Param.Byte[10];
NaviData.RC_Quality = FC.RC_Quality;
NaviData.RC_RSSI = FC.RC_RSSI;
if(!FC.RC_RSSI) NaviData.RC_Quality = FC.RC_Quality; else NaviData.RC_Quality = FC.RC_RSSI;
// NaviData.RC_RSSI = FC.RC_RSSI;
NaviData.Gas = (FC.BAT_Voltage * (u32) FromFlightCtrl.Param.Byte[11]) / (u32) Parameter.LowVoltageWarning;
break;
 
/trunk/uart1.h
76,7 → 76,7
s16 Bearing; // course to target in deg
} __attribute__((packed)) GPS_PosDev_t;
 
#define NAVIDATA_VERSION 4
#define NAVIDATA_VERSION 5
 
typedef struct
{
105,7 → 105,7
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)
u8 FCStatusFlags2; // StatusFlags2 (since version 5 added)
s16 SetpointAltitude; // setpoint for altitude
u8 Gas; // for future use
u16 Current; // actual current in 0.1A steps