kizniche / ttgo-tbeam-ttn-tracker

TTGO T-Beam Tracker for TTN Mapper and TTN Tracker using US (915 MHz) and EU (868 MHz) frequencies
https://kylegabriel.com/projects/2019/04/lorawan-tracker-and-mapper.html
GNU General Public License v3.0
265 stars 139 forks source link

Chirpstack V3->V4 decoder compatibility #58

Open kgarwoodsdzwa opened 1 year ago

kgarwoodsdzwa commented 1 year ago

I used this code but with Chirpstack as my server instead of TTN so it's not an issue per-se, but just in case anyone else does the same thing. It gave me a decoder error when I checked the device log, and I found that Chirpstack V4 needs the decoder in a bit of a different format. When I used the format below it worked perfectly! `function decodeUplink(input) { return { data: Decoder(input.bytes, input.fPort) }; }

function Decoder(bytes) { var decoded = {};

decoded.latitude = ((bytes[0] << 16) >>> 0) + ((bytes[1] << 8) >>> 0) + bytes[2];
decoded.latitude = (decoded.latitude / 16777215.0 * 180) - 90;

decoded.longitude = ((bytes[3] << 16) >>> 0) + ((bytes[4] << 8) >>> 0) + bytes[5];
decoded.longitude = (decoded.longitude / 16777215.0 * 360) - 180;

var altValue = ((bytes[6] << 8) >>> 0) + bytes[7];
var sign = bytes[6] & (1 << 7);
if (sign) decoded.altitude = 0xFFFF0000 | altValue;
else decoded.altitude = altValue;

decoded.hdop = bytes[8] / 10.0;
decoded.sats = bytes[9];

return decoded;

}`