Espruino/libs/js/LPS22HB.min.js
2023-06-13 09:22:21 +01:00

3 lines
1.1 KiB
JavaScript

function e(a,b,d){this.r=a;this.w=b;this.options=d||{};if(177!=this.r(c.WHO_AM_I,1)[0])throw"LPS22HB WHO_AM_I check failed";this.w(c.CTRL_REG1,0);this.w(c.CTRL_REG2,16);this.options.int&&(this.watch=setWatch(function(){this.emit("data",this.get())}.bind(this),this.options.int,{edge:"rising",repeat:!0}),this.get(),this.w(c.CTRL_REG1,16),this.w(c.CTRL_REG3,4))}var c={WHO_AM_I:15,CTRL_REG1:16,CTRL_REG2:17,CTRL_REG3:18,STATUS:39,PRESS_OUT_XL:40,TEMP_OUT_L:43};e.prototype.stop=
function(){this.watch&&(clearWatch(this.watch),this.watch=void 0);this.w(c.CTRL_REG1,0);this.w(c.CTRL_REG3,0)};e.prototype.get=function(){var a=this.r(c.STATUS,6),b=a[3]<<16|a[2]<<8|a[1];b&8388608&&(b-=16777216);var d=a[5]<<8|a[4];d&32768&&(d-=65536);return{pressure:b/4096,temperature:d/100,new:3==(a[0]&3)}};e.prototype.read=function(a){if(this.options.int)a(this.get());else{this.w(c.CTRL_REG2,17);var b=setInterval(function(){this.r(c.STATUS)&3&&(clearInterval(b),a(this.get()))}.bind(this),100);return this.get()}};
exports.connectI2C=function(a,b){var d=b&&b.addr||92;return new e(function(f,g){a.writeTo(d,f|128);return a.readFrom(d,g)},function(f,g){a.writeTo(d,f,g)},b)}