Merge pull request #9796 from Staars/mi32

MI_ESP32: prepare for core-stage, fix crash
This commit is contained in:
Theo Arends 2020-11-09 21:27:42 +01:00 committed by GitHub
commit b6b154aae8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -745,28 +745,34 @@ void MI32StatusInfo() {
* init NimBLE * init NimBLE
\*********************************************************************************************/ \*********************************************************************************************/
void MI32Init(void) { void MI32PreInit(void) {
MIBLEsensors.reserve(10);
MIBLEsensors.reserve(10); MIBLEbindKeys.reserve(10);
MIBLEbindKeys.reserve(10); MINBLEscanResult.reserve(20);
MINBLEscanResult.reserve(20);
MI32.mode.init = false; MI32.mode.init = false;
//test section for options
MI32.option.allwaysAggregate = 1;
MI32.option.noSummary = 0;
MI32.option.minimalSummary = 0;
MI32.option.directBridgeMode = 0;
MI32.option.showRSSI = 1;
MI32.option.ignoreBogusBattery = 1; // from advertisements
MI32.option.holdBackFirstAutodiscovery = 1;
AddLog_P(LOG_LEVEL_INFO,PSTR("MI32: pre-init"));
}
void MI32Init(void) {
if (MI32.mode.init) return;
if (Wifi.status == 0) return;
if (!MI32.mode.init) { if (!MI32.mode.init) {
NimBLEDevice::init(""); NimBLEDevice::init("");
AddLog_P(LOG_LEVEL_INFO,PSTR("MI32: init BLE device"));
MI32.mode.canScan = 1; MI32.mode.canScan = 1;
MI32.mode.init = 1; MI32.mode.init = 1;
MI32.period = Settings.tele_period; MI32.period = Settings.tele_period;
//test section for options
MI32.option.allwaysAggregate = 1;
MI32.option.noSummary = 0;
MI32.option.minimalSummary = 0;
MI32.option.directBridgeMode = 0;
MI32.option.showRSSI = 1;
MI32.option.ignoreBogusBattery = 1; // from advertisements
MI32.option.holdBackFirstAutodiscovery = 1;
MI32StartScanTask(); // Let's get started !! MI32StartScanTask(); // Let's get started !!
} }
return; return;
@ -2179,30 +2185,34 @@ bool Xsns62(uint8_t function)
{ {
bool result = false; bool result = false;
if (FUNC_INIT == function){ if (FUNC_INIT == function){
MI32Init(); MI32PreInit();
} }
if (MI32.mode.init) { if(!MI32.mode.init){
switch (function) { if(function==FUNC_EVERY_250_MSECOND){
case FUNC_EVERY_50_MSECOND: MI32Init();
MI32Every50mSecond(); }
break; return result;
case FUNC_EVERY_SECOND:
MI32EverySecond(false);
break;
case FUNC_COMMAND:
result = MI32Cmd();
break;
case FUNC_JSON_APPEND:
MI32Show(1);
break;
#ifdef USE_WEBSERVER
case FUNC_WEB_SENSOR:
MI32Show(0);
break;
#endif // USE_WEBSERVER
}
} }
switch (function) {
case FUNC_EVERY_50_MSECOND:
MI32Every50mSecond();
break;
case FUNC_EVERY_SECOND:
MI32EverySecond(false);
break;
case FUNC_COMMAND:
result = MI32Cmd();
break;
case FUNC_JSON_APPEND:
MI32Show(1);
break;
#ifdef USE_WEBSERVER
case FUNC_WEB_SENSOR:
MI32Show(0);
break;
#endif // USE_WEBSERVER
}
return result; return result;
} }
#endif // USE_MI_ESP32 #endif // USE_MI_ESP32