Subversion Repositories NaviCtrl

Rev

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