Package pt.paradigmshift.iot.demos
Class BabelZigBeeDemo
java.lang.Object
pt.unl.fct.di.novasys.babel.core.GenericProtocol
pt.paradigmshift.iot.demos.BabelZigBeeDemo
- All Implemented Interfaces:
BabelDemo
public class BabelZigBeeDemo
extends pt.unl.fct.di.novasys.babel.core.GenericProtocol
implements BabelDemo
Minimal ZigBee send/receive demo built on the ParadigmShift radio stack.
Like BabelLoRaDemo, the application code is radio-agnostic: it
sends with a BroadcastRadioPacketRequest (an NWK-layer broadcast to
all joined devices) addressed to ZigBeeProtocol.PROTOCOL_ID, and
receives via the generic RadioPacketReceivedNotification. The only
ZigBee-specific touch is the optional ZigBeePacketReceivedNotification
down-cast used to print the packet id / value.
Two roles, selected by the constructor flag:
- sender — broadcasts
"ParadigmShift ZigBee #<n>"every few seconds. Note ZigBee broadcasts are unacknowledged: sleepy end devices that are not awake at that moment miss the frame; - receiver — only listens and prints frames arriving from joined end devices.
Runs only with an Ember (EZSP) ZigBee coordinator dongle attached over USB
serial. The serial port is auto-discovered unless zigbee.serial.port
is set. Developed by ParadigmShift, Lda.
- Author:
- ParadigmShift, Lda (info@paradigmshift.pt)
-
Nested Class Summary
Nested classes/interfaces inherited from class pt.unl.fct.di.novasys.babel.core.GenericProtocol
pt.unl.fct.di.novasys.babel.core.GenericProtocol.ProtocolMetricsBabelMetrics -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final StringConfig key: seconds the network is left open for joining at startup.static final Stringstatic final StringConfig key: serial port of the EZSP dongle; empty ⇒ auto-discover.Fields inherited from class pt.unl.fct.di.novasys.babel.core.GenericProtocol
babel, babelSecurityFields inherited from interface pt.unl.fct.di.tardis.babel.iot.demos.BabelDemo
PROTO_ID, PROTO_NAME -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidexecute()Builds and starts this demo's Babel runtime: obtainBabel.getInstance(), load config, instantiate and register the control/radio protocols the demo needs plus the demo itself,init(...)each in dependency order, and finallyBabel.start()the event loop.voidinit(Properties props) Methods inherited from class pt.unl.fct.di.novasys.babel.core.GenericProtocol
addSecret, addSecret, addSecret, addSecret, cancelTimer, closeConnection, closeConnection, closeConnection, closeConnection, closeConnection, closeConnection, createChannel, createSecureChannel, createSecureChannel, createSecureChannel, createSecureChannelWithAliases, createSecureChannelWithAliases, createSecureChannelWithIdentities, createSecureChannelWithIdentities, createSecureChannelWithProtoIdentities, enableGenericMetrics, generateIdentity, generateIdentity, generateIdentity, generateIdentity, generateIdentity, generateIdentity, generateIdentity, generateSecret, generateSecret, generateSecret, generateSecret, generateSecretFromPassword, generateSecretFromPassword, generateSecretFromPassword, generateSecretFromPassword, getChannelOrThrow, getDefaultChannel, getDefaultProtoIdentity, getDefaultProtoIdentityCrypt, getDefaultProtoSecret, getMillisSinceBabelStart, getOrGenerateDefaultProtoIdentity, getProtoId, getProtoName, hasProtocolThreadStarted, openConnection, openConnection, openConnection, openConnection, registerChannelEventHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageHandler, registerMessageSerializer, registerMetric, registerReplyHandler, registerRequestHandler, registerSharedChannel, registerTimerHandler, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendMessage, sendReply, sendRequest, setDefaultChannel, setDefaultProtoIdentity, setDefaultProtoIdentity, setDefaultProtoSecret, setupPeriodicTimer, setupTimer, startEventThread, subscribeNotification, triggerNotification, unsubscribeNotification
-
Field Details
-
ZIGBEE_PORT
Config key: serial port of the EZSP dongle; empty ⇒ auto-discover.- See Also:
-
ZIGBEE_PERMIT_JOIN
Config key: seconds the network is left open for joining at startup.- See Also:
-
ZIGBEE_PERMIT_JOIN_DEFAULT
- See Also:
-
-
Constructor Details
-
BabelZigBeeDemo
public BabelZigBeeDemo(boolean sender) - Parameters:
sender-trueto broadcast periodically,falseto run as a pure receiver
-
-
Method Details
-
init
public void init(Properties props) throws pt.unl.fct.di.novasys.babel.exceptions.HandlerRegistrationException - Specified by:
initin classpt.unl.fct.di.novasys.babel.core.GenericProtocol- Throws:
pt.unl.fct.di.novasys.babel.exceptions.HandlerRegistrationException
-
execute
Description copied from interface:BabelDemoBuilds and starts this demo's Babel runtime: obtainBabel.getInstance(), load config, instantiate and register the control/radio protocols the demo needs plus the demo itself,init(...)each in dependency order, and finallyBabel.start()the event loop.Maincalls this once.
-