Socket
Socket
Sign inDemoInstall

modbus-serial

Package Overview
Dependencies
2
Maintainers
1
Versions
123
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 7.5.1 to 7.6.0-no-serial-port

examples/polling_RTU.js

4

examples/server.js

@@ -42,2 +42,6 @@ /* eslint-disable no-console, no-unused-vars, spaced-comment */

serverTCP.on("initialized", function() {
console.log("initialized");
});
serverTCP.on("socketError", function(err) {

@@ -44,0 +48,0 @@ console.error(err);

@@ -383,2 +383,5 @@ "use strict";

this._port.close(callback);
} else {
// nothing needed to be done
callback();
}

@@ -398,2 +401,5 @@ };

this._port.destroy(callback);
} else {
// nothing needed to be done
callback();
}

@@ -400,0 +406,0 @@ };

4

ModbusRTU.d.ts

@@ -47,2 +47,4 @@ export class ModbusRTU {

writeRegisters(dataAddress: number, values: Array<number>): Promise<WriteMultipleResult>; // 16
isOpen: boolean;
}

@@ -113,2 +115,2 @@

port?: number;
}
}
{
"name": "modbus-serial",
"version": "7.5.1",
"version": "7.6.0-no-serial-port",
"description": "A pure JavaScript implemetation of MODBUS-RTU (Serial and TCP) for NodeJS.",

@@ -37,8 +37,8 @@ "main": "index.js",

"pump": "^3.0.0",
"serialport": "^7.1.3",
"sinon": "^7.2.2"
},
"dependencies": {
"serialport": "^7.1.3",
"debug": "^4.1.1"
}
}
}

@@ -99,5 +99,7 @@ "use strict";

this._client.on("timeout", function() {
modbus.openFlag = false;
// modbus.openFlag is left in its current state as it reflects two types of timeouts,
// i.e. 'false' for "TCP connection timeout" and 'true' for "Modbus response timeout"
// (this allows to continue Modbus request re-tries without reconnecting TCP).
modbusSerialDebug("TCP port: TimedOut");
handleCallback(new Error("TCP Connection Timed Out."));
handleCallback(new Error("TCP Connection Timed Out"));
});

@@ -104,0 +106,0 @@

@@ -125,5 +125,7 @@ "use strict";

this._client.on("timeout", function() {
modbus.openFlag = false;
// modbus.openFlag is left in its current state as it reflects two types of timeouts,
// i.e. 'false' for "TCP connection timeout" and 'true' for "Modbus response timeout"
// (this allows to continue Modbus request re-tries without reconnecting TCP).
modbusSerialDebug("TcpRTUBufferedPort port: TimedOut");
handleCallback(new Error("TcpRTUBufferedPort Connection Timed Out."));
handleCallback(new Error("TcpRTUBufferedPort Connection Timed Out"));
});

@@ -130,0 +132,0 @@

@@ -537,33 +537,33 @@ "use strict";

if (vector.setCoil) {
var callbackInvoked = false;
var cbCount = 0;
var buildCb = function(/* i - not used at the moment */) {
return function(err) {
if (err) {
if (!callbackInvoked) {
callbackInvoked = true;
callback(err);
}
return;
var callbackInvoked = false;
var cbCount = 0;
var buildCb = function(/* i - not used at the moment */) {
return function(err) {
if (err) {
if (!callbackInvoked) {
callbackInvoked = true;
callback(err);
}
cbCount = cbCount + 1;
return;
}
if (cbCount === length && !callbackInvoked) {
modbusSerialDebug({ action: "FC15 response", responseBuffer: responseBuffer });
cbCount = cbCount + 1;
callbackInvoked = true;
callback(null, responseBuffer);
}
};
if (cbCount === length && !callbackInvoked) {
modbusSerialDebug({ action: "FC15 response", responseBuffer: responseBuffer });
callbackInvoked = true;
callback(null, responseBuffer);
}
};
};
if (length === 0)
callback({
modbusErrorCode: 0x02, // Illegal address
msg: "Invalid length"
});
if (length === 0)
callback({
modbusErrorCode: 0x02, // Illegal address
msg: "Invalid length"
});
if (vector.setCoil) {
var state;

@@ -588,2 +588,22 @@

}
} else if (vector.setCoilArray) {
state = [];
for (i = 0; i < length; i++) {
cb = buildCb(i);
state.push(requestBuffer.readBit(i, 7));
_handlePromiseOrValue(promiseOrValue, cb);
}
try {
if (vector.setCoilArray.length === 4) {
vector.setCoilArray(address, state, unitID, cb);
}
else {
vector.setCoilArray(address, state, unitID);
}
}
catch(err) {
cb(err);
}
}

@@ -617,33 +637,33 @@ }

// write registers
if (vector.setRegister) {
var callbackInvoked = false;
var cbCount = 0;
var buildCb = function(/* i - not used at the moment */) {
return function(err) {
if (err) {
if (!callbackInvoked) {
callbackInvoked = true;
callback(err);
}
return;
var callbackInvoked = false;
var cbCount = 0;
var buildCb = function(/* i - not used at the moment */) {
return function(err) {
if (err) {
if (!callbackInvoked) {
callbackInvoked = true;
callback(err);
}
cbCount = cbCount + 1;
return;
}
if (cbCount === length && !callbackInvoked) {
modbusSerialDebug({ action: "FC16 response", responseBuffer: responseBuffer });
cbCount = cbCount + 1;
callbackInvoked = true;
callback(null, responseBuffer);
}
};
if (cbCount === length && !callbackInvoked) {
modbusSerialDebug({ action: "FC16 response", responseBuffer: responseBuffer });
callbackInvoked = true;
callback(null, responseBuffer);
}
};
};
if (length === 0)
callback({
modbusErrorCode: 0x02, // Illegal address
msg: "Invalid length"
});
if (length === 0)
callback({
modbusErrorCode: 0x02, // Illegal address
msg: "Invalid length"
});
if (vector.setRegister) {
var value;

@@ -668,2 +688,23 @@

}
} else if (vector.setRegisterArray) {
value = [];
for (i = 0; i < length; i++) {
cb = buildCb(i);
value.push(requestBuffer.readUInt16BE(7 + i * 2));
_handlePromiseOrValue(value, cb);
}
try {
if (vector.setRegisterArray.length === 6) {
vector.setRegisterArray(address, value, unitID, cb);
}
else {
vector.setRegisterArray(address, value, unitID);
}
}
catch (err) {
cb(err);
}
}

@@ -670,0 +711,0 @@ }

@@ -210,3 +210,8 @@ "use strict";

modbus._server = net.createServer();
modbus._server.listen(options.port || MODBUS_PORT, options.host || HOST);
modbus._server.listen({
port: options.port || MODBUS_PORT,
host: options.host || HOST
}, function() {
modbus.emit("initialized");
});

@@ -213,0 +218,0 @@ // create a server unit id

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc