-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathdecodeUplink.min.js
More file actions
1 lines (1 loc) · 2.42 KB
/
decodeUplink.min.js
File metadata and controls
1 lines (1 loc) · 2.42 KB
1
function decodeUplink(t){var e={bytes:t.bytes,port:t.fPort};return battery=15&t.bytes[1],battery=(25+battery)/10,capacity=t.bytes[1]>>4,capacity=capacity/15*100,temperature=127&t.bytes[2],temperature-=32,e.battery=battery,e.capacity=capacity,e.temperature=temperature,100===t.fPort?(openingStatusTime=t.bytes[4]<<8|t.bytes[3],openingStatusCount=t.bytes[7]<<16|t.bytes[6]<<8|t.bytes[5],openingStatus=1&t.bytes[0],1===openingStatus?openingStatusOpen=!0:openingStatusOpen=!1,e.openingStatusTime=openingStatusTime,e.openingStatusCount=openingStatusCount,e.openingStatusOpen=openingStatusOpen):102===t.fPort?(roomStatusTime=t.bytes[4]<<8|t.bytes[3],roomStatusCount=t.bytes[7]<<16|t.bytes[6]<<8|t.bytes[5],roomStatus=1&t.bytes[0],1===roomStatus?roomStatusOccupied=!0:roomStatusOccupied=!1,e.roomStatusTime=roomStatusTime,e.roomStatusCount=roomStatusCount,e.roomStatusOccupied=roomStatusOccupied):103===t.fPort?(t.bytes.length>8&&(voc=t.bytes[7]<<8|t.bytes[6],65535===voc?vocError=!0:vocError=!1,co2=t.bytes[5]<<8|t.bytes[4],65535===co2?co2Error=!0:co2Error=!1,iaq=t.bytes[9]<<9|t.bytes[8],temperatureEnvironment=127&t.bytes[10],temperatureEnvironment-=32,e.voc=voc,e.vocError=vocError,e.co2=co2,e.co2Error=co2Error,e.iaq=iaq,e.temperatureEnvironment=temperatureEnvironment),humidity=t.bytes[3]&=127,127===humidity?humidityError=!0:humidityError=!1,e.humidity=humidity,e.humidityError=humidityError):104===t.fPort?(lux=t.bytes[5]<<16|t.bytes[4]<<8|t.bytes[3],lux/=100,e.lux=lux):105===t.fPort?(soundLevel=255&t.bytes[3],255===soundLevel?soundLevelError=!0:soundLevelError=!1,e.soundLevel=soundLevel,e.soundLevelError=soundLevelError):106===t.fPort?(temperatureEnvironment=127&t.bytes[4],temperatureEnvironment-=32,humidity=t.bytes[3]&=127,127===humidity?humidityError=!0:humidityError=!1,e.temperatureEnvironment=temperatureEnvironment,e.humidity=humidity,e.humidityError=humidityError):136===t.fPort&&(0==(8&t.bytes[0])?positionGnssFix=!0:positionGnssFix=!1,positionAccuracy=t.bytes[10]>>5,positionAccuracy=Math.pow(2,parseInt(positionAccuracy)+2),t.bytes[10]&=31,0!=(16&t.bytes[10])&&(t.bytes[10]|=224),t.bytes[6]&=15,positionLatitude=t.bytes[6]<<24|t.bytes[5]<<16|t.bytes[4]<<8|t.bytes[3],positionLongitude=t.bytes[10]<<24|t.bytes[9]<<16|t.bytes[8]<<8|t.bytes[7],positionLatitude/=1e6,positionLongitude/=1e6,e.positionGnssFix=positionGnssFix,e.positionLatitude=positionLatitude,e.positionLongitude=positionLongitude,e.positionAccuracy=positionAccuracy),{data:e,warnings:[],errors:[]}}