From a0d959003f07f2965e49a78cc26e9335b9c389a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=92=9F=E8=BF=9B?= Date: Thu, 8 Nov 2018 00:28:28 +0800 Subject: [PATCH] Update main.js --- main.js | 94 +++++++++------------------------------------------------ 1 file changed, 14 insertions(+), 80 deletions(-) diff --git a/main.js b/main.js index fc6f9e2..2343d79 100644 --- a/main.js +++ b/main.js @@ -4,24 +4,17 @@ 'use strict'; const utils = require(__dirname + '/lib/utils'); -let modbus = null; +let yuanqu = null; let fs; -let serialport = null; - let adapter = utils.Adapter({ - name: 'modbus', + name: 'yuanqu', unload: stop }); process.on('SIGINT', stop); adapter.on('ready', function () { - try { - serialport = require('serialport'); - } catch (err) { - adapter.log.warn('Serial is not available'); - } adapter.setState('info.connection', adapter.config.params.slave ? 0 : false, true); main(); @@ -31,28 +24,18 @@ adapter.on('message', function (obj) { if (obj) { switch (obj.command) { case 'listUart': - if (obj.callback) { - if (serialport) { - // read all found serial ports - serialport.list(function (err, ports) { - listSerial(ports); - adapter.log.info('List of port: ' + JSON.stringify(ports)); - adapter.sendTo(obj.from, obj.command, ports, obj.callback); - }); - } else { - adapter.log.warn('Module serialport is not available'); - adapter.sendTo(obj.from, obj.command, [{comName: 'Not available'}], obj.callback); - } - } + adapter.log.warn('Module serialport is not available'); + adapter.sendTo(obj.from, obj.command, [{comName: 'Not available'}], obj.callback); + break; } } }); function stop(callback) { - if (modbus) { - modbus.close(); - modbus = null; + if (yuanqu) { + yuanqu.close(); + yuanqu = null; } if (adapter && adapter.setState && adapter.config && adapter.config.params) { @@ -72,16 +55,16 @@ let infoRegExp = new RegExp(adapter.namespace.replace('.', '\\.') + '\\.info\\.' adapter.on('stateChange', (id, state) => { if (state && !state.ack && id && !infoRegExp.test(id)) { - if (!modbus) { + if (!yuanqu) { adapter.log.warn('No connection') } else { if (objects[id]) { - modbus.write(id, state); + yuanqu.write(id, state); } else { adapter.getObject(id, (err, data) => { if (!err) { objects[id] = data; - modbus.write(id, state); + yuanqu.write(id, state); } }); } @@ -89,51 +72,7 @@ adapter.on('stateChange', (id, state) => { } }); -function filterSerialPorts(path) { - fs = fs || require('fs'); - // get only serial port names - if (!(/(tty(S|ACM|USB|AMA|MFD)|rfcomm)/).test(path)) return false; - return fs - .statSync(path) - .isCharacterDevice(); -} - -function listSerial(ports) { - ports = ports || []; - const path = require('path'); - fs = fs || require('fs'); - - // Filter out the devices that aren't serial ports - let devDirName = '/dev'; - - let result; - try { - result = fs - .readdirSync(devDirName) - .map(function (file) { - return path.join(devDirName, file); - }) - .filter(filterSerialPorts) - .map(function (port) { - let found = false; - for (let v = 0; v < ports.length; v++) { - if (ports[v].comName === port) { - found = true; - break; - } - } - if (!found) ports.push({comName: port}); - return {comName: port}; - }); - } catch (e) { - if (require('os').platform() !== 'win32') { - adapter.log.error('Cannot read "' + devDirName + '": ' + e); - } - result = []; - } - return result; -} function addToEnum(enumName, id, callback) { adapter.getForeignObject(enumName, function (err, obj) { @@ -1193,14 +1132,9 @@ function parseConfig(callback) { function main() { parseConfig(options => { - let Modbus; - if (options.config.slave) { - Modbus = require(__dirname + '/lib/slave'); - } else { - Modbus = require(__dirname + '/lib/master'); - } - modbus = new Modbus(options, adapter); - modbus.start(); + let yuanqu; + yuanqu = new yuanqu(options, adapter); + yuanqu.start(); }); }