A controller library for event-based communication between client and CNCjs server
npm install --save cncjs-controller@1.x
npm install --save socket.io-client
import io from 'socket.io-client';
import Controller from 'cncjs-controller';
const controller = new Controller(io);
const host = ''; // e.g. http://127.0.0.1:8000
const token = '<security-token>';
const options = {
query: 'token=' + token
};
controller.connect(host, options, () => {
const port = '/dev/cu.wchusbserialfa130';
controller.openPort(port, {
controllerType: 'Grbl', // Grbl|Smoothie|TinyG
baudrate: 115200
}, (err) => {
if (err) {
console.error(err);
return;
}
controller.writeln('$$'); // View Grbl Settings
});
// Disconnect after 60 seconds
setTimeout(() => {
// Close port
controller.closePort();
// Close connection
controller.disconnect();
}, 60 * 1000);
});
controller.addListener('serialport:open', (options) => {
const {
port,
baudrate,
controllerType
} = options;
console.log(`Connected to the port "${port}" with a baud rate of ${baudrate}.`, { port, baudrate });
});
controller.addListener('serialport:close', (options) => {
const { port } = options;
console.log(`The port "${port}" is disconnected.`);
});
controller.addListener('serialport:write', (data, context) => {
console.log('>', data);
});
controller.addListener('serialport:read', (data) => {
console.log('<', data);
});
MIT