1
0
mirror of https://github.com/Utyff/Zintercom.git synced 2026-01-12 09:17:41 +03:00

events' timers reworked

This commit is contained in:
lost
2021-06-15 13:56:25 +03:00
parent e63e1cbd92
commit a34f4319d9

View File

@@ -68,6 +68,7 @@ byte zclApp_TaskID;
* LOCAL VARIABLES * LOCAL VARIABLES
*/ */
static uint8 currentBtnClickPhase = 0;
/********************************************************************* /*********************************************************************
* LOCAL FUNCTIONS * LOCAL FUNCTIONS
@@ -155,7 +156,8 @@ static void zclApp_HandleKeys(byte portAndAction, byte keyCode) {
LREPMaster("Ring start\r\n"); LREPMaster("Ring start\r\n");
//HalLedSet(LED_PIN, HAL_LED_MODE_BLINK); //HalLedSet(LED_PIN, HAL_LED_MODE_BLINK);
zclApp_State.RingRunStep = 1; zclApp_State.RingRunStep = 1;
osal_start_reload_timer(zclApp_TaskID, APP_RING_RUN_EVT, 500); //osal_start_reload_timer(zclApp_TaskID, APP_RING_RUN_EVT, 500);
osal_start_timerEx(zclApp_TaskID, APP_RING_RUN_EVT, 500);
afAddrType_t inderect_DstAddr = {.addrMode = (afAddrMode_t)AddrNotPresent, .endPoint = 0, .addr.shortAddr = 0}; afAddrType_t inderect_DstAddr = {.addrMode = (afAddrMode_t)AddrNotPresent, .endPoint = 0, .addr.shortAddr = 0};
zclGeneral_SendOnOff_CmdOn(zclApp_FirstEP.EndPoint, &inderect_DstAddr, FALSE, bdb_getZCLFrameCounter()); zclGeneral_SendOnOff_CmdOn(zclApp_FirstEP.EndPoint, &inderect_DstAddr, FALSE, bdb_getZCLFrameCounter());
} }
@@ -176,10 +178,10 @@ static void zclApp_HandleKeys(byte portAndAction, byte keyCode) {
LREP("holdTime = %d \r\n", holdTime); LREP("holdTime = %d \r\n", holdTime);
zclApp_State.pressTime = 0; zclApp_State.pressTime = 0;
if (holdTime >= 1) { //seconds if (holdTime >= 1) { //seconds
osal_start_reload_timer(zclApp_TaskID, APP_BTN_HOLD_EVT, 50); osal_start_timerEx(zclApp_TaskID, APP_BTN_HOLD_EVT, 50);
} }
else { else {
osal_start_reload_timer(zclApp_TaskID, APP_BTN_CLICK_EVT, 50); osal_start_timerEx(zclApp_TaskID, APP_BTN_CLICK_EVT, 50);
} }
} }
} }
@@ -254,7 +256,9 @@ uint16 zclApp_event_loop(uint8 task_id, uint16 events) {
if (events & APP_BTN_HOLD_EVT) { if (events & APP_BTN_HOLD_EVT) {
LREPMaster("APP_BTN_HOLD_EVT\r\n"); LREPMaster("APP_BTN_HOLD_EVT\r\n");
zclApp_BtnClick(true); #if !defined( ZIC_BATTERY_MODE )
zclApp_BtnClick(true);
#endif
return (events ^ APP_BTN_HOLD_EVT); return (events ^ APP_BTN_HOLD_EVT);
} }
return 0; return 0;
@@ -266,6 +270,7 @@ static void zclApp_RingRun(void) {
LREP("zclApp_State.RingRunStep %d\r\n", zclApp_State.RingRunStep); LREP("zclApp_State.RingRunStep %d\r\n", zclApp_State.RingRunStep);
LREP("zclApp_State.State %d\r\n", zclApp_State.State); LREP("zclApp_State.State %d\r\n", zclApp_State.State);
osal_start_timerEx(zclApp_TaskID, APP_RING_RUN_EVT, 500);
switch (zclApp_State.State) { switch (zclApp_State.State) {
@@ -304,6 +309,7 @@ static void zclApp_RingRun(void) {
} }
break; break;
case Droped: case Droped:
osal_stop_timerEx(zclApp_TaskID, APP_RING_STOP_EVT);
if (zclApp_State.RingRunStep > 1) { if (zclApp_State.RingRunStep > 1) {
zclApp_RingEnd(); zclApp_RingEnd();
} }
@@ -314,7 +320,7 @@ static void zclApp_RingRun(void) {
static void zclApp_TalkStart(void) { static void zclApp_TalkStart(void) {
LREPMaster("Talk start\r\n"); LREPMaster("Talk start\r\n");
osal_stop_timerEx(zclApp_TaskID, APP_RING_STOP_EVT); //osal_stop_timerEx(zclApp_TaskID, APP_RING_STOP_EVT);
//osal_clear_event(zclApp_TaskID, APP_RING_STOP_EVT); //osal_clear_event(zclApp_TaskID, APP_RING_STOP_EVT);
zclApp_OneReport(); zclApp_OneReport();
HalLedSet(ANSWER_PIN, HAL_LED_MODE_ON); HalLedSet(ANSWER_PIN, HAL_LED_MODE_ON);
@@ -332,8 +338,8 @@ static void zclApp_RingEnd(void) {
HalLedSet(HANDSET_PIN, !zclApp_Config.ModeSound); HalLedSet(HANDSET_PIN, !zclApp_Config.ModeSound);
HalLedSet(ANSWER_PIN, HAL_LED_MODE_OFF); HalLedSet(ANSWER_PIN, HAL_LED_MODE_OFF);
osal_stop_timerEx(zclApp_TaskID, APP_RING_RUN_EVT); osal_stop_timerEx(zclApp_TaskID, APP_RING_RUN_EVT);
osal_clear_event(zclApp_TaskID, APP_RING_RUN_EVT); //osal_clear_event(zclApp_TaskID, APP_RING_RUN_EVT);
osal_stop_timerEx(zclApp_TaskID, APP_RING_STOP_EVT); //osal_stop_timerEx(zclApp_TaskID, APP_RING_STOP_EVT);
//osal_clear_event(zclApp_TaskID, APP_RING_STOP_EVT); //osal_clear_event(zclApp_TaskID, APP_RING_STOP_EVT);
zclApp_State.RingRunStep = 0; zclApp_State.RingRunStep = 0;
zclApp_State.State = Idle; zclApp_State.State = Idle;
@@ -353,17 +359,13 @@ static void zclApp_RingEnd(void) {
} }
static void zclApp_BtnClick(bool hold) { static void zclApp_BtnClick(bool hold) {
static uint8 currentBtnClickPhase = 0;
LREP("currentBtnClickPhase %d\r\n", currentBtnClickPhase); LREP("currentBtnClickPhase %d\r\n", currentBtnClickPhase);
switch (currentBtnClickPhase++) { switch (currentBtnClickPhase++) {
case 0: case 0:
if (hold) { if (hold) {
#if !defined( ZIC_BATTERY_MODE ) zclApp_Config.ModeSound = !zclApp_Config.ModeSound;
zclApp_Config.ModeSound = !zclApp_Config.ModeSound; HalLedSet(HANDSET_PIN, !zclApp_Config.ModeSound);
HalLedSet(HANDSET_PIN, !zclApp_Config.ModeSound); HalLedSet(CATCH_PIN, !zclApp_Config.ModeSound);
HalLedSet(CATCH_PIN, !zclApp_Config.ModeSound);
#endif
} }
else { else {
if (zclApp_Config.ModeOpen < Drop) { if (zclApp_Config.ModeOpen < Drop) {
@@ -385,7 +387,8 @@ static void zclApp_BtnClick(bool hold) {
HalLedBlink(LED_PIN, zclApp_Config.ModeOpen+1, 50, 250); HalLedBlink(LED_PIN, zclApp_Config.ModeOpen+1, 50, 250);
} }
break; break;
case 3: default:
/*
if (hold) { if (hold) {
osal_stop_timerEx(zclApp_TaskID, APP_BTN_HOLD_EVT); osal_stop_timerEx(zclApp_TaskID, APP_BTN_HOLD_EVT);
osal_clear_event(zclApp_TaskID, APP_BTN_HOLD_EVT); osal_clear_event(zclApp_TaskID, APP_BTN_HOLD_EVT);
@@ -394,9 +397,18 @@ static void zclApp_BtnClick(bool hold) {
osal_stop_timerEx(zclApp_TaskID, APP_BTN_CLICK_EVT); osal_stop_timerEx(zclApp_TaskID, APP_BTN_CLICK_EVT);
osal_clear_event(zclApp_TaskID, APP_BTN_CLICK_EVT); osal_clear_event(zclApp_TaskID, APP_BTN_CLICK_EVT);
} }
*/
currentBtnClickPhase = 0; currentBtnClickPhase = 0;
break; break;
} }
if (currentBtnClickPhase != 0) {
if (hold) {
osal_start_timerEx(zclApp_TaskID, APP_BTN_HOLD_EVT, 50);
}
else {
osal_start_timerEx(zclApp_TaskID, APP_BTN_CLICK_EVT, 50);
}
}
} }
static void zclApp_Report(void) { static void zclApp_Report(void) {