summaryrefslogtreecommitdiff
path: root/mappers
diff options
context:
space:
mode:
authorzongke <zongk@shangyuantech.com>2020-07-13 17:07:21 +0800
committerzongke <zongk@shangyuantech.com>2020-07-13 17:07:21 +0800
commit3adbd7ffd6f732a8950165dbab1addc53a729ca6 (patch)
tree78b95d77adbc91dff305003c5d58cabf63c9e473 /mappers
parentMerge pull request #1923 from coversb/master (diff)
downloadkubeedge-3adbd7ffd6f732a8950165dbab1addc53a729ca6.tar.gz
Fix Modbus Mapper Metric Param Error.
Diffstat (limited to 'mappers')
-rw-r--r--mappers/modbus_mapper/src/modbus.js16
-rw-r--r--mappers/modbus_mapper/src/watchfile.js11
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);
}