Mercurial > public > ostc4
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: |
