w1temp
Version:
Measure temperature through DS18B20 sensor connected to 1wire to Raspberry PI with node.js
45 lines (35 loc) • 1.65 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getSensor;
var _fileExistsWait = require('./fileExistsWait');
var _fileExistsWait2 = _interopRequireDefault(_fileExistsWait);
var _Sensor = require('./Sensor');
var _Sensor2 = _interopRequireDefault(_Sensor);
var _constants = require('./constants');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function getSensor(sensorUid) {
var enablePolling = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
var interval = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 250;
var onlyIfChanged = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;
return new Promise(function (resolve, reject) {
if (!_constants.SENSOR_UID_REGEXP.test(sensorUid)) {
reject(new Error('Bad sensor uid format'));
} else if (typeof enablePolling !== 'boolean') {
reject(new Error('enablePolling must be a boolean'));
} else if (typeof interval !== 'number' || interval <= 0) {
reject(new Error('interval must be a number and greater then 0'));
} else if (typeof onlyIfChanged !== 'boolean') {
reject(new Error('onlyIfChanged must be a boolean'));
} else {
var file = '/sys/bus/w1/devices/' + sensorUid + '/w1_slave';
(0, _fileExistsWait2.default)(file).then(function () {
var sensor = new _Sensor2.default(file, enablePolling, interval, onlyIfChanged);
resolve(sensor);
}).catch(function () {
reject(new Error('Cant get sensor instance'));
});
}
});
}