ravinator

Untitled

Sep 22nd, 2020
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function Decoder(bytes, port) {
  2.   return qalcosonicDecode(bytes);
  3. }
  4.  
  5. function hexToDec(hexString){
  6.   return parseInt(hexString, 16);
  7. }
  8.  
  9. function bufferToHex(buffer) {
  10.   var str = "";
  11.   for(var i=0; i<buffer.length; i++) {
  12.     var tmp = (buffer[i] & 0xff).toString(16);
  13.     if(tmp.length == 1) {
  14.       tmp = "0" + tmp;
  15.     }
  16.     str += tmp;
  17.   }
  18.   return str;
  19. }
  20.  
  21. function bufferToStatus(buffer) {
  22.   var str = "";
  23.   var dec = hexToDec(buffer);
  24.   if (dec === 0)
  25.     return "No error"
  26.   if (dec & 4)
  27.     str += "Power low, "
  28.   if (dec & 8)
  29.     str += "Permanent error, "
  30.   if (dec & 16)
  31.     str += "Temporary error, "
  32.   if (dec & 32)
  33.     str += "Leak, "
  34.   if (dec & 160)
  35.     str += "Burst, "
  36.   if (dec & 96)
  37.     str += "Backflow, "
  38.   if (dec & 128)
  39.     str += "Freeze, "
  40.    
  41.   if (str.length > 0)
  42.     str = str.slice(0, -2);
  43.  
  44.   return "(0x" + buffer + ") " + str;
  45. }
  46.  
  47. function unixToTime(unix_timestamp) {
  48.   var date = new Date(unix_timestamp*1000);
  49.   var hours = "0" + date.getHours();
  50.   var minutes = "0" + date.getMinutes();
  51.   var seconds = "0" + date.getSeconds();
  52.  
  53.   var day = "0" + date.getDate();
  54.   var month = "0" + (date.getMonth()+1).toString();
  55.   var year = "0" + date.getFullYear();
  56.  
  57.   var formattedTime = day.substr(-2) + '/' + month.substr(-2) + '/' + year.substr(-4) +' ' + hours.substr(-2) + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
  58.  
  59.   return formattedTime;
  60. }
  61.  
  62. function qalcosonicDecode(bytes){
  63.  
  64.     var myObj = {};
  65.  
  66.     var bytes_time_reversed = bytes.reverse();
  67.     var bytes_time = bytes.slice(43,47)
  68.     var bytes_status = bytes.slice(42,43)
  69.     var bytes_water = bytes.slice(38,42)
  70.     var bytes_log_time = bytes.slice(34,38)
  71.     var bytes_log_water = bytes.slice(30,34)
  72.     var bytes_delta_vol_1 = bytes.slice(28,30)
  73.     var bytes_delta_vol_2 = bytes.slice(26,28)
  74.     var bytes_delta_vol_3 = bytes.slice(24,26)
  75.     var bytes_delta_vol_4 = bytes.slice(22,24)
  76.     var bytes_delta_vol_5 = bytes.slice(20,22)
  77.     var bytes_delta_vol_6 = bytes.slice(18,20)
  78.     var bytes_delta_vol_7 = bytes.slice(16,18)
  79.     var bytes_delta_vol_8 = bytes.slice(14,16)
  80.     var bytes_delta_vol_9 = bytes.slice(12,14)
  81.     var bytes_delta_vol_10 = bytes.slice(10,12)
  82.     var bytes_delta_vol_11 = bytes.slice(8,10)
  83.     var bytes_delta_vol_12 = bytes.slice(6,8)
  84.     var bytes_delta_vol_13 = bytes.slice(4,6)
  85.     var bytes_delta_vol_14 = bytes.slice(2,4)
  86.     var bytes_delta_vol_15 = bytes.slice(0,2)
  87.     var basePayloadConverted = bufferToHex(bytes);
  88.  
  89.     var bytes_water_hex = bufferToHex(bytes_water);
  90.     var bytes_log_water_hex = bufferToHex(bytes_log_water);
  91.     var bytes_status_hex = bufferToHex(bytes_status);
  92.     var bytes_time_hex = bufferToHex(bytes_time);
  93.     var bytes_log_time_hex = bufferToHex(bytes_log_time);
  94.     var bytes_delta_vol_1_hex = bufferToHex(bytes_delta_vol_1);
  95.     var bytes_delta_vol_2_hex = bufferToHex(bytes_delta_vol_2);
  96.     var bytes_delta_vol_3_hex = bufferToHex(bytes_delta_vol_3);
  97.     var bytes_delta_vol_4_hex = bufferToHex(bytes_delta_vol_4);
  98.     var bytes_delta_vol_5_hex = bufferToHex(bytes_delta_vol_5);
  99.     var bytes_delta_vol_6_hex = bufferToHex(bytes_delta_vol_6);
  100.     var bytes_delta_vol_7_hex = bufferToHex(bytes_delta_vol_7);
  101.     var bytes_delta_vol_8_hex = bufferToHex(bytes_delta_vol_8);
  102.     var bytes_delta_vol_9_hex = bufferToHex(bytes_delta_vol_9);
  103.     var bytes_delta_vol_10_hex = bufferToHex(bytes_delta_vol_10);
  104.     var bytes_delta_vol_11_hex = bufferToHex(bytes_delta_vol_11);
  105.     var bytes_delta_vol_12_hex = bufferToHex(bytes_delta_vol_12);
  106.     var bytes_delta_vol_13_hex = bufferToHex(bytes_delta_vol_13);
  107.     var bytes_delta_vol_14_hex = bufferToHex(bytes_delta_vol_14);
  108.     var bytes_delta_vol_15_hex = bufferToHex(bytes_delta_vol_15);
  109.  
  110.     var water = hexToDec(bytes_water_hex);
  111.     var log_water = hexToDec(bytes_log_water_hex);
  112.     var delta_vol_1 = hexToDec(bytes_delta_vol_1_hex);
  113.     var delta_vol_2 = hexToDec(bytes_delta_vol_2_hex);
  114.     var delta_vol_3 = hexToDec(bytes_delta_vol_3_hex);
  115.     var delta_vol_4 = hexToDec(bytes_delta_vol_4_hex);
  116.     var delta_vol_5 = hexToDec(bytes_delta_vol_5_hex);
  117.     var delta_vol_6 = hexToDec(bytes_delta_vol_6_hex);
  118.     var delta_vol_7 = hexToDec(bytes_delta_vol_7_hex);
  119.     var delta_vol_8 = hexToDec(bytes_delta_vol_8_hex);
  120.     var delta_vol_9 = hexToDec(bytes_delta_vol_9_hex);
  121.     var delta_vol_10 = hexToDec(bytes_delta_vol_10_hex);
  122.     var delta_vol_11 = hexToDec(bytes_delta_vol_11_hex);
  123.     var delta_vol_12 = hexToDec(bytes_delta_vol_12_hex);
  124.     var delta_vol_13 = hexToDec(bytes_delta_vol_13_hex);
  125.     var delta_vol_14 = hexToDec(bytes_delta_vol_14_hex);
  126.     var delta_vol_15 = hexToDec(bytes_delta_vol_15_hex);
  127.     var status = bufferToStatus(bytes_status_hex);
  128.     var unix_timestamp = hexToDec(bytes_time_hex);
  129.     var unix_log_timestamp = hexToDec(bytes_log_time_hex);
  130.  
  131.     var stringTime = unixToTime(unix_timestamp);
  132.     var stringLogTime = unixToTime(unix_log_timestamp);
  133.     var stringStatus = status;
  134.     var stringWater = water*0.001;
  135.     var stringLogWater = log_water*0.001;
  136.  
  137.     myObj.time = stringTime;
  138.     myObj.status = stringStatus;
  139.     myObj.volume = stringWater;
  140.     myObj.logTime = stringLogTime;
  141.     myObj.logVolume = stringLogWater;
  142.     myObj.delta1 = delta_vol_1 * 0.001;
  143.     myObj.delta2 = delta_vol_2 * 0.001;
  144.     myObj.delta3 = delta_vol_3 * 0.001;
  145.     myObj.delta4 = delta_vol_4 * 0.001;
  146.     myObj.delta5 = delta_vol_5 * 0.001;
  147.     myObj.delta6 = delta_vol_6 * 0.001;
  148.     myObj.delta7 = delta_vol_7 * 0.001;
  149.     myObj.delta8 = delta_vol_8 * 0.001;
  150.     myObj.delta9 = delta_vol_9 * 0.001;
  151.     myObj.delta10 = delta_vol_10 * 0.001;
  152.     myObj.delta11 = delta_vol_11 * 0.001;
  153.     myObj.delta12 = delta_vol_12 * 0.001;
  154.     myObj.delta13 = delta_vol_13 * 0.001;
  155.     myObj.delta14 = delta_vol_14 * 0.001;
  156.     myObj.delta15 = delta_vol_15 * 0.001;
  157.  
  158.     return myObj;
  159. }
Add Comment
Please, Sign In to add comment