Skip to content

Instantly share code, notes, and snippets.

View morkai's full-sized avatar

Łukasz Walukiewicz morkai

View GitHub Profile
@morkai
morkai / bridge.js
Created June 3, 2017 15:00
Master <-=> Bridge <=-> Modem <-=> Slave
'use strict';
const {createServer} = require('net');
const externalServer = createServer();
const internalServer = createServer();
let externalClient = null;
let internalClient = null;
@morkai
morkai / client.js
Created March 30, 2017 08:31
MODBUS TCP Proxy
// Running on the PC with the 3G modem
var net = require('net');
var plcConn = net.connect(502, '192.168.1.10');
var pcConn = net.connect(3000, '123.123.123.123');
pcConn.on('connect', function()
{
plcConn.pipe(pcConn);
pcConn.pipe(plcConn);
@morkai
morkai / inode_lan_tcp_hangup.js
Created February 4, 2016 12:51
iNode LAN TCP hangup example
'use strict';
const INODE_LAN_HOST = process.argv[2] || '192.168.1.109';
connect();
function connect(socket)
{
if (socket)
{
@morkai
morkai / client.js
Last active January 13, 2016 21:26
node.js tcp client-server rps v8 vs chakracore
'use strict';
const net = require('net');
const client = net.connect(54321, process.argv[2] || '127.0.0.1');
let count = 0;
let total = 0;
client.on('data', function(data)
{
count++;
@morkai
morkai / pm2-restart.js
Created January 7, 2016 15:02
pm2 restart all
'use strict';
var exec = require('child_process').exec;
function restart(counter)
{
console.log('%d. pm2 restart all', counter);
exec('pm2 restart all', function(err, stdout, stderr)
{
@morkai
morkai / modbus-all-events.js
Created November 7, 2015 00:56
h5.modbus: log all events
var modbus = require('h5.modbus');
var MASTER_OPTIONS = {
// ...
};
var WRITE_ADDRESS = 321;
var WRITE_VALUE = new Buffer([0, 0, 0, 0]);
var WRITE_OPTIONS = {
// ...
};
@morkai
morkai / modbus-request-time.js
Created November 7, 2015 00:11
h5.modbus: log the connection's `write` and `data` events
// ...
var master = modbus.createMaster({
// ...
});
// ...
var lastWriteAt = 0;
var lastDataAt = 0;
@morkai
morkai / modbus-create-master.js
Created October 27, 2015 01:34
h5.modbus.createMaster()
var tcpOptions = {
type: 'tcp',
socket: socket, // require('net').Socket
host: '127.0.0.1',
port: 502,
autoConnect: true,
autoReconnect: true,
minConnectTime: 2500,
maxReconnectTime: 5000
};
@morkai
morkai / modbus-rtu-tcp.js
Last active October 2, 2015 10:14
h5.modbus RTU over TCP
'use strict';
var net = require('net');
var modbus; try { modbus = require('h5.modbus'); } catch (err) { modbus = require('../lib'); }
var INTERVAL = 1000;
var RESPONSE_TIMEOUT = 200; // Decrease this value until you get timeout errors.
var END_OF_FRAME_TIMEOUT = 100; // Decrease this value until you get incomplete/invalid response frame errors.
var DEVICE_ADDRESS = '127.0.0.1';
var DEVICE_UNITS = [1, 2, 3, 4];
C:\Workspace\pm2-stop>pm2 start test.js -f --name "test-0"
[PM2] Starting test.js in fork_mode (1 instance)
[PM2] Done.
┌──────────┬────┬──────┬───────┬────────┬─────────┬────────┬────────────┬──────────┐
│ App name │ id │ mode │ pid │ status │ restart │ uptime │ memory │ watching │
├──────────┼────┼──────┼───────┼────────┼─────────┼────────┼────────────┼──────────┤
│ test-0 │ 0 │ fork │ 53996 │ online │ 0 │ 0s │ 9.434 MB │ disabled │
└──────────┴────┴──────┴───────┴────────┴─────────┴────────┴────────────┴──────────┘
Use `pm2 show <id|name>` to get more details about an app