123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166 |
- /*********************************************************************
- * 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"
- #include "drv_trigger.h"
- static volatile uint8_t restflag =0;
- void app_SetRestsettting(void){
- restflag =1;
- }
- 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");
- }
- }
- 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;
- }
- }
-
- if(restflag){restflag =0;
- Flash_DeleteAllInfor();
- Flash_DeleteAllStep();
- Flash_DeleteAllBackup();
- nrf_delay_ms(500);
- NVIC_SystemReset();
- }
- }
- //恢复出厂设置
- 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();
- }
- static void app_CONNTED_LED_Process(void){
- static uint8_t lastconeted =0;
- static uint8_t BlinkTime =0;
- static uint8_t BlinkfLAG =0;
- uint8_t nowconeted =0;
- if(mFlash.isHost)
- nowconeted = host_isconnect();
- else
- nowconeted = slave_isconnect();
-
- // DEBUG_LOG("mFlash.isHost %d,nowconeted:%d,\n",mFlash.isHost,nowconeted);
- if(nowconeted != lastconeted){
- lastconeted = nowconeted;
- if(nowconeted){
- BlinkfLAG =1;
- BlinkTime =0;
- DEBUG_LOG("COLOR_PURPLE\r\n");
- // LED_Start(LED_LRCHECK,COLOR_CYAN);
- LED_Start(LED_LRCHECK,COLOR_CYAN);
- Process_SetHoldOn(app_CONNTED_LED_Process,1);
- }
- else{
- BlinkfLAG =0;
- BlinkTime =0;
- Process_SetHoldOn(app_CONNTED_LED_Process,0);
- LED_Stop(LED_LRCHECK);
- }
- }
-
- if(BlinkfLAG){BlinkTime++;
- if(BlinkTime <=30){
- BlinkfLAG =1;
- }
- else{
- BlinkfLAG =0;
- BlinkTime =0;
- LED_Stop(LED_LRCHECK);
- }
- }
- }
- //static uint8_t update_led =0;
- //static void cb_BLE_LEDON_PURPLE(void* handle)
- //{
- // update_led = 1;
- //}
- void app_BLE_LEDON_PURPLE_process(void){
- static uint32_t Lastch =0;
- uint32_t ch = drv_GetChargeTrig();
-
- if(!ch && Lastch != ch){
- LED_Stop(LED_ONPURPLE);
- LED_Stop(LED_LR_LED);
- Process_SetHoldOn(app_BLE_LEDON_PURPLE_process,0);
- }
- Lastch = ch;
-
- }
- void app_safe_Init(void)
- {
- mBackup.RestartCnt++;
-
- Process_Start(1000,"app_safe",app_safe_Process);
-
- // Process_Start(100,"app_CONNTED_LED",app_CONNTED_LED_Process);
-
- BLE_Client_Rx_Regist(BLE_RESTSETTING,cb_BLE_RESTSETTING);
-
- //常亮紫色灯
- // BLE_Client_Rx_Regist(BLE_LEDON_PURPLE,cb_BLE_LEDON_PURPLE);
-
- // SEGGER_RTT_printf(0,"LastsotfVersion:%d,updateFlag:%d,nowsoftv:%d\r\n",mFlash.mClient.LastsotfVersion,mFlash.mClient.updateFlag,SOFTWARE_VERSION);
- Process_Start(100,"app_BLE_LEDON_PURPLE",app_BLE_LEDON_PURPLE_process);
- if(0 == mFlash.mClient.LastsotfVersion ||
- (SOFTWARE_VERSION != mFlash.mClient.LastsotfVersion && 0xA5 == mFlash.mClient.updateFlag)){
- // if(0xA5 == mFlash.mClient.updateFlag){
- LED_Start(LED_ONPURPLE,COLOR_PURPLE);
- Process_SetHoldOn(app_BLE_LEDON_PURPLE_process,1);
- mFlash.mClient.LastsotfVersion = SOFTWARE_VERSION;
- mFlash.mClient.updateFlag = 0;
- if(Flash_SaveInfomation() != ZONE_OP_SUCCESS)Except_TxError(EXCEPT_Power,"pwr save information fail");
- }
- }
-
|