/********************************************************************* * INCLUDES */ #include "ble_comm.h" #include "app_flash.h" #include "app_safe.h" #include "hal_ble_client.h" #include "hal_ble_host.h" #include "hal_led.h" static void app_safe_Process(void) { static uint8_t cnt =0; if(mBackup.ErrStartCnt >0){ cnt++; if(cnt >=60){//一分钟后清空标志位 mBackup.ErrStartCnt =0; if(Flash_SaveBackup() != ZONE_OP_SUCCESS)Except_TxError(EXCEPT_Power,"save ErrStartCnt fail"); DEBUG_LOG("clear mBackup.ErrorStartFlag\n"); } } // //测试使用 // static uint8_t temp =0; // static uint8_t flag =0; // if(mBackup.RestartCnt > 1 && flag ==0){flag =1;} // // if(1 == flag){ // if(temp ==0){temp++; // Process_SetHoldOn(app_safe_Process,1); // LED_Start(LED_RESTART,COLOR_PURPLE); // } // else if(temp <200){ // temp++; // if(temp >20){temp =220; // Process_SetHoldOn(app_safe_Process,0); // LED_Stop(LED_RESTART); // flag =2; // } // } // } static uint8_t lastconeted =0; static uint8_t BlinkTime =0; static uint8_t BlinkLed =0; uint8_t nowconeted =0; if(mFlash.isHost) nowconeted = host_isconnect(); else nowconeted = slave_isconnect(); if(nowconeted != lastconeted){ lastconeted = nowconeted; if(lastconeted){ BlinkLed =0; BlinkTime =0; } else{ BlinkLed =0; LED_Stop(LED_LRCHECK); } } if(lastconeted){ if(BlinkTime <=10){ BlinkTime++; if(BlinkLed){BlinkLed=0; LED_Start(LED_LRCHECK,COLOR_BLACK); } else {BlinkLed=1; LED_Start(LED_LRCHECK,COLOR_CYAN); } } else LED_Stop(LED_LRCHECK); } 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(1000,"app_safe",app_safe_Process); BLE_Client_Rx_Regist(BLE_RESTSETTING,cb_BLE_RESTSETTING); }