comparison Small_CPU/Src/uartProtocol_GNSS.c @ 1004:efb7d18cc564 GasConsumption

DevelopmentOption: added the possibility to provide a fixed position info to the gnss module. Code is deactivated at the moment.
author Ideenmodellierer
date Sat, 03 May 2025 17:45:32 +0200
parents c386ae6635e4
children
comparison
equal deleted inserted replaced
1001:21142f4fa968 1004:efb7d18cc564
91 uint8_t txLength = 0; 91 uint8_t txLength = 0;
92 RTC_TimeTypeDef time; 92 RTC_TimeTypeDef time;
93 RTC_DateTypeDef date; 93 RTC_DateTypeDef date;
94 94
95 UBX_MGA_INI_TIME_UTC_t msg_DateTime; 95 UBX_MGA_INI_TIME_UTC_t msg_DateTime;
96 UBX_MGA_INI_POS_LLH_t msg_Position;
96 97
97 switch (GnssCmd) 98 switch (GnssCmd)
98 { 99 {
99 case GNSSCMD_LOADCONF_0: pData = configUBX; 100 case GNSSCMD_LOADCONF_0: pData = configUBX;
100 txLength = sizeof(configUBX) / sizeof(uint8_t); 101 txLength = sizeof(configUBX) / sizeof(uint8_t);
156 msg_DateTime.flags = 0x00; 157 msg_DateTime.flags = 0x00;
157 msg_DateTime.leapsec = 0x80; 158 msg_DateTime.leapsec = 0x80;
158 159
159 pData = (uint8_t*)&msg_DateTime; 160 pData = (uint8_t*)&msg_DateTime;
160 txLength = sizeof(msg_DateTime) / sizeof(uint8_t); 161 txLength = sizeof(msg_DateTime) / sizeof(uint8_t);
161
162 break; 162 break;
163 case GNSSCMD_SET_POSITION: msg_Position.header1 = 0xB5;
164 msg_Position.header2 = 0x62;
165 msg_Position.class_id = 0x13;
166 msg_Position.msg_id = 0x40;
167 msg_Position.length = sizeof(UBX_MGA_INI_POS_LLH_t) - 6;
168 msg_Position.latitude = (int32_t) (8.98647 * 1e7);
169 msg_Position.longitude = (int32_t) (47.77147 * 1e7);
170 msg_Position.altitude = (int32_t) 40000;
171 msg_Position.accuracy = 100000;
172 pData = (uint8_t*)&msg_Position;
173 txLength = sizeof(msg_Position) / sizeof(uint8_t);
174 break;
163 default: 175 default:
164 break; 176 break;
165 } 177 }
166 if(txLength != 0) 178 if(txLength != 0)
167 { 179 {
207 case UART_GNSS_SETMODE_MOBILE: UART_Gnss_SendCmd(GNSSCMD_SETMOBILE); 219 case UART_GNSS_SETMODE_MOBILE: UART_Gnss_SendCmd(GNSSCMD_SETMOBILE);
208 rxState = GNSSRX_DETECT_ACK_0; 220 rxState = GNSSRX_DETECT_ACK_0;
209 break; 221 break;
210 case UART_GNSS_SETDATE_TIME: UART_Gnss_SendCmd(GNSSCMD_SETDATETIME); 222 case UART_GNSS_SETDATE_TIME: UART_Gnss_SendCmd(GNSSCMD_SETDATETIME);
211 // rxState = GNSSRX_DETECT_ACK_0; /* aiding function will not acknoledge receiption (until config to do so) */ 223 // rxState = GNSSRX_DETECT_ACK_0; /* aiding function will not acknoledge receiption (until config to do so) */
212 gnssState = UART_GNSS_PWRUP; 224 gnssState = UART_GNSS_SET_POSITION;
225 break;
226 case UART_GNSS_SET_POSITION: UART_Gnss_SendCmd(GNSSCMD_SET_POSITION);
227 // rxState = GNSSRX_DETECT_ACK_0; /* aiding function will not acknoledge receiption (until config to do so) */
228 gnssState = UART_GNSS_IDLE;
213 break; 229 break;
214 case UART_GNSS_PWRDOWN: UART_Gnss_SendCmd(GNSSCMD_MODE_PWS); 230 case UART_GNSS_PWRDOWN: UART_Gnss_SendCmd(GNSSCMD_MODE_PWS);
215 rxState = GNSSRX_DETECT_ACK_0; 231 rxState = GNSSRX_DETECT_ACK_0;
216 break; 232 break;
217 233
328 case UART_GNSS_SETCONF: gnssState = UART_GNSS_INACTIVE; 344 case UART_GNSS_SETCONF: gnssState = UART_GNSS_INACTIVE;
329 break; 345 break;
330 case UART_GNSS_LOADCONF_0: 346 case UART_GNSS_LOADCONF_0:
331 case UART_GNSS_LOADCONF_1: gnssState++; 347 case UART_GNSS_LOADCONF_1: gnssState++;
332 break; 348 break;
333 case UART_GNSS_LOADCONF_2: gnssState = UART_GNSS_SETMODE_MOBILE; 349 case UART_GNSS_LOADCONF_2:
350 #ifdef ENABLE_GNSS_TIME_INIT
351 gnssState = UART_GNSS_SETMODE_MOBILE;
352 #else
353 gnssState = UART_GNSS_SET_POSITION;
354 #endif
334 break; 355 break;
335 case UART_GNSS_SETMODE_MOBILE: 356 case UART_GNSS_SETMODE_MOBILE:
336 #ifdef ENABLE_GNSS_TIME_INIT 357 #ifdef ENABLE_GNSS_TIME_INIT
337 gnssState = UART_GNSS_SETDATE_TIME; 358 gnssState = UART_GNSS_SETDATE_TIME;
338 #else 359 #else
339 rxState = GNSSRX_DETECT_ACK_0; 360 rxState = GNSSRX_DETECT_ACK_0;
340 UART_Gnss_SendCmd(GNSSCMD_MODE_NORMAL); 361 UART_Gnss_SendCmd(GNSSCMD_MODE_NORMAL);
341 gnssState = UART_GNSS_PWRUP; 362 gnssState = UART_GNSS_PWRUP;
342 #endif 363 #endif
364 break;
365 case UART_GNSS_SET_POSITION: rxState = GNSSRX_DETECT_ACK_0;
366 UART_Gnss_SendCmd(GNSSCMD_MODE_NORMAL);
367 gnssState = UART_GNSS_PWRUP;
343 break; 368 break;
344 case UART_GNSS_SETDATE_TIME: rxState = GNSSRX_DETECT_ACK_0; 369 case UART_GNSS_SETDATE_TIME: rxState = GNSSRX_DETECT_ACK_0;
345 UART_Gnss_SendCmd(GNSSCMD_MODE_NORMAL); 370 UART_Gnss_SendCmd(GNSSCMD_MODE_NORMAL);
346 gnssState = UART_GNSS_PWRUP; 371 gnssState = UART_GNSS_PWRUP;
347 default: 372 default: