node-can
This is a NodeJS SocketCAN extension. SocketCAN is a socket-based implementation of the CANbus protocol for Linux system.
This extensions makes it possible to send and receive CAN messages (extended, remote transission) using simple Javascript functions.
Usage
Basic CAN example:
var can = require('socketcan');
var channel = can.createRawChannel("vcan0", true);
channel.addListener("onMessage", function(msg) { console.log(msg); } );
channel.addListener("onMessage", channel.send, channel);
channel.start();
Working with message and signals:
var can = require('socketcan');
var fs = require('fs');
var network = can.parseNetworkDescription("samples/can_definition_sample.kcd");
var channel = can.createRawChannel("vcan0");
var db = new can.DatabaseService(channel, network.buses["Motor"]);
channel.start();
db.messages["CruiseControlStatus"].signals["SpeedKm"].onChange(function(s) {
console.log("SpeedKm " + s.value);
});
db.messages["TankController"].signals["TankTemperature"].update(80);
db.send("TankController");
Install
There are two options for installing node-can:
- Clone / download node-can from GitHub,
then:
$ npm i
$ npm run configure
$ npm run build
- Install via npm:
$ npm install socketcan