Send low power payload (LPP). See: https://xod.io/libs/wayland/cayenne-lpp/
send-lpp
@/send-lpp
Send low power payload (LPP). See: https://xod.io/libs/wayland/cayenne-lpp/
DEV@/lorawan-device
A lorawan-device.
CFMboolean
Confirm
Trialsnumber
Number of trials.
LPPwayland/cayenne-lpp/lpp
A Low Power Payload.
UPDpulse
Update
Donepulse
To use the node in your project you should have the wayland/m5stack-unit-lorawan library installed. Use the “File → Add Library” menu item in XOD IDE if you don’t have it yet. See Using libraries for more info.
C++ implementation
#pragma XOD evaluate_on_pin disable
#pragma XOD evaluate_on_pin enable input_UPD
node {
void evaluate(Context ctx) {
if (!isInputDirty<input_UPD>(ctx))
return;
auto LoRaWAN = getValue<input_DEV>(ctx);
auto lpp = getValue<input_LPP>(ctx);
uint8_t cfm = getValue<input_CFM>(ctx);
uint8_t trials = getValue<input_Trials>(ctx);
int N=lpp->getSize();
uint8_t* buff = lpp->getBuffer();
// Convert byte array from lpp to String required for AT command to be sent to LoRa device
static String payload;
for (int i=0;i<N;i++) {
payload += "0123456789ABCDEF"[*(buff+i) / 16];
payload += "0123456789ABCDEF"[*(buff+i) % 16];
}
LoRaWAN->sendMsg(cfm,
trials,
N,
payload);
payload = "";
emitValue<output_Done>(ctx, 1);
}
}