Espruino/libs/js/CCS811.min.js

3 lines
1.4 KiB
JavaScript

function d(e,c,f){this.r=e;this.w=c;this.options=f||{};this.w(a.SW_RESET,[17,229,114,138]);var b=this;setTimeout(function(){if(b.r(a.WHO_AM_I,1)[0]!=a.WHO_AM_I_VALUE)throw"CCS811 WHO_AM_I check failed";b.w(a.BOOTLOADER_APP_START,[]);setTimeout(function(){if(!b.r(a.STATUS_FW_MODE,1)[0]&a.STATUS_FW_MODE)throw"CCS811 not in FW mode";b.options["int"]?(b.watch=setWatch(function(){b.emit("data",b.get())},b.options["int"],{edge:"falling",repeat:!0}),b.w(a.MEAS_MODE,a.MEAS_MODE_DRIVE_MODE_1SEC|
a.MEAS_MODE_INT_DATARDY)):b.w(a.MEAS_MODE,a.MEAS_MODE_DRIVE_MODE_1SEC)},100)},100)}var a={WHO_AM_I:32,WHO_AM_I_VALUE:129,STATUS:0,STATUS_ERROR:1,STATUS_DATA_READY:8,STATUS_APP_VALID:16,STATUS_FW_MODE:128,MEAS_MODE:1,MEAS_MODE_INT_THRESH:4,MEAS_MODE_INT_DATARDY:8,MEAS_MODE_DRIVE_MODE_IDLE:0,MEAS_MODE_DRIVE_MODE_1SEC:16,MEAS_MODE_DRIVE_MODE_10SEC:32,MEAS_MODE_DRIVE_MODE_60SEC:48,MEAS_MODE_DRIVE_MODE_250MS:64,ALG_RESULT_DATA:2,SW_RESET:255,BOOTLOADER_APP_START:244};d.prototype.stop=function(){this.watch&&
clearWatch(this.watch);this.watch=void 0;this.w(a.MEAS_MODE,a.MEAS_MODE_DRIVE_MODE_IDLE)};d.prototype.available=function(){return 0!=(this.r(a.STATUS,1)[0]&a.STATUS_DATA_READY)};d.prototype.get=function(){var e=0!=(this.r(a.STATUS,1)[0]&a.STATUS_DATA_READY),c=this.r(a.ALG_RESULT_DATA,4);return{eCO2:c[0]<<8|c[1],TVOC:c[2]<<8|c[3],"new":e}};exports.connectI2C=function(a,c){return new d(function(c,b){a.writeTo(90,c);return a.readFrom(90,b)},function(c,b){a.writeTo(90,c,b)},c)}