UNPKG

w1temp

Version:

Measure temperature through DS18B20 sensor connected to 1wire to Raspberry PI with node.js

45 lines (35 loc) 1.65 kB
'use strict'; 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')); }); } }); }