/
MLRTPS Decoder Chirpstack


Copyright Micropelt

MLRTPS Decoder Chirpstack

Uplink Decoder:

// Decode uplink function. // // Input is an object with the following fields: // - bytes = Byte array containing the uplink payload, e.g. [255, 230, 255, 0] // - fPort = Uplink fPort. // - variables = Object containing the configured device variables. // // Output must be an object with the following fields: // - output = Object representing the decoded payload. function decodeUplink(input) { return { data: Decode(input.fPort, input.bytes, input.variables) }; } function get_spt_value(input) { var spt_value = input[3]; switch (spt_value) { case 0: return "0"; case 1: return "+1"; case 2: return "+2"; case 3: return "+3"; case 4: return "+4"; case 5: return "+5"; case 12: return "-4"; case 13: return "-3"; case 14: return "-2"; case 15: return "-1"; case 255: return "Freeze Protect"; default: return "Invalid SPT value"; } } function Decode(fPort, bytes) { switch (fPort) { case 1: { var output = {}; output.Ambient_Temperature = bytes[0] * 0.25; output.PIR_Status = bytes[1] >> 5 & 0x01; output.Energy_Storage_Low = bytes[1] >> 4 & 0x01; output.Radio_Comm_Error = bytes[1] >> 3 & 0x01; output.Radio_Signal_Strength = bytes[1] >> 2 & 0x01; output.PIR_Sensor_Failure = bytes[1] >> 1 & 0x01; output.Ambient_Sensor_Failure = bytes[1] & 0x01; output.Storage_Voltage = Number((bytes[2] * 0.02).toFixed(2)); output.Relative_SPT_Value = get_spt_value(bytes); return { uplink_decoded: output }; } default: return { errors: ['unknown FPort'], }; } } // Encode downlink function. // // Input is an object with the following fields: // - output = Object representing the payload that must be encoded. // - variables = Object containing the configured device variables. // // Output must be an object with the following fields: // - bytes = Byte array containing the downlink payload. function encodeDownlink(input) { return { }; }

Related pages