//ee00002103020607080910 //730000000000000000000000000000000000000000000000000000555500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011D //73040100000DAF03BA00370032002A00310029002B000000000000555500000000000000000000000000000000000000000000000000000000000000000000003C000C003D3400420042004300400EBF050E00000653 //73040200000DB203BA003A00330022002C002C002C000000000000555500000000000000000000000000000000000000000000000000000000000000000000003D000D003D34004200430043003F0EBF050D00000653 //73040300000DB503B9003D00330021002C002C002C000000000000555500000000000000000000000000000000000000000000000000000000000000000000003D000C003E3400420042004200400EC0050E00000659 //73040400000DB303B8003500320021002D002B002C000000000000555500000000000000000000000000000000000000000000000000000000000000000000003C000D003D3400430043004200400EBF050D0000064D //73041100000DB803AA006C00320022002D002B002B0000000000005555000000000000000000000000000000000000000000000000000000000000000000000044000C003334004000430044003E0EC204F60000076D STATUS_OUT_ADDR=1; //2B - 16 outs STATUS_IN_ADDR=3; //2B - 16 in STATUS_AIN_ADDR=5; //16B - 8 in STATUS_DIMM_ADDR=5+16; //8B - 8 dimm STATUS_RSSI_ADDR=STATUS_DIMM_ADDR+8; //1B STATUS_RSRP_ADDR=STATUS_RSSI_ADDR+1; //1B STATUS_COUNTER1_ADDR=STATUS_RSRP_ADDR+1; //4B STATUS_COUNTER2_ADDR=STATUS_COUNTER1_ADDR+4; //4B STATUS_GPS_LAT_ADDR=STATUS_COUNTER2_ADDR+4; //10B STATUS_GPS_LON_ADDR=STATUS_GPS_LAT_ADDR+10; //11B STATUS_GPS_HDOP_ADDR=STATUS_GPS_LON_ADDR+11; //3B STATUS_GPS_ALT_ADDR=STATUS_GPS_HDOP_ADDR+3; //6B STATUS_GPS_FIX_ADDR=STATUS_GPS_ALT_ADDR+6; //1B STATUS_GPS_COG_ADDR=STATUS_GPS_FIX_ADDR+1; //6B STATUS_GPS_SPKM_ADDR=STATUS_GPS_COG_ADDR+6; //6B STATUS_GPS_SAT_ADDR=STATUS_GPS_SPKM_ADDR+6; //2B STATUS_END=STATUS_GPS_SAT_ADDR+2; //the end function Decoder(bytes, port) { // Decode an uplink message from a buffer // (array) of bytes to an object of fields. var decoded = {}; // if (port === 1) decoded.led = bytes[0]; decoded.o1= return decoded; } STATUS_OUT_ADDR=1; //2B - 16 outs STATUS_IN_ADDR=3; //2B - 16 in STATUS_AIN_ADDR=5; //16B - 8 in STATUS_DIMM_ADDR=5+16; //8B - 8 dimm STATUS_RSSI_ADDR=STATUS_DIMM_ADDR+8; //1B STATUS_RSRP_ADDR=STATUS_RSSI_ADDR+1; //1B STATUS_COUNTER1_ADDR=STATUS_RSRP_ADDR+1; //4B STATUS_COUNTER2_ADDR=STATUS_COUNTER1_ADDR+4; //4B STATUS_GPS_LAT_ADDR=STATUS_COUNTER2_ADDR+4; //10B STATUS_GPS_LON_ADDR=STATUS_GPS_LAT_ADDR+10; //11B STATUS_GPS_HDOP_ADDR=STATUS_GPS_LON_ADDR+11; //3B STATUS_GPS_ALT_ADDR=STATUS_GPS_HDOP_ADDR+3; //6B STATUS_GPS_FIX_ADDR=STATUS_GPS_ALT_ADDR+6; //1B STATUS_GPS_COG_ADDR=STATUS_GPS_FIX_ADDR+1; //6B STATUS_GPS_SPKM_ADDR=STATUS_GPS_COG_ADDR+6; //6B STATUS_GPS_SAT_ADDR=STATUS_GPS_SPKM_ADDR+6; //2B STATUS_END=STATUS_GPS_SAT_ADDR+2; //the end function Decoder(bytes, port) { // Decode an uplink message from a buffer // (array) of bytes to an object of fields. var decoded = {}; // if (port === 1) decoded.led = bytes[0]; adr=1; //Binary Outputs decoded.o1=bytes[adr]&1; decoded.o2=(bytes[adr]>>1)&1; decoded.o3=(bytes[adr]>>2)&1; decoded.o4=(bytes[adr]>>3)&1; decoded.o5=(bytes[adr]>>4)&1; decoded.o6=(bytes[adr]>>5)&1; decoded.o7=(bytes[adr]>>6)&1; decoded.o8=(bytes[adr]>>7)&1; adr++; decoded.o9=bytes[adr]&1; decoded.o10=(bytes[adr]>>1)&1; decoded.o11=(bytes[adr]>>2)&1; decoded.o12=(bytes[adr]>>3)&1; decoded.o13=(bytes[adr]>>4)&1; decoded.o14=(bytes[adr]>>5)&1; decoded.o15=(bytes[adr]>>6)&1; decoded.o16=(bytes[adr]>>7)&1; adr++; //Binary Inputs decoded.i1=bytes[adr]&1; decoded.i2=(bytes[adr]>>1)&1; decoded.i3=(bytes[adr]>>2)&1; decoded.i4=(bytes[adr]>>3)&1; decoded.i5=(bytes[adr]>>4)&1; decoded.i6=(bytes[adr]>>5)&1; decoded.i7=(bytes[adr]>>6)&1; decoded.i8=(bytes[adr]>>7)&1; adr++; decoded.i9=bytes[adr]&1; decoded.i10=(bytes[adr]>>1)&1; decoded.i11=(bytes[adr]>>2)&1; decoded.i12=(bytes[adr]>>3)&1; decoded.i13=(bytes[adr]>>4)&1; decoded.i14=(bytes[adr]>>5)&1; decoded.i15=(bytes[adr]>>6)&1; decoded.i16=(bytes[adr]>>7)&1; adr++; //ADC Inputs decoded.adc1=(bytes[adr]<<8)+bytes[adr+1];adr+=2; decoded.adc2=(bytes[adr]<<8)+bytes[adr+1];adr+=2; decoded.adc3=(bytes[adr]<<8)+bytes[adr+1];adr+=2; decoded.adc4=(bytes[adr]<<8)+bytes[adr+1];adr+=2; decoded.adc5=(bytes[adr]<<8)+bytes[adr+1];adr+=2; decoded.adc6=(bytes[adr]<<8)+bytes[adr+1];adr+=2; decoded.adc7=(bytes[adr]<<8)+bytes[adr+1];adr+=2; decoded.adc8=(bytes[adr]<<8)+bytes[adr+1];adr+=2; //Dimmers (PWM Outputs) decoded.dimm[0]=bytes[adr++]; decoded.dimm[1]=bytes[adr++]; decoded.dimm[2]=bytes[adr++]; decoded.dimm[3]=bytes[adr++]; return decoded; }