Subversion Repositories NaviCtrl

Compare Revisions

Ignore whitespace Rev 277 → Rev 278

/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++)