comparison Discovery/Src/tComm.c @ 872:5e027b0f7475 Evo_2_23

Added first time initialization for new bluetooth module: The serial numbers are not defined when the electonic is connected to power for the first time. This event is used to run a initialization sequence which sets the defaults for the bluetooth modul. At the end the module may be accessed using a default name.
author Ideenmodellierer
date Wed, 14 Aug 2024 14:41:04 +0200
parents bc6c90e20d9e
children e373e90a48db
comparison
equal deleted inserted replaced
870:bc6c90e20d9e 872:5e027b0f7475
109 109
110 #define UART_OPERATION_TIMEOUT (500u) /* Timeout for common read / write operations (ms) */ 110 #define UART_OPERATION_TIMEOUT (500u) /* Timeout for common read / write operations (ms) */
111 #define UART_TIMEOUT_SECONDS (120u) /* Timeout for keeping connection open and waiting for data */ 111 #define UART_TIMEOUT_SECONDS (120u) /* Timeout for keeping connection open and waiting for data */
112 #define UART_TIMEOUT_LARGE_BLOCK (6000u) /* Timeout (ms) for reception of an 16K data block (typical RX time ~4,5seconds) */ 112 #define UART_TIMEOUT_LARGE_BLOCK (6000u) /* Timeout (ms) for reception of an 16K data block (typical RX time ~4,5seconds) */
113 113
114 #define UART_CMD_BUF_SIZE (20u) /* size of buffer for command exchange */ 114 #define UART_CMD_BUF_SIZE (30u) /* size of buffer for command exchange */
115 115
116 const uint8_t id_Region1_firmware = 0xFF; 116 const uint8_t id_Region1_firmware = 0xFF;
117 const uint8_t id_RTE = 0xFE; 117 const uint8_t id_RTE = 0xFE;
118 const uint8_t id_FONT = 0x10; 118 const uint8_t id_FONT = 0x10;
119 const uint8_t id_FONT_OLD = 0x00; 119 const uint8_t id_FONT_OLD = 0x00;
366 if(force || (hardwareDataGetPointer()->production_bluetooth_name_set == 0xFF)) 366 if(force || (hardwareDataGetPointer()->production_bluetooth_name_set == 0xFF))
367 answer = HW_Set_Bluetooth_Name(hardwareDataGetPointer()->primarySerial, 0); 367 answer = HW_Set_Bluetooth_Name(hardwareDataGetPointer()->primarySerial, 0);
368 #ifdef BOOTLOADER_STANDALONE 368 #ifdef BOOTLOADER_STANDALONE
369 if(answer == HAL_OK) 369 if(answer == HAL_OK)
370 hardware_programmPrimaryBluetoothNameSet(); 370 hardware_programmPrimaryBluetoothNameSet();
371 #endif
372 }
373 else /* no serial set at all => do default configuration of the module */
374 {
375 #define NINAB22103B00
376 #ifdef NINAB22103B00
377 answer = 0xFF;
371 #endif 378 #endif
372 } 379 }
373 return answer; 380 return answer;
374 } 381 }
375 382
2139 }while(answer == HAL_OK); 2146 }while(answer == HAL_OK);
2140 } 2147 }
2141 } 2148 }
2142 } 2149 }
2143 2150
2151 void tComm_StartBlueModBaseInit()
2152 {
2153 BmTmpConfig = BM_INIT_TRIGGER_ON;
2154 }
2144 void tComm_StartBlueModConfig() 2155 void tComm_StartBlueModConfig()
2145 { 2156 {
2146 uint8_t answer = HAL_OK; 2157 uint8_t answer = HAL_OK;
2147 uint8_t RxBuffer[UART_CMD_BUF_SIZE]; 2158 uint8_t RxBuffer[UART_CMD_BUF_SIZE];
2148 uint8_t index = 0; 2159 uint8_t index = 0;
2190 case BM_CONFIG_DONE: 2201 case BM_CONFIG_DONE:
2191 case BM_CONFIG_OFF: 2202 case BM_CONFIG_OFF:
2192 ConfigRetryCnt = 0; 2203 ConfigRetryCnt = 0;
2193 RestartModule = 1; 2204 RestartModule = 1;
2194 break; 2205 break;
2206 #ifdef BOOTLOADER_STANDALONE
2207 case BM_INIT_TRIGGER_ON: HAL_Delay(2000);
2208 HAL_GPIO_WritePin(BLE_UBLOX_DSR_GPIO_PORT,BLE_UBLOX_DSR_PIN,GPIO_PIN_RESET);
2209 BmTmpConfig++;
2210 break;
2211 case BM_INIT_TRIGGER_OFF: HAL_Delay(1);
2212 HAL_GPIO_WritePin(BLE_UBLOX_DSR_GPIO_PORT,BLE_UBLOX_DSR_PIN,GPIO_PIN_SET);
2213 HAL_Delay(2000);
2214 BmTmpConfig++;
2215 break;
2216 case BM_INIT_FACTORY: sprintf(TxBuffer,"AT+UFACTORY\r"); /*Set to factory defined configuration */
2217 break;
2218 case BM_INIT_MODE: sprintf(TxBuffer,"AT+UMSM=1\r"); /* start in Data mode */
2219 break;
2220 case BM_INIT_BLE: sprintf(TxBuffer,"AT+UBTLE=2\r"); /* Bluetooth low energy Peripheral */
2221 break;
2222 case BM_INIT_NAME: sprintf(TxBuffer,"AT+UBTLN=OSTC4-12345\r"); /* Bluetooth name */
2223 break;
2224 case BM_INIT_SSP_IDO_OFF: sprintf(TxBuffer,"AT+UDSC=0,0\r"); /* Disable SPP Server on ID0 */
2225 break;
2226 case BM_INIT_SSP_IDO_ON: sprintf(TxBuffer,"AT+UDSC=0,3\r"); /* SPP Server on ID0 */
2227 break;
2228 case BM_INIT_SSP_ID1_OFF: sprintf(TxBuffer,"AT+UDSC=1,0\r"); /* Disable SPS Server on ID1 */
2229 break;
2230 case BM_INIT_SSP_ID1_ON: sprintf(TxBuffer,"AT+UDSC=1,6\r"); /* SPS Server on ID1 */
2231 break;
2232 case BM_INIT_STORE: sprintf(TxBuffer,"AT&W\r"); /* write settings into eeprom */
2233 break;
2234 case BM_INIT_RESTART: sprintf(TxBuffer,"AT+CPWROFF\r"); /* reboot module */
2235 break;
2236 case BM_INIT_DONE: BmTmpConfig = BM_CONFIG_ECHO;
2237 break;
2238 #endif
2195 default: 2239 default:
2196 break; 2240 break;
2197 } 2241 }
2198 if(TxBuffer[0] != 0) /* forward command to module */ 2242 if(TxBuffer[0] != 0) /* forward command to module */
2199 { 2243 {