diff --git a/APP/peripheral.c b/APP/peripheral.c index e1e84e8..94c357e 100644 --- a/APP/peripheral.c +++ b/APP/peripheral.c @@ -381,7 +381,7 @@ uint16_t Peripheral_ProcessEvent(uint8_t task_id, uint16_t events) else { // 需要等先回复了下发的指令,1s 之后再尝试回复状态数据 - tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, 1600 * 1); + tmos_start_task(Peripheral_TaskID, SBP_PERIODIC_EVT, MS1_TO_SYSTEM_TIME(1000)); } return (events ^ SBP_PERIODIC_EVT); } @@ -480,6 +480,10 @@ static void Peripheral_ProcessTMOSMsg(tmos_event_hdr_t *pMsg) peripheralMTU = pMsgEvent->msg.exchangeMTUReq.clientRxMTU; mtu_flag = 1; logDebug("****mtu exchange: %d****", pMsgEvent->msg.exchangeMTUReq.clientRxMTU); + // TODO:连上之后先给个状态回应 + // tmos_set_event(vavle_task_id, VAVLE_UPDATE_EVT); + performPeriodicTask(); + tmos_set_event(led_task_id, CONNECT_BEEP_START_EVT); } break; } @@ -667,7 +671,6 @@ static void peripheralStateNotificationCB(gapRole_States_t newState, gapRoleEven // // ShowLed(); // BEEP_ON; // DelayMs(500); - tmos_set_event(led_task_id, CONNECT_BEEP_START_EVT); } break; diff --git a/BSP/inc/bsp_key.h b/BSP/inc/bsp_key.h index f5380e2..fa6f084 100644 --- a/BSP/inc/bsp_key.h +++ b/BSP/inc/bsp_key.h @@ -16,7 +16,7 @@ #define KEY_IDLE_TIMEOUT_EVT (0x0001 << 3) // KEY_B_PIN at PB0, low->active -#define KEY_B_PIN GPIO_Pin_0 +#define KEY_B_PIN GPIO_Pin_15 // #define KEY_B_PIN GPIO_Pin_0 #define IS_KEY_Vaild() ((GPIOB_ReadPortPin(KEY_B_PIN) ? 0 : 1)) diff --git a/BSP/inc/bsp_valve.h b/BSP/inc/bsp_valve.h index 205986d..2ad705a 100644 --- a/BSP/inc/bsp_valve.h +++ b/BSP/inc/bsp_valve.h @@ -2,7 +2,7 @@ * @Author : stark1898y 1658608470@qq.com * @Date : 2024-12-12 15:55:38 * @LastEditors : stark1898y 1658608470@qq.com - * @LastEditTime : 2025-04-14 00:18:32 + * @LastEditTime : 2025-04-22 16:12:07 * @FilePath : \BLE_TYQ_CH584M\BSP\inc\bsp_valve.h * @Description : * @@ -32,6 +32,10 @@ extern tmosTaskID vavle_task_id; #define VAVLE_DECT_SWITCH_CALIB_EVT (0x0001 << 9) // 鏍囧畾鐢电閾 +#define VAVLE_UPDATE_EVT (0x0001 << 10) // 涓婁紶鏇磋闃闂ㄧ姸鎬 + + + #define VALVE_LOW_VBAT_ALARM_PERIOD_MS (1600 * 60 * 10) #define VALVE_DECT_PERIOD_MS (1600 * 60 * 10) diff --git a/BSP/src/bsp_key.c b/BSP/src/bsp_key.c index 317029d..3d391e7 100644 --- a/BSP/src/bsp_key.c +++ b/BSP/src/bsp_key.c @@ -257,14 +257,14 @@ void BSP_KEY_Init(app_task_evt_handler_t handler) // GPIOA_ModeCfg(GPIO_Pin_2, GPIO_ModeIN_PU); // GPIOB_ModeCfg(GPIO_Pin_16, GPIO_ModeIN_Floating); - GPIOB_ModeCfg(GPIO_Pin_16, GPIO_ModeIN_PU); + GPIOB_ModeCfg(KEY_B_PIN, GPIO_ModeIN_PU); - GPIOB_ModeCfg(GPIO_Pin_0, GPIO_ModeIN_PU); + // GPIOB_ModeCfg(GPIO_Pin_0, GPIO_ModeIN_PU); // GPIOB_ModeCfg(GPIO_Pin_1, GPIO_ModeIN_Floating); #if 1 // 涓嬮檷娌胯Е鍙 - GPIOB_ITModeCfg(GPIO_Pin_0, GPIO_ITMode_FallEdge); + GPIOB_ITModeCfg(KEY_B_PIN, GPIO_ITMode_FallEdge); // GPIOB_ITModeCfg(GPIO_Pin_1, GPIO_ITMode_FallEdge); // 寮鍚疓PIOB涓柇 @@ -314,12 +314,11 @@ void GPIOB_IRQHandler(void) // PRINT("KEY IRQ\n"); - // GPIOB_ClearITFlagBit(KEY_B_PIN); + key_wakeup_flag = 1; + + // GPIO鍞ら啋浼氳繘涓柇锛岃娓呴櫎GPIO涓柇 GPIOB_ClearITFlagBit(KEY_B_PIN); - // GPIOB_ClearITFlagBit(GPIO_Pin_1); // tmos_set_event(key_task_id, KEY_SCAN_EVT); // logDebug("KEY_ProcessLoop"); - - key_wakeup_flag = 1; } diff --git a/BSP/src/bsp_valve.c b/BSP/src/bsp_valve.c index 51ef1e9..56d87e3 100644 --- a/BSP/src/bsp_valve.c +++ b/BSP/src/bsp_valve.c @@ -2,7 +2,7 @@ * @Author : stark1898y 1658608470@qq.com * @Date : 2024-12-15 15:01:15 * @LastEditors : stark1898y 1658608470@qq.com - * @LastEditTime : 2025-04-14 00:16:50 + * @LastEditTime : 2025-04-22 16:15:33 * @FilePath : \BLE_TYQ_CH584M\BSP\src\bsp_valve.c * @Description : * @@ -617,6 +617,29 @@ static uint16_t VAVLE_Task_ProcessEvent(uint8_t task_id, uint16_t events) return (events ^ VAVLE_LOOP_DECT_EVT); } + // 杩炰笂涓绘満鍚庝富鍔ㄤ笂浼犱笅闃闂ㄧ姸鎬 + if (events & VAVLE_UPDATE_EVT) + { + // BEEP_OFF_DEINIT; + + // EMV_CHARGE_OFF_DEINIT; + // EMV_OFF_DEINIT; + + // LED_ALL_OFF_DEINIT; + + // BSP_NoNeedBoost(); + + gValveData.switch_status = kClosed; + + tmos_memset(&RelyData, 0, sizeof(RelyData)); + BSP_VALVE_Generate_ValveResponse(&RelyData, kCmdCloseVavle, 1); + + tmos_set_event(Peripheral_TaskID, SBP_REPLY_CMD_EVT); + + logDebug("VAVLE_UPDATE_EVT"); + + return (events ^ VAVLE_UPDATE_EVT); + } // Discard unknown events return 0;