From bba3d06b596f3f0ad81762f91cfd39ac9d1f6598 Mon Sep 17 00:00:00 2001 From: kekcheburec Date: Fri, 17 Sep 2021 13:09:22 +0300 Subject: [PATCH 1/2] Add support LPS25HB --- modules/@amperka/barometer.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/modules/@amperka/barometer.js b/modules/@amperka/barometer.js index ffcb13c..14d9134 100644 --- a/modules/@amperka/barometer.js +++ b/modules/@amperka/barometer.js @@ -2,19 +2,19 @@ * Класс для работы с датчиком давления */ // Инициализация класса -var LPS331 = function(opts) { +var Barometer = function(opts) { opts = opts || {}; this._i2c = opts.i2c || I2C1; this._address = opts.address || 0x5c; }; // Метод записывает данные data в регистр reg -LPS331.prototype.writeI2C = function(reg, data) { +Barometer.prototype.writeI2C = function(reg, data) { this._i2c.writeTo(this._address, [reg, data]); }; // Метод производит чтение из регистра reg количестов байт count -LPS331.prototype.readI2C = function(reg, count) { +Barometer.prototype.readI2C = function(reg, count) { if (count === undefined) { count = 1; } @@ -23,12 +23,18 @@ LPS331.prototype.readI2C = function(reg, count) { }; // Старт модуля -LPS331.prototype.init = function() { +Barometer.prototype.init = function() { + if (this.whoAmI() === 0xbd) { + this.writeI2C(0x20, 0xc0); + var t = getTime() + 0.1; + while (getTime() < t); + return; + } this.writeI2C(0x20, 0xe0); }; // Температура -LPS331.prototype.temperature = function(units) { +Barometer.prototype.temperature = function(units) { var data = this.readI2C(0x2b, 2); var temp = data[0] | (data[1] << 8); if (temp >= 32767) { @@ -41,7 +47,7 @@ LPS331.prototype.temperature = function(units) { }; // Давление -LPS331.prototype.read = function(units) { +Barometer.prototype.read = function(units) { var data = this.readI2C(0x28, 3); var baro = (data[1] << 8) | (data[2] << 16) || data[0]; if (baro > 2147483647) { @@ -59,11 +65,11 @@ LPS331.prototype.read = function(units) { }; // Метод возвращает идентификатор устройства -LPS331.prototype.whoAmI = function() { +Barometer.prototype.whoAmI = function() { return this.readI2C(0x0f)[0]; }; // Экспортируем класс exports.connect = function(opts) { - return new LPS331(opts); + return new Barometer(opts); }; From 094cd07be1ffc7898a5a0ec14646f9770d169246 Mon Sep 17 00:00:00 2001 From: kekcheburec Date: Fri, 17 Sep 2021 13:46:02 +0300 Subject: [PATCH 2/2] Translation of comments --- modules/@amperka/barometer.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/modules/@amperka/barometer.js b/modules/@amperka/barometer.js index 14d9134..929a90f 100644 --- a/modules/@amperka/barometer.js +++ b/modules/@amperka/barometer.js @@ -1,19 +1,19 @@ /** - * Класс для работы с датчиком давления + * Pressure sensor class */ -// Инициализация класса +// Class initialization var Barometer = function(opts) { opts = opts || {}; this._i2c = opts.i2c || I2C1; this._address = opts.address || 0x5c; }; -// Метод записывает данные data в регистр reg +// The method writes data to the reg register Barometer.prototype.writeI2C = function(reg, data) { this._i2c.writeTo(this._address, [reg, data]); }; -// Метод производит чтение из регистра reg количестов байт count +// The method reads from the reg register the number of bytes count Barometer.prototype.readI2C = function(reg, count) { if (count === undefined) { count = 1; @@ -22,7 +22,7 @@ Barometer.prototype.readI2C = function(reg, count) { return this._i2c.readFrom(this._address, count); }; -// Старт модуля +// Module start Barometer.prototype.init = function() { if (this.whoAmI() === 0xbd) { this.writeI2C(0x20, 0xc0); @@ -33,7 +33,7 @@ Barometer.prototype.init = function() { this.writeI2C(0x20, 0xe0); }; -// Температура +// Temperature Barometer.prototype.temperature = function(units) { var data = this.readI2C(0x2b, 2); var temp = data[0] | (data[1] << 8); @@ -46,7 +46,7 @@ Barometer.prototype.temperature = function(units) { return temp; }; -// Давление +// Pressure Barometer.prototype.read = function(units) { var data = this.readI2C(0x28, 3); var baro = (data[1] << 8) | (data[2] << 16) || data[0]; @@ -64,12 +64,12 @@ Barometer.prototype.read = function(units) { return baro; }; -// Метод возвращает идентификатор устройства +// The method returns the device identifier Barometer.prototype.whoAmI = function() { return this.readI2C(0x0f)[0]; }; -// Экспортируем класс +// Exporting the class exports.connect = function(opts) { return new Barometer(opts); };