diff options
Diffstat (limited to 'mappers')
| -rw-r--r-- | mappers/modbus_mapper/src/modbus.js | 16 | ||||
| -rw-r--r-- | mappers/modbus_mapper/src/watchfile.js | 11 |
2 files changed, 17 insertions, 10 deletions
diff --git a/mappers/modbus_mapper/src/modbus.js b/mappers/modbus_mapper/src/modbus.js index 3167a0cb8..f05abe29c 100644 --- a/mappers/modbus_mapper/src/modbus.js +++ b/mappers/modbus_mapper/src/modbus.js @@ -50,13 +50,13 @@ class Modbus { let client = this.client; switch(visitor.visitorConfig.register){ case 'CoilRegister': - client.writeCoils(parseInt(visitor.visitorConfig.index), value, (err, data)=>{ + client.writeCoils(parseInt(visitor.visitorConfig.offset), value, (err, data)=>{ client.close(); callback(err, data); }); break; case 'HoldingRegister': - client.writeRegisters(parseInt(visitor.visitorConfig.index), value, (err, data)=>{ + client.writeRegisters(parseInt(visitor.visitorConfig.offset), value, (err, data)=>{ client.close(); callback(err, data); }); @@ -83,8 +83,8 @@ class Modbus { transData = (value).toString(2).split('').map(function(s) { return parseInt(s); }); } else if (visitor.visitorConfig.register === 'HoldingRegister') { common.IntToByteArray(value, (byteArr)=>{ - if (byteArr.length < visitor.visitorConfig.offset) { - let zeroArr = new Array(visitor.visitorConfig.offset -byteArr.length).fill(0); + if (byteArr.length < visitor.visitorConfig.limit) { + let zeroArr = new Array(visitor.visitorConfig.limit -byteArr.length).fill(0); byteArr = zeroArr.concat(byteArr); transData = byteArr; } else { @@ -147,25 +147,25 @@ class Modbus { let client = this.client; switch (visitor.visitorConfig.register) { case 'CoilRegister': - client.readCoils(parseInt(visitor.visitorConfig.index), parseInt(visitor.visitorConfig.offset), (err, data)=>{ + client.readCoils(parseInt(visitor.visitorConfig.offset), parseInt(visitor.visitorConfig.limit), (err, data)=>{ client.close(); callback(err, err?data:[data.data[0]]); }); break; case 'DiscreteInputRegister': - client.readDiscreteInputs(parseInt(visitor.visitorConfig.index), parseInt(visitor.visitorConfig.offset), (err, data)=>{ + client.readDiscreteInputs(parseInt(visitor.visitorConfig.offset), parseInt(visitor.visitorConfig.limit), (err, data)=>{ client.close(); callback(err, err?data:[data.data[0]]); }); break; case 'HoldingRegister': - client.readHoldingRegisters(parseInt(visitor.visitorConfig.index), parseInt(visitor.visitorConfig.offset), (err, data)=>{ + client.readHoldingRegisters(parseInt(visitor.visitorConfig.offset), parseInt(visitor.visitorConfig.limit), (err, data)=>{ client.close(); callback(err, err?data:data.data); }); break; case 'InputRegister': - client.readInputRegisters(parseInt(visitor.visitorConfig.index), parseInt(visitor.visitorConfig.offset), (err, data)=>{ + client.readInputRegisters(parseInt(visitor.visitorConfig.offset), parseInt(visitor.visitorConfig.limit), (err, data)=>{ client.close(); callback(err, err?data:data.data); }); diff --git a/mappers/modbus_mapper/src/watchfile.js b/mappers/modbus_mapper/src/watchfile.js index 6c5340492..c951cca4e 100644 --- a/mappers/modbus_mapper/src/watchfile.js +++ b/mappers/modbus_mapper/src/watchfile.js @@ -23,7 +23,14 @@ function watchChange(paths, onChange) { watcher.on('ready', ()=>{ watcher.on('add', ()=>{ logger.info('watched file added, load dpl config'); - onChange(filename); + setTimeout(() => { + onChange(filename); + }, 5000); + }).on('change', ()=> { + logger.info('watched file change, load dpl config'); + setTimeout(() => { + onChange(filename); + }, 5000); }); }); } @@ -85,7 +92,7 @@ function buildMaps(dplConfigs, i) { return element.name === dplConfigs.deviceInstances[i].protocol; }); if (foundPro != -1) { - devPro.set(dplConfigs.deviceInstances[i].id, dplConfigs.protocols[foundMod]); + devPro.set(dplConfigs.deviceInstances[i].id, dplConfigs.protocols[foundPro]); } else { logger.error('failed to find protocol[%s] for deviceid', dplConfigs.deviceModels[i].protocol); } |
