Subversion Repositories NaviCtrl

Rev

Rev 780 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
156 killagreg 1
#include "91x_lib.h"
2
#include "params.h"
276 holgerb 3
#include "spi_slave.h"
278 killagreg 4
#include "waypoints.h"
156 killagreg 5
 
780 holgerb 6
s16 NCParams[256];
7
u8 NCParamState[256];
156 killagreg 8
 
9
void NCParams_Init(void)
10
{
295 killagreg 11
        u16 i;
12
        for(i=0; i<256; i++)
13
        {
14
                NCParamState[i] = NCPARAM_STATE_UNDEFINED;
298 holgerb 15
                NCParams[i] = 0;
295 killagreg 16
        }
156 killagreg 17
        NCParams[NCPARAMS_GPS_TARGETSPEED] = 50; // 5.0 m/s
276 holgerb 18
        NCParams[NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT] = -1;
298 holgerb 19
        NCParams[NCPARAMS_ALTITUDE_RATE] = 0;
156 killagreg 20
}
21
 
298 holgerb 22
u8 NCParams_SetValue(u8 id, s16 *pvalue)
156 killagreg 23
{
157 killagreg 24
        NCParams[id] = *pvalue;
295 killagreg 25
        NCParamState[id] =      NCRARAM_STATE_VALID;
278 killagreg 26
 
27
        switch(id)
28
        {
780 holgerb 29
                case NCPARAMS_BARO_KOMPENSATION:
30
                        LuftdruckTemperaturKompensation = *pvalue;
31
                        WriteBaroCalibrationToEEprom();
32
                        break;
33
 
588 holgerb 34
                case NCPARAMS_FORCE_NEW_COMPASS_DIRECTION:
35
                        CAM_Orientation.UpdateMask |= FORCE_AZIMUTH_ROTATION;
36
                        // Break fehlt hier absichtlich
278 killagreg 37
                case NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT:
280 killagreg 38
                    if(NULL == PointList_GetPOI())
278 killagreg 39
                        {
40
                                CAM_Orientation.Azimuth = *pvalue;
41
                                CAM_Orientation.Elevation = 0;
588 holgerb 42
                                CAM_Orientation.UpdateMask |= CAM_UPDATE_AZIMUTH;
278 killagreg 43
                        }
44
                        break;
45
                default:
46
                        break;
47
        }
298 holgerb 48
        return(NCParamState[id]);
156 killagreg 49
}
50
 
298 holgerb 51
void NCParams_ClearValue(u8 id)
156 killagreg 52
{
298 holgerb 53
        NCParamState[id] =      NCPARAM_STATE_UNDEFINED;
54
}
55
 
56
 
57
u8 NCParams_GetValue(u8 id, s16 *pvalue)
58
{
157 killagreg 59
        if(pvalue == 0) return 0;
295 killagreg 60
        if(NCParamState[id] == NCRARAM_STATE_VALID)
61
        {
62
                *pvalue = NCParams[id];
63
        }
298 holgerb 64
        return(NCParamState[id]);
156 killagreg 65
}
298 holgerb 66