Fix bindings to libmodbus 3.1.4.
This is binding to native library libmodbus (http://libmodbus.org/).
Now working only in *nix system.
Module have native function and framework.
var log = console.log;
var mb = require('modbus').create();
// create device memory map
var data = mb.createData({ countReg: 5, countBit: 2 });
data.setReg(2, 321);
data.setBit(1, true);
data.dumpData(); // show memory map
// create slave device
var ctx = mb.createSlave({
// connection type and params
con: mb.createConTcp('127.0.0.1', 1502),
//con: mb.createConRtu(1, '/dev/ttyS0', 9600),
// data map
data: data,
// callback functions
onQuery: function () {
log('onQuery', mb.query());
//ctx.dumpData();
log(ctx.getBits(0, 2));
},
onDestroy: function () {
log('onDestroy');
}
});
// destroy device
//setTimeout(function () {
// ctx.destroy();
//}, 5000);
var log = console.log;
//var mb = require('modbus').create(true); // enable debug output
var mb = require('modbus').create();
mb.onError(function (msg) {
log('ERROR', msg);
});
// create master device
var ctx = mb.createMaster({
// connection type and params
con: mb.createConTcp('127.0.0.1', 1502),
//con: mb.createConRtu(1, '/dev/ttyS1', 9600),
// callback functions
onConnect: function () {
log('onConnect');
log(ctx.getReg(2));
ctx.setBit(1, false);
ctx.destroy();
},
onDestroy: function () {
log('onDestroy');
}
});
WARNING: native function blocking all processes!
var log = console.log;
var native = require('modbus').native;
// create context
var ctx = native.new_tcp("127.0.0.1", 1502);
// connect to slave device
native.connect(ctx);
// get value
var result = [];
native.read_registers(ctx, 2, 1, result);
log(result[0]);
// set value
native.write_bit(ctx, 1, native.OFF);
// close context
native.close(ctx);
native.free(ctx);
Create data map (use only slave device).
arg[Object] - having next fields:
getBit(adr) - get read/write bit value
getInputBit(adr) - get read only bit value
getReg(adr) - get read/write register value
getInputReg(adr) - get read only register value
getBits(adr, count) - get read/write bits array value
getInputBits(adr, count) - get read only bits array value
getRegs(adr, count) - get read/write registers array value
getInputRegs(adr, count) - get read only registers array value
setBit(adr, val) - set read/write bit value
setInputBit(adr, val) - set read only bit value
setReg(adr, val) - set read/write register value
setInputReg(adr, val) - set read only register value
setBits(adr, val) - set read/write bits array value
setInputBits(adr, val) - set read only bits array value
setRegs(adr, val) - set read/write registers array value
setInputRegs(adr, val) - set read only registers array value
dumpData() - show memory dump
Create connection object for tcp connection.
Create connection object for serial port connection.
Create slave modbus device
arg[Object] - having next fields:
destroy() - destroyed slave device
and all data object api
Create master modbus device
destroy() - destroyed slave device
and all data object api without setInput*