/trunk/GPS.h |
---|
11,6 → 11,14 |
s16 Yaw; |
} __attribute__((packed)) GPS_Stick_t; |
typedef struct |
{ |
s16 Azimuth; // angle measured clockwise from north |
s16 Elevation; // angle measured upwards from horizont |
u8 State; // NEWDATA, PROCESSED, INVALID |
} __attribute__((packed)) CAM_Orientation_t; |
extern CAM_Orientation_t CAM_Orientation; |
extern Waypoint_t* GPS_pWaypoint; |
void GPS_Init(void); |
/trunk/params.c |
---|
1,6 → 1,7 |
#include "91x_lib.h" |
#include "params.h" |
#include "spi_slave.h" |
#include "waypoints.h" |
s16 NCParams[255]; |
13,8 → 14,21 |
u8 NCParams_SetValue(u8 id, s16* pvalue) |
{ |
NCParams[id] = *pvalue; |
// Process data |
if(id == NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT) NewCompassDirectionSetpoint = NCParams[NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT]; |
switch(id) |
{ |
case NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT: |
if(NULL == WPList_GetPOI()) |
{ |
CAM_Orientation.Azimuth = *pvalue; |
CAM_Orientation.Elevation = 0; |
CAM_Orientation.State = NEWDATA; |
} |
break; |
default: |
break; |
} |
return 1; |
} |
/trunk/spi_slave.c |
---|
102,7 → 102,6 |
u8 SPI_CommandCounter = 0; |
s32 ToFC_Rotate_C = 64, ToFC_Rotate_S = 0; |
s32 HeadFreeStartAngle = 0; |
s16 NewCompassDirectionSetpoint = -1; |
s16 FC_WP_EventChannel = 0; // gibt einen Schaltkanal an die FC weiter, wenn der Wegpunkt erreicht wurde |
SPI_Version_t FC_Version; |
297,9 → 296,17 |
ToFlightCtrl.Param.sByte[4] = (s8) ToFcGpsZ; |
ToFlightCtrl.Param.Byte[5] = (s8) ToFC_Rotate_C; |
ToFlightCtrl.Param.Byte[6] = (s8) ToFC_Rotate_S; |
// ToFlightCtrl.Param.Byte[7] ist frei |
ToFlightCtrl.Param.sInt[4] = (s16) NewCompassDirectionSetpoint; |
NewCompassDirectionSetpoint = -1; // delete the Value |
if(CAM_Orientation.State == NEWDATA) |
{ |
ToFlightCtrl.Param.sInt[4] = CAM_Orientation.Azimuth; |
ToFlightCtrl.Param.sInt[5] = CAM_Orientation.Elevation; |
CAM_Orientation.State = PROCESSED; |
} |
else |
{ // set invalid values |
ToFlightCtrl.Param.sInt[4] = -1; |
ToFlightCtrl.Param.sInt[5] = -1; |
} |
break; |
case SPI_NCCMD_VERSION: |
/trunk/spi_slave.h |
---|
21,7 → 21,6 |
extern s32 ToFcGpsZ; |
extern s32 ToFC_Rotate_C, ToFC_Rotate_S; |
extern s32 HeadFreeStartAngle; |
extern s16 NewCompassDirectionSetpoint; |
extern s16 FC_WP_EventChannel; |
typedef struct |
/trunk/waypoints.c |
---|
209,7 → 209,7 |
else POIIndex = 0; |
return(&(WPList[WPIndex-1])); |
} |
else // list conbtains some points but no WP in the list |
else // list contains some points but no WP in the list |
{ |
// search backward for a POI! |
for(i = 1; i <= WPNumber; i++) |