Subversion Repositories NaviCtrl

Rev

Rev 299 | Rev 494 | Go to most recent revision | 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
 
6
s16 NCParams[255];
295 killagreg 7
u8 NCParamState[255];
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
        {
29
                case NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT:
280 killagreg 30
                    if(NULL == PointList_GetPOI())
278 killagreg 31
                        {
32
                                CAM_Orientation.Azimuth = *pvalue;
33
                                CAM_Orientation.Elevation = 0;
280 killagreg 34
                                CAM_Orientation.UpdateMask = CAM_UPDATE_AZIMUTH;
278 killagreg 35
                        }
36
                        break;
37
 
492 killagreg 38
                case NCPARAMS_WP_LIST_LOAD:
39
                                        // read wp list from file
40
                                        if(PointList_ReadFromFile(*pvalue))
41
                                        {       //and move all wp relative so that 1st wp gets current positition
42
                                                //      PointList_Move(1, &GPSData.Position);
43
                                        }
44
                                        else PointList_Clear();
45
                                        break;
46
                        break;
47
 
48
                case NCPARAMS_WP_LIST_SAVE:
49
                        PointList_SaveToFile(*pvalue);
50
                        break;
51
 
52
 
278 killagreg 53
                default:
54
                        break;
55
        }
298 holgerb 56
        return(NCParamState[id]);
156 killagreg 57
}
58
 
298 holgerb 59
void NCParams_ClearValue(u8 id)
156 killagreg 60
{
298 holgerb 61
        NCParamState[id] =      NCPARAM_STATE_UNDEFINED;
62
}
63
 
64
 
65
u8 NCParams_GetValue(u8 id, s16 *pvalue)
66
{
157 killagreg 67
        if(pvalue == 0) return 0;
295 killagreg 68
        if(NCParamState[id] == NCRARAM_STATE_VALID)
69
        {
70
                *pvalue = NCParams[id];
71
        }
298 holgerb 72
        return(NCParamState[id]);
156 killagreg 73
}
298 holgerb 74