mirror of
https://github.com/Utyff/Zintercom.git
synced 2026-01-12 17:27:42 +03:00
events' timers reworked
This commit is contained in:
@@ -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");
|
||||||
|
#if !defined( ZIC_BATTERY_MODE )
|
||||||
zclApp_BtnClick(true);
|
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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user