/********************************************************************* * INCLUDES */ #include "ble_comm.h" #include "app_flash.h" #include "app_safe.h" #include "hal_ble_client.h" #include "hal_ble_host.h" static void app_safe_Process(void) { static uint8_t cnt =0; if(mBackup.ErrStartCnt >0){ cnt++; if(cnt >=6){//一分钟后清空标志位 mBackup.ErrStartCnt =0; if(Flash_SaveBackup() != ZONE_OP_SUCCESS)Except_TxError(EXCEPT_Power,"save ErrStartCnt fail"); DEBUG_LOG("clear mBackup.ErrorStartFlag\n"); } } if(mBackup.RestartCnt > 1){ char buff[40]={0}; memset(buff,0,sizeof(buff)); if(mFlash.isHost){ sprintf(buff,"left shoes restart:%d",mBackup.RestartCnt); }else{ sprintf(buff,"right shoes restart:%d",mBackup.RestartCnt); } if(0 == Except_TxError(EXCEPT_Power,(const char*)buff)){ mBackup.RestartCnt =0; } } } //恢复出厂设置 static void cb_BLE_RESTSETTING(void* handle) { Flash_DeleteAllInfor(); Flash_DeleteAllStep(); Flash_DeleteAllBackup(); BLE_Client_Rx_t* target = handle; uint8_t cmd = target->pDat[0]; BLE_Host_Tx_Send(0,BLE_RESTSETTING,&cmd,1); nrf_delay_ms(500); NVIC_SystemReset(); } void app_safe_Init(void) { mBackup.RestartCnt++; Process_Start(10000,"app_safe_Process",app_safe_Process); BLE_Client_Rx_Regist(BLE_RESTSETTING,cb_BLE_RESTSETTING); }