UNPKG

tinkerforge-device-manager

Version:

A node library to make connecting to and accessing Tinkerforge devices easier. Created at the University of Applied Sciences in Osnabrueck.

77 lines (61 loc) 1.92 kB
var moment = require('moment'); class Wrapper { constructor(device, uid, deviceIdentifier, deviceName) { //console.log(uid + "/" + deviceIdentifier); this.device = device; this.uid = uid; this.deviceIdentifier = deviceIdentifier; this.deviceName = deviceName; this.listener = []; this.logger = []; } getUID() { return this.uid; } getDeviceIdentifier() { return this.deviceIdentifier; } getName() { return this.deviceName; } registerLogger(logger) { this.logger.push(logger); } registerListener(callback) { this.listener.push(callback); } removeListener(callback) { var deleteIndex = -1; this.listener.forEach((listener, index) => { if (listener === callback) deleteIndex = index; }); this.listener.splice(deleteIndex, 1); } valueChanged(values, err) { if (err) console.log(err) else { var now = Date.now(); var valueObj = { uid: this.uid, deviceIdentifier: this.deviceIdentifier, time_formatted: moment(now).format('YYYY-MM-DD HH:mm:ss:SSS'), timestamp: now, values: values }; this.listener.forEach((listener) => { listener(valueObj); }); this.logger.forEach((logger) => { logger.info(this._formatValue(valueObj)); }); } } _formatValue(valueObj) { var time = moment(new Date().getTime()); var logEntry = valueObj.time + ";" + valueObj.uid + ";" + valueObj.deviceIdentifier + ";" + valueObj.value; return logEntry; } } exports.Wrapper = Wrapper;