@fadioit/canapi
v3.0.1-alpha
Published
Kvaser CanLib implementation for Node.js (Windows only).
Downloads
3
Keywords
Readme
Kvaser CanLib implementation for Node.js. Works on Windows only (mocked for MacOS and Linux).
Requirements
Install all the required tools and configurations using Microsoft's windows-build-tools. Open your terminal as an Administrator and type following
npm install -g [email protected]
.Install Kvaser Drivers for Windows.
Usage
First at all you need to create a CanApi
instance with the number of the channel, and the bitrate of can message.
bitrate default : canBITRATE_500k
.
const CanApi = require("canapi");
const myChannel = new CanApi(0, CanApi.bitRates.canBITRATE_500K);
.open()
Open the CAN channel.
Returns: bool
.close()
Closes the CAN channel.
Returns: bool
.sendMessage(identifier, data)
Send message to the CAN channel.
| Input param | Type | Description |
| ------------ | -------- | ----------------------------------------- |
| identifier
| number
| the identifier of the CAN message to send |
| data
| array
| the data buffer |
| dlc
| number
| the length of the message in bytes |
Returns: bool
Example:
myChannel.sendMessage(731, CanApi.createBuffer([180, 20, 180, 2]), 4);
.readMessage()
Read message from the CAN channel.
| Input param | Type | Description |
| ---------------- | -------- | -------------------------------------------------------------------------------- |
| Object.timeout
| number
| the number of milliseconds to wait for a message before returning (default: 0
) |
Returns: Object
| Output param | Type | Description |
| ------------------- | -------- | ----------------------------------------- |
| Object.identifier
| number
| the identifier of the CAN message to read |
| Object.data
| buffer
| the data buffer |
| Object.dlc
| number
| the length of the message in bytes |
Example:
const message = myChannel.readMessage({ timeout: 3000 });
console.log({
identifier: message.identifier,
data: Array.from(message.data),
dlc: message.dlc
});
Helpers
CanApi.createBuffer()
Allows you to create buffer from JavaScript array.
| Input param | Type | Description |
| ----------- | ------- | --------------- |
| data
| array
| the data buffer |
Returns: Uint8Array
Example:
CanApi.createBuffer([180, 20, 180, 2]);
CanApi.bitRates
List all of the bit rates.
| Name |
| ----------------- |
| canBITRATE_1M
|
| canBITRATE_500K
|
| canBITRATE_250K
|
| canBITRATE_125K
|
| canBITRATE_100K
|
| canBITRATE_62K
|
| canBITRATE_50K
|
| canBITRATE_83K
|
| canBITRATE_10K
|