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

support battery and old LED

This commit is contained in:
Utyf
2022-03-16 01:11:52 +03:00
parent 1fd4c7b2fa
commit 2707f5c987

View File

@@ -58,6 +58,14 @@
* GLOBAL VARIABLES * GLOBAL VARIABLES
*/ */
byte zclApp_TaskID; byte zclApp_TaskID;
#if defined( ZIC_BATTERY_MODE )
static byte isRingOn = false;
static byte isLedOn = false;
#endif
// for Old LED
static byte showMode = false;
static byte showSound = false;
/********************************************************************* /*********************************************************************
* GLOBAL FUNCTIONS * GLOBAL FUNCTIONS
@@ -80,7 +88,6 @@ static void zclApp_HandleKeys(byte portAndAction, byte keyCode);
static void zclApp_ControlPinsInit(void); static void zclApp_ControlPinsInit(void);
static ZStatus_t zclApp_ReadWriteAuthCB(afAddrType_t *srcAddr, zclAttrRec_t *pAttr, uint8 oper); static ZStatus_t zclApp_ReadWriteAuthCB(afAddrType_t *srcAddr, zclAttrRec_t *pAttr, uint8 oper);
static void zclApp_Report(void);
static void zclApp_OneReport(void); static void zclApp_OneReport(void);
static void zclApp_ConfigInit(bool restart); static void zclApp_ConfigInit(bool restart);
@@ -160,6 +167,7 @@ static void zclApp_HandleKeys(byte portAndAction, byte keyCode) {
if (zclApp_State.RingRunStep == 0) { if (zclApp_State.RingRunStep == 0) {
#if defined( ZIC_BATTERY_MODE ) #if defined( ZIC_BATTERY_MODE )
osal_pwrmgr_task_state(zclApp_TaskID, PWRMGR_HOLD); osal_pwrmgr_task_state(zclApp_TaskID, PWRMGR_HOLD);
isRingOn = true;
#endif #endif
LREPMaster("Ring start\r\n"); LREPMaster("Ring start\r\n");
zclApp_State.RingRunStep = 1; zclApp_State.RingRunStep = 1;
@@ -225,7 +233,7 @@ uint16 zclApp_event_loop(uint8 task_id, uint16 events) {
} }
if (events & APP_REPORT_EVT) { if (events & APP_REPORT_EVT) {
LREPMaster("APP_REPORT_EVT\r\n"); LREPMaster("APP_REPORT_EVT\r\n");
zclApp_Report(); zclApp_OneReport();
return (events ^ APP_REPORT_EVT); return (events ^ APP_REPORT_EVT);
} }
@@ -369,12 +377,41 @@ static void zclApp_RingEnd(void) {
#if defined( ZIC_BATTERY_MODE ) #if defined( ZIC_BATTERY_MODE )
zclBattery_Report(); zclBattery_Report();
isRingOn = false;
if (isLedOn == false) {
osal_pwrmgr_task_state(zclApp_TaskID, PWRMGR_CONSERVE); osal_pwrmgr_task_state(zclApp_TaskID, PWRMGR_CONSERVE);
}
#endif #endif
} }
static void zclApp_WorkWithLEDs(void) { static void zclApp_WorkWithLEDs(void) {
#if defined( ZIC_BATTERY_MODE )
if (isLedOn != false) { // Off LEDs and goto sleep
isLedOn = false;
HalLedSet(HAL_LED_ALL, HAL_LED_MODE_OFF);
if (isRingOn == false) {
osal_pwrmgr_task_state(zclApp_TaskID, PWRMGR_CONSERVE);
}
return;
}
// On LEDs and hold power 2 sec.
isLedOn = true;
osal_pwrmgr_task_state(zclApp_TaskID, PWRMGR_HOLD);
osal_start_timerEx(zclApp_TaskID, APP_WORK_LED_EVT, 2000);
#endif
if (showSound & showMode) {
showSound = false;
showMode = false;
HalLedBlink(OLD_LED, 1, 99, 2000);
} else if (showSound) {
showSound = false;
HalLedBlink(OLD_LED, zclApp_Config.ModeSound + 1, 50, 750);
} else if (showMode) {
showMode = false;
HalLedBlink(OLD_LED, zclApp_Config.ModeOpen + 1, 50, 250);
}
if (zclApp_Config.ModeOpen == Always) { if (zclApp_Config.ModeOpen == Always) {
HalLedSet(GREEN_LED, HAL_LED_MODE_ON); HalLedSet(GREEN_LED, HAL_LED_MODE_ON);
} }
@@ -382,7 +419,7 @@ static void zclApp_WorkWithLEDs(void) {
HalLedSet(GREEN_LED, HAL_LED_MODE_OFF); HalLedSet(GREEN_LED, HAL_LED_MODE_OFF);
} }
if (zclApp_Config.ModeOpen == Once) { if (zclApp_Config.ModeOpen == Once) {
HalLedBlink(GREEN_LED, 0, 96, 1000); HalLedBlink(GREEN_LED, 0, 95, 500);
} }
if (zclApp_Config.ModeOpen == Drop) { if (zclApp_Config.ModeOpen == Drop) {
HalLedSet(RED_LED, HAL_LED_MODE_ON); HalLedSet(RED_LED, HAL_LED_MODE_ON);
@@ -420,6 +457,7 @@ static void zclApp_BtnClicks(byte count) {
else { else {
zclApp_Config.ModeOpen = Once; zclApp_Config.ModeOpen = Once;
} }
showMode = true;
break; break;
case 2: case 2:
LREPMaster("Button double\r\n"); LREPMaster("Button double\r\n");
@@ -429,6 +467,7 @@ static void zclApp_BtnClicks(byte count) {
CATCH_PIN = !zclApp_Config.ModeSound; CATCH_PIN = !zclApp_Config.ModeSound;
zclApp_OneReport(); zclApp_OneReport();
} }
showSound = true;
break; break;
case 255: case 255:
LREPMaster("Button hold\r\n"); LREPMaster("Button hold\r\n");
@@ -444,21 +483,19 @@ static void zclApp_BtnClicks(byte count) {
zclApp_TalkStart(); zclApp_TalkStart();
osal_start_timerEx(zclApp_TaskID, APP_RING_STOP_EVT, 250); osal_start_timerEx(zclApp_TaskID, APP_RING_STOP_EVT, 250);
} }
showMode = true;
showSound = true;
break; break;
} }
} }
static void zclApp_Report(void) {
zclApp_OneReport();
}
static void zclApp_OneReport(void) { static void zclApp_OneReport(void) {
//HalLedSet(BLUE_LED, HAL_LED_MODE_BLINK); //HalLedSet(BLUE_LED, HAL_LED_MODE_BLINK);
bdb_RepChangedAttrValue(zclApp_FirstEP.EndPoint, ZCL_INTERCOM, ATTRID_STATE); bdb_RepChangedAttrValue(zclApp_FirstEP.EndPoint, ZCL_INTERCOM, ATTRID_STATE);
bdb_RepChangedAttrValue(zclApp_FirstEP.EndPoint, ZCL_INTERCOM, ATTRID_MODEOPEN); bdb_RepChangedAttrValue(zclApp_FirstEP.EndPoint, ZCL_INTERCOM, ATTRID_MODEOPEN);
#if !defined( ZIC_BATTERY_MODE ) // #if !defined( ZIC_BATTERY_MODE )
bdb_RepChangedAttrValue(zclApp_FirstEP.EndPoint, ZCL_INTERCOM, ATTRID_MODESOUND); bdb_RepChangedAttrValue(zclApp_FirstEP.EndPoint, ZCL_INTERCOM, ATTRID_MODESOUND);
#endif // #endif
} }