@@ -121,6 +121,7 @@ void zclApp_Init(byte task_id) {
121
121
LREP ("Build %s \r\n" , zclApp_DateCodeNT );
122
122
123
123
zclApp_ConfigInit (TIMER_START );
124
+
124
125
IO_IMODE_PORT_PIN (0 ,0 ,IO_TRI );
125
126
126
127
#if defined( ZIC_BATTERY_MODE )
@@ -136,20 +137,23 @@ static void zclApp_HandleKeys(byte portAndAction, byte keyCode) {
136
137
137
138
if (portAndAction & 0x01 ) { //P0 Ring //S1 P0_1
138
139
139
- //exit old stop timer
140
- osal_stop_timerEx (zclApp_TaskID , APP_RING_STOP_EVT );
141
- osal_clear_event (zclApp_TaskID , APP_RING_STOP_EVT );
142
- //start new stop timer (ring ends timer)
143
- osal_start_reload_timer (zclApp_TaskID , APP_RING_STOP_EVT , 3000 );
140
+
144
141
145
142
if (portAndAction & HAL_KEY_PRESS ) {
146
- //osal_pwrmgr_task_state(zclApp_TaskID, PWRMGR_HOLD);
147
- //osal_pwrmgr_task_state(Hal_TaskID, PWRMGR_CONSERVE);
143
+
144
+ //exit old stop timer
145
+ osal_stop_timerEx (zclApp_TaskID , APP_RING_STOP_EVT );
146
+ //osal_clear_event(zclApp_TaskID, APP_RING_STOP_EVT);
147
+ //start new stop timer (ring ends timer)
148
+ osal_start_timerEx (zclApp_TaskID , APP_RING_STOP_EVT , 3000 );
148
149
149
150
//start ring
150
151
if (zclApp_State .RingRunStep == 0 ) {
152
+ #if defined( ZIC_BATTERY_MODE )
153
+ osal_pwrmgr_task_state (zclApp_TaskID , PWRMGR_HOLD );
154
+ #endif
151
155
LREPMaster ("Ring start\r\n" );
152
- HalLedSet (LED_PIN , HAL_LED_MODE_BLINK );
156
+ // HalLedSet(LED_PIN, HAL_LED_MODE_BLINK);
153
157
zclApp_State .RingRunStep = 1 ;
154
158
osal_start_reload_timer (zclApp_TaskID , APP_RING_RUN_EVT , 500 );
155
159
afAddrType_t inderect_DstAddr = {.addrMode = (afAddrMode_t )AddrNotPresent , .endPoint = 0 , .addr .shortAddr = 0 };
@@ -258,10 +262,12 @@ uint16 zclApp_event_loop(uint8 task_id, uint16 events) {
258
262
259
263
260
264
static void zclApp_RingRun (void ) {
261
-
262
265
zclApp_State .RingRunStep ++ ;
263
266
LREP ("zclApp_State.RingRunStep %d\r\n" , zclApp_State .RingRunStep );
264
267
LREP ("zclApp_State.State %d\r\n" , zclApp_State .State );
268
+
269
+
270
+
265
271
switch (zclApp_State .State ) {
266
272
case Idle :
267
273
zclApp_State .State = Ring ;
@@ -280,6 +286,7 @@ static void zclApp_RingRun(void) {
280
286
}
281
287
break ;
282
288
case Talk :
289
+ osal_stop_timerEx (zclApp_TaskID , APP_RING_STOP_EVT );
283
290
if ((zclApp_Config .ModeOpen == Once ) || (zclApp_Config .ModeOpen == Always )){
284
291
if (zclApp_State .RingRunStep > ((zclApp_Config .TimeRing + zclApp_Config .TimeTalk ) * 2 )) {
285
292
zclApp_State .State = Open ;
@@ -289,6 +296,7 @@ static void zclApp_RingRun(void) {
289
296
}
290
297
break ;
291
298
case Open :
299
+ osal_stop_timerEx (zclApp_TaskID , APP_RING_STOP_EVT );
292
300
if ((zclApp_Config .ModeOpen == Once ) || (zclApp_Config .ModeOpen == Always )){
293
301
if (zclApp_State .RingRunStep > ((zclApp_Config .TimeRing + zclApp_Config .TimeTalk + zclApp_Config .TimeOpen ) * 2 )) {
294
302
zclApp_RingEnd ();
@@ -307,7 +315,7 @@ static void zclApp_RingRun(void) {
307
315
static void zclApp_TalkStart (void ) {
308
316
LREPMaster ("Talk start\r\n" );
309
317
osal_stop_timerEx (zclApp_TaskID , APP_RING_STOP_EVT );
310
- osal_clear_event (zclApp_TaskID , APP_RING_STOP_EVT );
318
+ // osal_clear_event(zclApp_TaskID, APP_RING_STOP_EVT);
311
319
zclApp_OneReport ();
312
320
HalLedSet (ANSWER_PIN , HAL_LED_MODE_ON );
313
321
if (zclApp_Config .ModeSound == true) {
@@ -320,30 +328,27 @@ static void zclApp_TalkStart(void) {
320
328
321
329
static void zclApp_RingEnd (void ) {
322
330
LREPMaster ("Ring end\r\n" );
323
- if (zclApp_Config .ModeSound == true) {
324
- HalLedSet (CATCH_PIN , HAL_LED_MODE_OFF );
325
- HalLedSet (HANDSET_PIN , HAL_LED_MODE_OFF );
326
- }
327
- else {
328
- HalLedSet (CATCH_PIN , HAL_LED_MODE_ON );
329
- HalLedSet (HANDSET_PIN , HAL_LED_MODE_ON );
330
- }
331
+ HalLedSet (CATCH_PIN , !zclApp_Config .ModeSound );
332
+ HalLedSet (HANDSET_PIN , !zclApp_Config .ModeSound );
331
333
HalLedSet (ANSWER_PIN , HAL_LED_MODE_OFF );
332
334
osal_stop_timerEx (zclApp_TaskID , APP_RING_RUN_EVT );
333
335
osal_clear_event (zclApp_TaskID , APP_RING_RUN_EVT );
334
336
osal_stop_timerEx (zclApp_TaskID , APP_RING_STOP_EVT );
335
- osal_clear_event (zclApp_TaskID , APP_RING_STOP_EVT );
337
+ // osal_clear_event(zclApp_TaskID, APP_RING_STOP_EVT);
336
338
zclApp_State .RingRunStep = 0 ;
337
339
zclApp_State .State = Idle ;
338
- afAddrType_t inderect_DstAddr = {. addrMode = ( afAddrMode_t ) AddrNotPresent , . endPoint = 0 , . addr . shortAddr = 0 };
339
-
340
+
341
+ afAddrType_t inderect_DstAddr = {. addrMode = ( afAddrMode_t ) AddrNotPresent , . endPoint = 0 , . addr . shortAddr = 0 };
340
342
zclGeneral_SendOnOff_CmdOff (zclApp_FirstEP .EndPoint , & inderect_DstAddr , FALSE, bdb_getZCLFrameCounter ());
343
+
341
344
if (zclApp_Config .ModeOpen == Once ) {
342
345
zclApp_Config .ModeOpen = Never ;
343
346
}
344
347
zclApp_OneReport ();
348
+
345
349
#if defined( ZIC_BATTERY_MODE )
346
350
zclBattery_Report ();
351
+ osal_pwrmgr_task_state (zclApp_TaskID , PWRMGR_CONSERVE );
347
352
#endif
348
353
}
349
354
@@ -354,8 +359,11 @@ static void zclApp_BtnClick(bool hold) {
354
359
switch (currentBtnClickPhase ++ ) {
355
360
case 0 :
356
361
if (hold ) {
357
- zclApp_Config .ModeSound = !zclApp_Config .ModeSound ;
358
- HalLedSet (CATCH_PIN , !zclApp_Config .ModeSound );
362
+ #if !defined( ZIC_BATTERY_MODE )
363
+ zclApp_Config .ModeSound = !zclApp_Config .ModeSound ;
364
+ HalLedSet (HANDSET_PIN , !zclApp_Config .ModeSound );
365
+ HalLedSet (CATCH_PIN , !zclApp_Config .ModeSound );
366
+ #endif
359
367
}
360
368
else {
361
369
if (zclApp_Config .ModeOpen < Drop ) {
@@ -399,7 +407,10 @@ static void zclApp_OneReport(void) {
399
407
HalLedSet (LED_PIN , HAL_LED_MODE_BLINK );
400
408
bdb_RepChangedAttrValue (zclApp_FirstEP .EndPoint , ZCL_INTERCOM , ATTRID_STATE );
401
409
bdb_RepChangedAttrValue (zclApp_FirstEP .EndPoint , ZCL_INTERCOM , ATTRID_MODEOPEN );
402
- bdb_RepChangedAttrValue (zclApp_FirstEP .EndPoint , ZCL_INTERCOM , ATTRID_MODESOUND );
410
+ #if !defined( ZIC_BATTERY_MODE )
411
+ bdb_RepChangedAttrValue (zclApp_FirstEP .EndPoint , ZCL_INTERCOM , ATTRID_MODESOUND );
412
+ #endif
413
+
403
414
}
404
415
405
416
static void zclApp_BasicResetCB (void ) {
@@ -428,15 +439,9 @@ static void zclApp_ConfigInit(bool restart) {
428
439
uint32 ReportInterval = (uint32 )zclApp_Config .TimeReport * (uint32 )60 ;
429
440
LREP ("Start report with interval %d seconds\r\n" , ReportInterval );
430
441
osal_start_reload_timer (zclApp_TaskID , APP_REPORT_EVT , ((uint32 )ReportInterval * (uint32 )1000 ));
431
-
432
- if (zclApp_Config .ModeSound == true) {
433
- HalLedSet (HANDSET_PIN , HAL_LED_MODE_OFF );
434
- HalLedSet (CATCH_PIN , HAL_LED_MODE_OFF );
435
- }
436
- else {
437
- HalLedSet (HANDSET_PIN , HAL_LED_MODE_ON );
438
- HalLedSet (CATCH_PIN , HAL_LED_MODE_ON );
439
- }
442
+
443
+ HalLedSet (HANDSET_PIN , !zclApp_Config .ModeSound );
444
+ HalLedSet (CATCH_PIN , !zclApp_Config .ModeSound );
440
445
HalLedSet (ANSWER_PIN , HAL_LED_MODE_OFF );
441
446
}
442
447
0 commit comments