Rev 492 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 492 | Rev 494 | ||
---|---|---|---|
1 | #include "91x_lib.h" |
1 | #include "91x_lib.h" |
2 | #include "params.h" |
2 | #include "params.h" |
3 | #include "spi_slave.h" |
3 | #include "spi_slave.h" |
4 | #include "waypoints.h" |
4 | #include "waypoints.h" |
5 | 5 | ||
6 | s16 NCParams[255]; |
6 | s16 NCParams[255]; |
7 | u8 NCParamState[255]; |
7 | u8 NCParamState[255]; |
8 | 8 | ||
9 | void NCParams_Init(void) |
9 | void NCParams_Init(void) |
10 | { |
10 | { |
11 | u16 i; |
11 | u16 i; |
12 | for(i=0; i<256; i++) |
12 | for(i=0; i<256; i++) |
13 | { |
13 | { |
14 | NCParamState[i] = NCPARAM_STATE_UNDEFINED; |
14 | NCParamState[i] = NCPARAM_STATE_UNDEFINED; |
15 | NCParams[i] = 0; |
15 | NCParams[i] = 0; |
16 | } |
16 | } |
17 | NCParams[NCPARAMS_GPS_TARGETSPEED] = 50; // 5.0 m/s |
17 | NCParams[NCPARAMS_GPS_TARGETSPEED] = 50; // 5.0 m/s |
18 | NCParams[NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT] = -1; |
18 | NCParams[NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT] = -1; |
19 | NCParams[NCPARAMS_ALTITUDE_RATE] = 0; |
19 | NCParams[NCPARAMS_ALTITUDE_RATE] = 0; |
20 | } |
20 | } |
21 | 21 | ||
22 | u8 NCParams_SetValue(u8 id, s16 *pvalue) |
22 | u8 NCParams_SetValue(u8 id, s16 *pvalue) |
23 | { |
23 | { |
24 | NCParams[id] = *pvalue; |
24 | NCParams[id] = *pvalue; |
25 | NCParamState[id] = NCRARAM_STATE_VALID; |
25 | NCParamState[id] = NCRARAM_STATE_VALID; |
26 | 26 | ||
27 | switch(id) |
27 | switch(id) |
28 | { |
28 | { |
29 | case NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT: |
29 | case NCPARAMS_NEW_COMPASS_DIRECTION_SETPOINT: |
30 | if(NULL == PointList_GetPOI()) |
30 | if(NULL == PointList_GetPOI()) |
31 | { |
31 | { |
32 | CAM_Orientation.Azimuth = *pvalue; |
32 | CAM_Orientation.Azimuth = *pvalue; |
33 | CAM_Orientation.Elevation = 0; |
33 | CAM_Orientation.Elevation = 0; |
34 | CAM_Orientation.UpdateMask = CAM_UPDATE_AZIMUTH; |
34 | CAM_Orientation.UpdateMask = CAM_UPDATE_AZIMUTH; |
35 | } |
35 | } |
36 | break; |
36 | break; |
37 | - | ||
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 | 37 | ||
53 | default: |
38 | default: |
54 | break; |
39 | break; |
55 | } |
40 | } |
56 | return(NCParamState[id]); |
41 | return(NCParamState[id]); |
57 | } |
42 | } |
58 | 43 | ||
59 | void NCParams_ClearValue(u8 id) |
44 | void NCParams_ClearValue(u8 id) |
60 | { |
45 | { |
61 | NCParamState[id] = NCPARAM_STATE_UNDEFINED; |
46 | NCParamState[id] = NCPARAM_STATE_UNDEFINED; |
62 | } |
47 | } |
63 | 48 | ||
64 | 49 | ||
65 | u8 NCParams_GetValue(u8 id, s16 *pvalue) |
50 | u8 NCParams_GetValue(u8 id, s16 *pvalue) |
66 | { |
51 | { |
67 | if(pvalue == 0) return 0; |
52 | if(pvalue == 0) return 0; |
68 | if(NCParamState[id] == NCRARAM_STATE_VALID) |
53 | if(NCParamState[id] == NCRARAM_STATE_VALID) |
69 | { |
54 | { |
70 | *pvalue = NCParams[id]; |
55 | *pvalue = NCParams[id]; |
71 | } |
56 | } |
72 | return(NCParamState[id]); |
57 | return(NCParamState[id]); |
73 | } |
58 | } |
74 | 59 | ||
75 | 60 |