UNPKG

modbus-connect

Version:

Modbus RTU over Web Serial and Node.js SerialPort

57 lines (50 loc) 1.76 kB
// test-node.js const ModbusClient = require('./client.js'); const { createTransport } = require('./transport/factory.js'); const logger = require('./logger.js'); const PollingManager = require('./polling-manager.js'); const poll = new PollingManager() const log = logger.createLogger('main'); async function main() { const transport = await createTransport('node', { port: 'COM4', baudRate: 9600, parity: 'none', dataBits: 8, stopBits: 1, // writeTimeout: 500, // readTimeout: 500 }); const client = new ModbusClient(transport, 1, { timeout: 1000, crcAlgorithm: 'crc16Modbus', retryCount: 3, // Кол-во попыток повтора запроса retryDelay: 300, // Задержка между повторами }); await client.connect(); // Define a polling task poll.addTask({ id: 'read-sensors', // Task name resourceId: 'test', // Stream name priority: 1, // Priority: method in queue (0...Infinity) interval: 1000, fn: [ async () => await client.readHoldingRegisters(0, 10) ], onData: (data) => { console.log(JSON.stringify(data)) }, onError: async (error, index, attempt) => { console.log(error) }, onStart: () => console.log('Polling measure data started'), onStop: () => console.log('Polling measure data stopped'), maxRetries: 3, backoffDelay: 300, taskTimeout: 1000 }) poll.startTask('read-sensors'); } main().catch(err => { console.error('Fatal error in main:', err); });