REVISED DECODER.JS

This commit is contained in:
Yunhorn 2023-12-20 18:57:50 +08:00
parent fd0b503e1a
commit c0d7a5ac58
1 changed files with 57 additions and 18 deletions

View File

@ -1,32 +1,71 @@
function Decode(fPort, data, variables) {
if (fPort === 13) {
return [
{
led_state: bytes[0]===0?"Off":"On",
{
led_state: bytes[0] === 0 ? "Off" : "On",
mtm_code_1: bytes[1],
mtm_code_2: bytes[2],
hw_code: bytes[3],
battery_level: bytes[4]+"%",
battery_level: bytes[4] + "%",
size_value: bytes[5],
spot_cnt: bytes[6]+" blocks",
spillage_level: bytes[7]+"%",
top1_position:"X= "+bytes[8]%10+" Y= "+ parseFloat(bytes[8]/10).toFixed(0),
top2_position:"X= "+bytes[9]%10+" Y= "+ parseFloat(bytes[9]/10).toFixed(0),
top3_position:"X= "+bytes[10]%10+" Y= "+ parseFloat(bytes[10]/10).toFixed(0),
top4_position:"X= "+bytes[11]%10+" Y= "+ parseFloat(bytes[11]/10).toFixed(0),
min_temp: (bytes[12] | bytes[13] / 100)+"C",
average_temp: (bytes[14] + bytes[15] / 100)+"C",
max_temp: (bytes[16] + bytes[17] / 100)+"C",
center_temp: (bytes[18] + bytes[19] / 100)+"C",
spot_cnt: bytes[6] + " blocks",
spillage_level: bytes[7] + "%",
top1_position: "X= " + bytes[8] % 10 + " Y= " + parseFloat(bytes[8] / 10).toFixed(0),
top2_position: "X= " + bytes[9] % 10 + " Y= " + parseFloat(bytes[9] / 10).toFixed(0),
top3_position: "X= " + bytes[10] % 10 + " Y= " + parseFloat(bytes[10] / 10).toFixed(0),
top4_position: "X= " + bytes[11] % 10 + " Y= " + parseFloat(bytes[11] / 10).toFixed(0),
min_temp: (bytes[12] | bytes[13] / 100) + "C",
average_temp: (bytes[14] + bytes[15] / 100) + "C",
max_temp: (bytes[16] + bytes[17] / 100) + "C",
center_temp: (bytes[18] + bytes[19] / 100) + "C",
}
]
}
else if (fPort === 14) {
return [
{
led_state: (bytes[0]&0x7f)===0?"Off":"On",
battery_level: bytes[1]+"%",
{
led_state: (bytes[0] & 0x7f) === 0 ? "Off" : "On",
battery_level: bytes[1] + "%",
}
];
}
};
}
else if (fPort === 1) {
if (bytes[0] === 0x56) {
return [
{
mtm_code_1: bytes[1],
mtm_code_2: bytes[2],
HW_Version: "HW:" + bytes[3],
SW_Version: "SW" + bytes[4] + ":" + bytes[5] + ":" + bytes[6] + ":" + bytes[7],
}
];
}
else if (bytes[0] === 0x53) {
return [
{
mtm_code_1: bytes[1],
mtm_code_2: bytes[2],
sw_code: bytes[3],
hw_code: bytes[4],
battery_level: bytes[5] + "%",
size_value: bytes[6],
}
];
}
if (bytes[0] === 0x59) {
if (bytes[1] === 0x44) {
return [
{
HB_interval: (bytes[2] - 0x30) * 10 + (bytes[3] - 0x30),
HB_interval_unit: String.fromCharCode(bytes[4]),
}
];
}
}
}
};