Häufig stellen Hardwareanbieter Parser für ihre LoRaWAN-Geräte für den LoRaWAN Netzwerkserver “Things Stack” bereit, beispielsweise über das Things Stack Device Repository oder über eigene Repositories des Anbieters.
Diese Parser können in niotix als Javascript Funktions-Parser verwendet werden, indem je nach Format ein Wrapper hinzugefügt wird, der den Parser an das niotix-Format anpasst.
V3 Uplink-Decoder
Im Things Stack V3-Format wird die LoRaWAN-Payload als Hex-Bytes-Array (bytes
) übergeben, zusammen mit dem Frame-Port (fport
) in einem Objekt. Der Name der Decoder-Funktion ist decodeUplink
.
Das genaue Format ist beschrieben in der Things Stack-Dokumentation des Anbieters.
Beispiel-Wrapper zur Verwendung eines Things Stack V3-Decoders als Javascript Funktions-Parser:
module.exports = (payload, meta) => {
const fPort = meta.lora.fport;
const bytes = hexToBytes(payload);
return decodeUplink({
fPort,
bytes,
});
};
function hexToBytes(hex) {
const hexBuffer = Buffer.from(hex, "hex");
return Array.from(hexBuffer);
}
V2 Uplink-Decoder
Im Things Stack V2-Format wird die LoRaWAN Payload als Hex-Buffer übergeben und der Frame-Port als separater Parameter. Der Name der Decoder-Funktion ist Decoder
. Dieses Format ist in der Regel nur noch bei älteren Decodern zu finden.
Beispiel-Wrapper zur Verwendung eines Things Stack V2-Decoders als Javascript Funktions-Parser:
module.exports = function (payload, meta) {
const port = meta.lora.fport;
const buf = Buffer.from(payload, 'hex');
return Decoder(buf, port);
}