/********************************************************************* * @fn AT_ZCL_ONOFF_SWITCH_update * * @brief updata the Device Temperature Configuration Cluster every second * * @param none * * @return none * ************************************************************/ static void AT_ZCL_ONOFF_SWITCH_update(void){ uint8 sw = switch_status(); if(AT_ZCL_ONOFF_SWITCH_action != sw){ AT_ZCL_ONOFF_SWITCH_action=sw; afAddrType_t dstAddr; dstAddr.addrMode = afAddrNotPresent; if(AT_ZCL_ONOFF_SWITCH_action==ON_OFF_SWITCH_ACTIONS_0 ){ zclGeneral_SendOnOff_CmdOff(AT_ZCL_ONOFF_SWITCH_ENDPOINT,&dstAddr,1,1); }else{ zclGeneral_SendOnOff_CmdOn(AT_ZCL_ONOFF_SWITCH_ENDPOINT,&dstAddr,1,1); } } if(AT_ZCL_ONOFF_SWITCH_action==ON_OFF_SWITCH_ACTIONS_0) HalLedSet( HAL_LED_1, HAL_LED_MODE_OFF ); else HalLedSet( HAL_LED_1, HAL_LED_MODE_ON ); }
/********************************************************************* * @fn zllSampleBridge_HandleKeys * * @brief Handles all key events for this device. * * @param shift - true if in shift/alt. * @param keys - bit field for key events. * * @return none */ static void zllSampleBridge_HandleKeys( byte shift, byte keys ) { if(shift) { keys |= HAL_KEY_SW_6; } if ( keys == ON_KEY ) { zclGeneral_SendOnOff_CmdOn( SAMPLEBRIDGE_ENDPOINT, &zllSampleBridge_DstAddr, FALSE, sampleBridgeSeqNum++ ); } if ( keys == FACTORY_RESET_KEY ) { zllInitiator_ResetToFactoryNew(); } if ( keys == OFF_KEY ) { zclGeneral_SendOnOff_CmdOff( SAMPLEBRIDGE_ENDPOINT, &zllSampleBridge_DstAddr, FALSE, sampleBridgeSeqNum++ ); } if ( keys == TOUCH_LINK_KEY ) { zllInitiator_StartDevDisc(); } if ( keys == DEV_SEL_UP_KEY ) { if ( linkedAddrNum > 0 ) { if( (linkedAddrSelIdx+1) >= linkedAddrNum ) { linkedAddrSelIdx = 0; } else { linkedAddrSelIdx++; } zllSampleBridge_DstAddr.addrMode = afAddr16Bit; zllSampleBridge_DstAddr.addr.shortAddr = linkedTargets.arr[linkedAddrSelIdx].Addr; zllSampleBridge_DstAddr.endPoint = linkedTargets.arr[linkedAddrSelIdx].EP; zclGeneral_SendIdentify( SAMPLEBRIDGE_ENDPOINT, &zllSampleBridge_DstAddr, SAMPLEBRIDGE_CMD_IDENTIFY_TIME, FALSE, sampleBridgeSeqNum++ ); HalLcdWriteStringValue( "Dev Sel:", zllSampleBridge_DstAddr.addr.shortAddr, 16, HAL_LCD_LINE_3 ); } else { HalLcdWriteString( "Dev Sel: no trgt", HAL_LCD_LINE_3 ); } } if ( keys == DEV_SEL_DN_KEY ) { if ( linkedAddrNum > 0 ) { if(linkedAddrSelIdx < 1) { linkedAddrSelIdx = (linkedAddrNum-1); } else { linkedAddrSelIdx--; } zllSampleBridge_DstAddr.addrMode = afAddr16Bit; zllSampleBridge_DstAddr.addr.shortAddr = linkedTargets.arr[linkedAddrSelIdx].Addr; zllSampleBridge_DstAddr.endPoint = linkedTargets.arr[linkedAddrSelIdx].EP; zclGeneral_SendIdentify( SAMPLEBRIDGE_ENDPOINT, &zllSampleBridge_DstAddr, SAMPLEBRIDGE_CMD_IDENTIFY_TIME, FALSE, sampleBridgeSeqNum++ ); HalLcdWriteStringValue( "Dev Sel:", zllSampleBridge_DstAddr.addr.shortAddr, 16, HAL_LCD_LINE_3 ); } else { HalLcdWriteString( "Dev Sel: no trgt", HAL_LCD_LINE_3 ); } } if ( keys == PERMIT_JOIN_KEY ) { if ( zllInitiator_BridgeStartNetwork() != ZSuccess ) { zllInitiator_PermitJoin( PERMIT_JOIN_DURATION ); HalLcdWriteString( "PermitJoin", HAL_LCD_LINE_3 ); } } if ( keys == CLASSIC_COMMISS_KEY ) { zllInitiator_ClassicalCommissioningStart(); } }