Browse Source

add ttn data decoder scripts

master
Tobias Brunner 8 months ago
parent
commit
dace837f70
2 changed files with 70 additions and 0 deletions
  1. +45
    -0
      ttnscripts/lgt92.js
  2. +25
    -0
      ttnscripts/rhf1s001.js

+ 45
- 0
ttnscripts/lgt92.js View File

@ -0,0 +1,45 @@
function Decoder(bytes, port) {
// Decode an uplink message from a buffer
// (array) of bytes to an object of fields.
var alarm=(bytes[6] & 0x40)?true:false; //Alarm status
value=((bytes[6] & 0x3f) <<8) | bytes[7];
var batV=value/1000; //Battery,units:Volts
value=bytes[8]<<8 | bytes[9];
if(bytes[8] & 0x80)
{
value |=0xFFFF0000;
}
var roll=value/100; //roll,units: °
value=bytes[10]<<8 | bytes[11];
if(bytes[10] & 0x80)
{
value |=0xFFFF0000;
}
var pitch=value/100; //pitch,units: °
var json={
roll:roll,
pitch:pitch,
batV:batV,
alarm:alarm
};
var value=bytes[0]<<16 | bytes[1]<<8 | bytes[2];
if(bytes[0] & 0x80)
{
value |=0xFFFFFF000000;
}
var value2=bytes[3]<<16 | bytes[4]<<8 | bytes[5];
if(bytes[3] & 0x80)
{
value2 |=0xFFFFFF000000;
}
if (value == 0x0FFFFF && value2 == 0x0FFFFF)
{
//gps disabled (low battery)
} else if (value === 0 && value2 === 0) {
//gps no position yet
} else {
json.latitude=value/10000; //gps latitude,units: °
json.longitude=value2/10000; //gps longitude,units: °
}
return json;
}

+ 25
- 0
ttnscripts/rhf1s001.js View File

@ -0,0 +1,25 @@
function Decoder(bytes, port) {
var obj = new Object();
//temp
var tempEncoded=(bytes[2]<<8)|(bytes[1]);
var tempDecoded=(tempEncoded*175.72/65536)-46.85;
obj.temp=tempDecoded.toFixed(2);
//humidity
var humEncoded=(bytes[3]);
var humDecoded=(humEncoded*125/256)-6;
obj.hum=humDecoded.toFixed(2);
//period
var periodEncoded=(bytes[5]<<8)|(bytes[4]);
var periodDecoded=(periodEncoded*2);
obj.period=periodDecoded+" sec";
//battery
var batteryEncoded=(bytes[8]);
var batteryDecoded=(batteryEncoded+150)*0.01;
obj.battery=batteryDecoded.toFixed(2);
return obj;
}

Loading…
Cancel
Save