12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- /*********************************************************************
- * 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;
- }
- }
- }
-
- 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);
- }
-
|