Search in sources :

Example 1 with TelegesisReceiveMessageEvent

use of com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisReceiveMessageEvent in project com.zsmartsystems.zigbee by zsmartsystems.

the class ZigBeeDongleTelegesis method telegesisEventReceived.

@Override
public void telegesisEventReceived(TelegesisEvent event) {
    if (event instanceof TelegesisReceiveMessageEvent) {
        TelegesisReceiveMessageEvent rxMessage = (TelegesisReceiveMessageEvent) event;
        ZigBeeApsFrame apsFrame = new ZigBeeApsFrame();
        // apsFrame.setApsCounter(emberApsFrame.getSequence());
        apsFrame.setCluster(rxMessage.getClusterId());
        apsFrame.setDestinationEndpoint(rxMessage.getDestinationEp());
        apsFrame.setProfile(rxMessage.getProfileId());
        apsFrame.setSourceEndpoint(rxMessage.getSourceEp());
        apsFrame.setSourceAddress(rxMessage.getNetworkAddress());
        apsFrame.setPayload(rxMessage.getMessageData());
        zigbeeTransportReceive.receiveCommand(apsFrame);
        return;
    }
    // Handle devices joining and leaving
    if (event instanceof TelegesisDeviceJoinedNetworkEvent) {
        TelegesisDeviceJoinedNetworkEvent deviceJoinedEvent = (TelegesisDeviceJoinedNetworkEvent) event;
        zigbeeTransportReceive.nodeStatusUpdate(ZigBeeNodeStatus.UNSECURED_JOIN, deviceJoinedEvent.getNetworkAddress(), deviceJoinedEvent.getIeeeAddress());
        return;
    }
    if (event instanceof TelegesisDeviceLeftNetworkEvent) {
        TelegesisDeviceLeftNetworkEvent deviceLeftEvent = (TelegesisDeviceLeftNetworkEvent) event;
        zigbeeTransportReceive.nodeStatusUpdate(ZigBeeNodeStatus.DEVICE_LEFT, deviceLeftEvent.getNetworkAddress(), deviceLeftEvent.getIeeeAddress());
        return;
    }
    // Handle link changes and notify framework or just reset link with dongle?
    if (event instanceof TelegesisNetworkLeftEvent | event instanceof TelegesisNetworkLostEvent) {
        zigbeeTransportReceive.setNetworkState(ZigBeeTransportState.OFFLINE);
        return;
    }
    if (event instanceof TelegesisNetworkJoinedEvent) {
        zigbeeTransportReceive.setNetworkState(ZigBeeTransportState.ONLINE);
        return;
    }
    logger.debug("Unhandled Telegesis Frame: {}", event.toString());
}
Also used : TelegesisDeviceJoinedNetworkEvent(com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisDeviceJoinedNetworkEvent) ZigBeeApsFrame(com.zsmartsystems.zigbee.ZigBeeApsFrame) TelegesisReceiveMessageEvent(com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisReceiveMessageEvent) TelegesisNetworkLostEvent(com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisNetworkLostEvent) TelegesisNetworkLeftEvent(com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisNetworkLeftEvent) TelegesisNetworkJoinedEvent(com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisNetworkJoinedEvent) TelegesisDeviceLeftNetworkEvent(com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisDeviceLeftNetworkEvent)

Aggregations

ZigBeeApsFrame (com.zsmartsystems.zigbee.ZigBeeApsFrame)1 TelegesisDeviceJoinedNetworkEvent (com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisDeviceJoinedNetworkEvent)1 TelegesisDeviceLeftNetworkEvent (com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisDeviceLeftNetworkEvent)1 TelegesisNetworkJoinedEvent (com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisNetworkJoinedEvent)1 TelegesisNetworkLeftEvent (com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisNetworkLeftEvent)1 TelegesisNetworkLostEvent (com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisNetworkLostEvent)1 TelegesisReceiveMessageEvent (com.zsmartsystems.zigbee.dongle.telegesis.internal.protocol.TelegesisReceiveMessageEvent)1