Package pt.paradigmshift.iot.demos
Class BabelLoRaDemo
java.lang.Object
pt.unl.fct.di.novasys.babel.core.GenericProtocol
pt.paradigmshift.iot.demos.BabelLoRaDemo
- All Implemented Interfaces:
BabelDemo
public class BabelLoRaDemo
extends pt.unl.fct.di.novasys.babel.core.GenericProtocol
implements BabelDemo
Minimal LoRa send/receive demo built on the ParadigmShift radio stack.
It shows the radio-agnostic pattern that the gateway uses in production:
the application talks only to the shared babel-radio-api surface —
it sends with a BroadcastRadioPacketRequest addressed to
LoRaProtocol.PROTOCOL_ID and receives via the generic
RadioPacketReceivedNotification. The same code would work against any
radio that implements babel-radio-api; nothing here is LoRa-specific
except the target protocol id and the optional LoRaPacketReceivedNotification
down-cast used to print the RSSI.
Two roles, selected by the constructor flag:
- sender — broadcasts
"ParadigmShift LoRa #<n>"every few seconds (and also prints anything it hears); - receiver — only listens and prints received frames.
Runs only on a Pi with the LoRa HAT attached. 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: UART device the LoRa HAT is on.static final Stringstatic final StringConfig key: 16-bit on-air address of this node (hex, e.g.static final StringFields 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
-
LORA_DEVICE
Config key: UART device the LoRa HAT is on.- See Also:
-
LORA_DEVICE_DEFAULT
- See Also:
-
LORA_OWN_ADDR
Config key: 16-bit on-air address of this node (hex, e.g.0x0001).- See Also:
-
LORA_OWN_ADDR_DEFAULT
- See Also:
-
-
Constructor Details
-
BabelLoRaDemo
public BabelLoRaDemo(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.
-