/* * TagoIO Decoders - (https://tago.io/) * ------------------- * Generated by :: frederico * Generated at :: Wed Feb 01 2023 15:37:24 GMT+0000 (Coordinated Universal Time) * Machine :: frederico-desktop - Node.js v16.18.0 * ------------------- */ function JsonDecoder(payload1) { const result = [ { variable: "serial_number", value: payload1.SerNo }, { variable: "imei", value: payload1.IMEI }, { variable: "iccid", value: payload1.ICCID }, { variable: "prodid", value: payload1.ProdId }, { variable: "fw", value: payload1.FW } ]; for (const record of payload1.Records || []){ const time = new Date(record.DateUTC); const group = String(record.SeqNo); result.push({ variable: "sequence_number", value: record.SeqNo, group, time }, { variable: "reason", value: record.Reason, group, time }, { variable: "date_utc", value: record.DateUTC, group, time }, { variable: "gps_utc", value: record?.Fields?.[0].GpsUTC, group, time, unit: "GPS datetime" }, { variable: "location", value: `${String(record.Fields?.[0].Lat)},${String(record.Fields?.[0].Long)}`, unit: "Degrees * 1E7", location: { lat: record?.Fields?.[0].Lat, lng: record.Fields?.[0].Long }, group, time }, { variable: "alt", value: record?.Fields?.[0].Alt, group, time, unit: "m" }, { variable: "speed", value: record.Fields?.[0].Spd, group, time, unit: "Cm/s" }); if (record.Fields?.[0]?.SpdAcc != undefined) { result.push({ variable: "spdacc", value: record.Fields?.[0]?.SpdAcc * 10, group, time, unit: "Cm/s" }); } if (record.Fields?.[0].Head != undefined) { result.push({ variable: "head", value: record.Fields?.[0].Head * 2, group, time, unit: "Deg" }); } result.push({ variable: "pdop", value: record.Fields?.[0].PDOP, group, time, unit: "x10" }, { variable: "posacc", value: record.Fields?.[0].PosAcc, group, time, unit: "m" }, { variable: "gpsstat", value: record.Fields?.[0].GpsStat, group, time }, { variable: "din", value: record.Fields?.[1].DIn, group, time }, { variable: "dout", value: record.Fields?.[1].DOut, group, time }, { variable: "devstat", value: record.Fields?.[1].DevStat, group, time }); if (record.Fields?.[2].AnalogueData?.["2"] != undefined) { result.push({ variable: "external_voltage", value: record.Fields?.[2].AnalogueData?.["2"] / 100, group, time, unit: "V" }); } result.push({ variable: "internal_voltage", value: record.Fields?.[2].AnalogueData?.["1"], group, time, unit: "mV" }); if (record.Fields?.[2].AnalogueData?.["3"] != undefined) { result.push({ variable: "temperature", value: record.Fields?.[2].AnalogueData?.["3"] / 100, group, time, unit: "Deg C" }); } result.push({ variable: "last_known_gsm", value: record.Fields?.[2].AnalogueData?.["4"], group, time }, { variable: "loaded_voltage", value: record.Fields?.[2].AnalogueData?.["5"], group, time, unit: "mV" }); if (record.Fields?.[2].AnalogueData?.["6"] != undefined) { result.push({ variable: "battery", value: record.Fields?.[2].AnalogueData?.["6"] / 10, group, time, unit: "%" }); } } const filtered = result.filter((x)=>x.value !== undefined); return filtered; } console.log(`Payload received: ${JSON.stringify(payload)}`); try { payload = JsonDecoder(payload[0]); } catch (error) { // Print the error to the Live Inspector. console.error(error); // Return the variable parse_error for debugging. payload = [ { variable: "parse_error", value: error.message } ]; } //#sourceMappingURL=data:application/json;charset=utf-8;base64,IntcInZlcnNpb25cIjozLFwic291cmNlc1wiOltdLFwibmFtZXNcIjpbXSxcIm1hcHBpbmdzXCI6XCJcIixcImZpbGVcIjpcInN0ZG91dFwifSI=