Utility-translatorer
Utility-gruppen är det som blir kvar när de övriga kategorierna har tagit det de beskriver: translatorer som konfigurerar en annan translator, avkodar ett generiskt format, korrigerar en uppströms translator, eller finns till för att läsas som genomarbetade exempel.
Att avkoda Modbus
Modbus är inte ett självbeskrivande format. Samma byte är en temperatur, ett flöde eller ett serienummer beroende på en registerlayout som bara installatören känner till, så en generisk avkodare behöver få den layouten.
| Translator | Roll |
|---|---|
modbus | Den generiska avkodaren. Tar en hex-kodad Modbus-payload och avkodar den enligt registerlayouten i contextMap.modbusRegisters. Kedjad, typiskt bakom en Watteco- eller Enginko-brygga för Modbus över LoRaWAN, men den fungerar med varje källa som producerar en sammanhängande hex-payload |
Varje register i modbusRegisters beskrivs av ett fieldName, en dataType av float, int eller
uint, en length på 1 för ett 16-bitars register eller 2 för 32-bitars, en scale-multiplikator,
och en encoding av BE eller LE. Byteordningen spelar roll och går inte att gissa: att få den fel
producerar siffror snarare än fel.
Till skillnad från resten av plattformen läser modbus sin layout från kontextuella parametrar i
stället för translatorparametrar, eftersom layouten är en lista med registerbeskrivningar snarare än
en uppsättning namngivna värden.
Om du ska ta in en vanlig mätare på plattformen, titta i A–Ö-katalogen först. Flera tillverkare har egna förinställningar, som avkodarna för Kamstrup Multical och Ambiductor, vilka redan bär den korrekta registerkonfigurationen.
Att korrigera en uppströms translator
| Translator | Roll |
|---|---|
xovis-field-inverter | Byter riktning in och ut på utdata från xovis-pc2se-people-line-counter, i varje räkning den producerar: live, dagliga, totala, och de långa och korta varianterna. För en sensor monterad åt motsatt håll mot det räknaren antar |
Att montera en räknare åt andra hållet är ett fysiskt faktum som ofta inte går att ändra efter installationen. Att invertera i mjukvara håller datan korrekt utan att någon behöver komma ihåg att just den här enheten räknar baklänges.
Exempel för translatorutvecklare
De här tre finns till för att läsas. De är fungerande translatorer, och de är den kortaste vägen till att förstå formen på en innan du skriver din egen.
| Translator | Visar |
|---|---|
example-regular | Grundformen: att avkoda en hex-payload till en temperatur, en status och en tidsstämpel, att läsa flera datatyper ur binärdata och returnera dem i resultatet |
example-parameterized | Parameterfunktionen, som tillämpar en scaleFactor och en offset som användaren anger |
example-timeseries | Att returnera en tidsserie snarare än en enskild avläsning, med en payload där varje byte är en temperatur en minut längre bakåt i tiden |
För att skriva en egen, se Translatorutveckling.
För det fullständiga A–Ö-registret över alla translatorer, se översikten över translatorer.