Rev 2554 | Go to most recent revision | Only display areas with differences | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2554 | Rev 2630 | ||
---|---|---|---|
1 | #include "libfc.h" |
1 | #include "libfc.h" |
2 | #include "printf_P.h" |
2 | #include "printf_P.h" |
3 | #include "main.h" |
3 | #include "main.h" |
4 | #include "spi.h" |
4 | #include "spi.h" |
5 | #include "capacity.h" |
5 | #include "capacity.h" |
6 | #include "jeti_ex.h" |
6 | #include "jeti_ex.h" |
7 | #include "hottmenu.h" |
7 | #include "hottmenu.h" |
8 | 8 | ||
9 | #if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)) |
9 | #if (defined(__AVR_ATmega1284__) || defined(__AVR_ATmega1284P__)) |
10 | 10 | ||
11 | const char PROGMEM JETI_CODE[53] = |
11 | const char PROGMEM JETI_CODE[53] = |
12 | { |
12 | { |
13 | 0, // 0 |
13 | 0, // 0 |
14 | 'O', // SPEAK_ERR_CALIBARTION 1 |
14 | 'O', // SPEAK_ERR_CALIBARTION 1 |
15 | 'P', // SPEAK_ERR_RECEICER 2 |
15 | 'P', // SPEAK_ERR_RECEICER 2 |
16 | 'Q', // SPEAK_ERR_DATABUS 3 |
16 | 'Q', // SPEAK_ERR_DATABUS 3 |
17 | 'R', // SPEAK_ERR_NAVI 4 |
17 | 'R', // SPEAK_ERR_NAVI 4 |
18 | 'S', // SPEAK_ERROR 5 |
18 | 'S', // SPEAK_ERROR 5 |
19 | 'T', // SPEAK_ERR_COMPASS 6 |
19 | 'T', // SPEAK_ERR_COMPASS 6 |
20 | 'S', // SPEAK_ERR_SENSOR 7 |
20 | 'S', // SPEAK_ERR_SENSOR 7 |
21 | 'V', // SPEAK_ERR_GPS 8 |
21 | 'V', // SPEAK_ERR_GPS 8 |
22 | 'W', // SPEAK_ERR_MOTOR 9 |
22 | 'W', // SPEAK_ERR_MOTOR 9 |
23 | 'H', // SPEAK_MAX_TEMPERAT 10 |
23 | 'H', // SPEAK_MAX_TEMPERAT 10 |
24 | 0, // SPEAK_ALTI_REACHED 11 |
24 | 0, // SPEAK_ALTI_REACHED 11 |
25 | 'X', // SPEAK_WP_REACHED 12 |
25 | 'X', // SPEAK_WP_REACHED 12 |
26 | 'Y', // SPEAK_NEXT_WP 13 |
26 | 'Y', // SPEAK_NEXT_WP 13 |
27 | 0, // SPEAK_LANDING 14 |
27 | 0, // SPEAK_LANDING 14 |
28 | 'Z', // SPEAK_GPS_FIX 15 |
28 | 'Z', // SPEAK_GPS_FIX 15 |
29 | 'U', // SPEAK_UNDERVOLTAGE 16 |
29 | 'U', // SPEAK_UNDERVOLTAGE 16 |
30 | 'E', // SPEAK_GPS_HOLD 17 |
30 | 'E', // SPEAK_GPS_HOLD 17 |
31 | 'F', // SPEAK_GPS_HOME 18 |
31 | 'F', // SPEAK_GPS_HOME 18 |
32 | 'G', // SPEAK_GPS_OFF 19 |
32 | 'G', // SPEAK_GPS_OFF 19 |
33 | 'H', // SPEAK_BEEP 20 |
33 | 'H', // SPEAK_BEEP 20 |
34 | 'A', // SPEAK_MIKROKOPTER 21 |
34 | 'A', // SPEAK_MIKROKOPTER 21 |
35 | 0, // SPEAK_CAPACITY 22 |
35 | 0, // SPEAK_CAPACITY 22 |
36 | 'I', // SPEAK_CF_OFF 23 |
36 | 'I', // SPEAK_CF_OFF 23 |
37 | 'B', // SPEAK_CALIBRATE 24 |
37 | 'B', // SPEAK_CALIBRATE 24 |
38 | 'J', // SPEAK_MAX_RANGE 25 |
38 | 'J', // SPEAK_MAX_RANGE 25 |
39 | 'J', // SPEAK_MAX_ALTITUD 26 |
39 | 'J', // SPEAK_MAX_ALTITUD 26 |
40 | 0, // 27 |
40 | 0, // 27 |
41 | 0, // 28 |
41 | 0, // 28 |
42 | 0, // 29 |
42 | 0, // 29 |
43 | 0, // 30 |
43 | 0, // 30 |
44 | 0, // 31 |
44 | 0, // 31 |
45 | 0, // 32 |
45 | 0, // 32 |
46 | 0, // 33 |
46 | 0, // 33 |
47 | 0, // 34 |
47 | 0, // 34 |
48 | 0, // 35 |
48 | 0, // 35 |
49 | 0, // 36 |
49 | 0, // 36 |
50 | 0, // SPEAK_20M 37 |
50 | 0, // SPEAK_20M 37 |
51 | 'D', // SPEAK_MK_OFF 38 |
51 | 'D', // SPEAK_MK_OFF 38 |
52 | 'L', // SPEAK_ALTITUDE_ON 39 |
52 | 'L', // SPEAK_ALTITUDE_ON 39 |
53 | 'M', // SPEAK_ALTITUDE_OFF 40 |
53 | 'M', // SPEAK_ALTITUDE_OFF 40 |
54 | 0, // SPEAK_100M 41 |
54 | 0, // SPEAK_100M 41 |
55 | 0, // 42 |
55 | 'S', // SPEAK_RECEIV_VOLT 42 |
56 | 0, // 43 |
56 | 0, // 43 |
57 | 0, // 44 |
57 | 0, // 44 |
58 | 0, // 45 |
58 | 0, // 45 |
59 | 'N', // SPEAK_CF_ON 46 |
59 | 'N', // SPEAK_CF_ON 46 |
60 | 0, // SPEAK_SINKING 47 |
60 | 0, // SPEAK_SINKING 47 |
61 | 0, // SPEAK_RISING 48 |
61 | 0, // SPEAK_RISING 48 |
62 | 0, // SPEAK_HOLDING 49 |
62 | 0, // SPEAK_HOLDING 49 |
63 | 'K', // SPEAK_GPS_ON 50 // ? |
63 | 'K', // SPEAK_GPS_ON 50 // ? |
64 | 0, // SPEAK_FOLLWING 51 |
64 | 0, // SPEAK_FOLLWING 51 |
65 | 'C' // SPEAK_STARTING 52 |
65 | 'C' // SPEAK_STARTING 52 |
66 | }; |
66 | }; |
67 | 67 | ||
68 | 68 | ||
69 | JetiExPacket_t JetiExData[JETI_EX_PARAMETER_COUNT + 1] = // Parameter count + DeviceName (ID0) |
69 | JetiExPacket_t JetiExData[JETI_EX_PARAMETER_COUNT + 1] = // Parameter count + DeviceName (ID0) |
70 | { |
70 | { |
71 | // Label[10] unit[3], data type, Data , position of decimal point |
71 | // Label[10] unit[3], data type, Data , position of decimal point |
72 | // "1234567890", "123", |
72 | // "1234567890", "123", |
73 | // { "-=.M_K.=-" , " ", 1, 0 , 0 }, // first one is device name // datatype 1 = -8192...8192 |
73 | // { "-=.M_K.=-" , " ", 1, 0 , 0 }, // first one is device name // datatype 1 = -8192...8192 |
74 | { "MK " , " ", 1, 0 , 0 }, // first one is device name // datatype 1 = -8192...8192 |
74 | { "MK " , " ", 1, 0 , 0 }, // first one is device name // datatype 1 = -8192...8192 |
75 | { "Voltage " , "V ", 1, 0 , 1 }, // ID 1 |
75 | { "Voltage " , "V ", 1, 0 , 1 }, // ID 1 |
76 | { "Current " , "A ", 1, 0 , 1 }, // ID 2 |
76 | { "Current " , "A ", 1, 0 , 1 }, // ID 2 |
77 | { "Capacity " , "Ah ", 1, 0 , 2 }, // ID 3 |
77 | { "Capacity " , "Ah ", 1, 0 , 2 }, // ID 3 |
78 | { "Altitude " , "m ", 1, 0 , 0 }, // ID 4 |
78 | { "Altitude " , "m ", 1, 0 , 0 }, // ID 4 |
79 | { "Compass " , "° ", 1, 0 , 0 }, // ID 5 |
79 | { "Compass " , "° ", 1, 0 , 0 }, // ID 5 |
80 | { "Sats " , " ", 1, 0 , 0 }, // ID 6 |
80 | { "Sats " , " ", 1, 0 , 0 }, // ID 6 |
81 | { "Speed " , "m/s", 1, 0 , 0 }, // ID 7 |
81 | { "Speed " , "m/s", 1, 0 , 0 }, // ID 7 |
82 | { "Distance " , "m ", 1, 0 , 0 }, // ID 8 |
82 | { "Distance " , "m ", 1, 0 , 0 }, // ID 8 |
83 | { "Home-Dir " , "° ", 1, 0 , 0 }, // ID 9 |
83 | { "Home-Dir " , "° ", 1, 0 , 0 }, // ID 9 |
84 | { "max.Temp. " , "°C ", 1, 0 , 0 }, // ID 10 |
84 | { "max.Temp. " , "°C ", 1, 0 , 0 }, // ID 10 |
85 | { "Magn.field" , "% ", 1, 0 , 0 }, // ID 11 |
85 | { "Magn.field" , "% ", 1, 0 , 0 }, // ID 11 |
86 | { "Vario " , " ", 1, 0 , 0 }, // ID 12 |
86 | { "Vario " , " ", 1, 0 , 0 }, // ID 12 |
87 | { "ErrorCode " , " ", 1, 0 , 0 }, // ID 13 |
87 | { "ErrorCode " , " ", 1, 0 , 0 }, // ID 13 |
88 | { "Latitude " , " ", 9, 0 , 0 }, // ID 14 special data type for coordinates Import: fixed position in list ID 14 - DO NOT MOVE !!! |
88 | { "Latitude " , " ", 9, 0 , 0 }, // ID 14 special data type for coordinates Import: fixed position in list ID 14 - DO NOT MOVE !!! |
89 | { "Longitude " , " ", 9, 0 , 0 }, // ID 15 special data type for coordinates Import: fixed position in list ID 15 - DO NOT MOVE !!! |
89 | { "Longitude " , " ", 9, 0 , 0 }, // ID 15 special data type for coordinates Import: fixed position in list ID 15 - DO NOT MOVE !!! |
90 | }; |
90 | }; |
91 | 91 | ||
92 | 92 | ||
93 | void BuildJeti_Vario(void) |
93 | void BuildJeti_Vario(void) |
94 | { |
94 | { |
95 | signed int tmp = 0; |
95 | signed int tmp = 0; |
96 | static signed int JetiVarioMeter = 0; |
96 | static signed int JetiVarioMeter = 0; |
97 | JetiVarioMeter = (JetiVarioMeter * 3 + VarioMeter) / 4; |
97 | JetiVarioMeter = (JetiVarioMeter * 3 + VarioMeter) / 4; |
98 | 98 | ||
99 | if(VarioCharacter == '+') |
99 | if(VarioCharacter == '+') |
100 | { |
100 | { |
101 | tmp = (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 32 + 5; |
101 | tmp = (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 32 + 5; |
102 | } |
102 | } |
103 | else |
103 | else |
104 | if(VarioCharacter == '-') |
104 | if(VarioCharacter == '-') |
105 | { |
105 | { |
106 | tmp = (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 32 - 5; |
106 | tmp = (AltitudeSetpointTrimming * EE_Parameter.Hoehe_Verstaerkung) / 32 - 5; |
107 | } |
107 | } |
108 | else |
108 | else |
109 | if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY)) |
109 | if((VarioCharacter == ' ') && (FC_StatusFlags & FC_STATUS_FLY)) |
110 | { |
110 | { |
111 | tmp = (JetiVarioMeter/32); |
111 | tmp = (JetiVarioMeter/32); |
112 | } |
112 | } |
113 | else |
113 | else |
114 | if(VarioCharacter == '^') tmp = FromNC_AltitudeSpeed; |
114 | if(VarioCharacter == '^') tmp = FromNC_AltitudeSpeed; |
115 | else |
115 | else |
116 | if(VarioCharacter == 'v') tmp = tmp - FromNC_AltitudeSpeed; |
116 | if(VarioCharacter == 'v') tmp = tmp - FromNC_AltitudeSpeed; |
117 | 117 | ||
118 | JetiExData[12].Value = tmp; |
118 | JetiExData[12].Value = tmp; |
119 | } |
119 | } |
120 | 120 | ||
121 | 121 | ||
122 | // -------------------------------------------------------------------------------------------------- |
122 | // -------------------------------------------------------------------------------------------------- |
123 | void JetiEX_Update(void) |
123 | void JetiEX_Update(void) |
124 | { |
124 | { |
125 | 125 | ||
126 | GetHottestBl(); |
126 | GetHottestBl(); |
127 | 127 | ||
128 | JetiExData[1].Value = UBat; |
128 | JetiExData[1].Value = UBat; |
129 | JetiExData[2].Value = Capacity.ActualCurrent; |
129 | JetiExData[2].Value = Capacity.ActualCurrent; |
130 | JetiExData[3].Value = Capacity.UsedCapacity / 10; |
130 | JetiExData[3].Value = Capacity.UsedCapacity / 10; |
131 | JetiExData[4].Value = HoehenWert / 100; |
131 | JetiExData[4].Value = HoehenWert / 100; |
132 | JetiExData[5].Value = KompassValue; |
132 | JetiExData[5].Value = KompassValue; |
133 | JetiExData[6].Value = GPSInfo.NumOfSats; |
133 | JetiExData[6].Value = GPSInfo.NumOfSats; |
134 | JetiExData[7].Value = GPSInfo.Speed; |
134 | JetiExData[7].Value = GPSInfo.Speed; |
135 | JetiExData[8].Value = GPSInfo.HomeDistance / 10; |
135 | JetiExData[8].Value = GPSInfo.HomeDistance / 10; |
136 | JetiExData[9].Value = GPSInfo.HomeBearing; |
136 | JetiExData[9].Value = GPSInfo.HomeBearing; |
137 | JetiExData[10].Value = MaxBlTemperture; |
137 | JetiExData[10].Value = MaxBlTemperture; |
138 | JetiExData[11].Value = EarthMagneticField; |
138 | JetiExData[11].Value = EarthMagneticField; |
139 | // JetiExData[12].Value = Vario; // wird in BuildJeti_Vario() gemacht |
139 | // JetiExData[12].Value = Vario; // wird in BuildJeti_Vario() gemacht |
140 | JetiExData[13].Value = NC_ErrorCode; |
140 | JetiExData[13].Value = NC_ErrorCode; |
141 | //JetiExData[14].Value = 53 * 0x10000 + 23467; // GPS-Latitude (macht NC_Fills_HoTT_Telemety() ) |
141 | //JetiExData[14].Value = 53 * 0x10000 + 23467; // GPS-Latitude (macht NC_Fills_HoTT_Telemety() ) |
142 | //JetiExData[15].Value = 7 * 0x10000 + 23467; // GPS-Longitude (macht NC_Fills_HoTT_Telemety() ) |
142 | //JetiExData[15].Value = 7 * 0x10000 + 23467; // GPS-Longitude (macht NC_Fills_HoTT_Telemety() ) |
143 | 143 | ||
144 | } |
144 | } |
145 | #endif |
145 | #endif |
146 | 146 |