canopen
Version:
CANopen implementation for Javascript
59 lines (46 loc) • 1.39 kB
JavaScript
const { Eds, ObjectType, DataType } = require('../../index');
const os = require('os');
const fs = require('fs');
/* eslint no-console: "off" */
/**
* EDS creation example.
*
* This example shows how to create a new electronic data sheet object, add
* entries, and save it to disk.
*
* @param {boolean} cleanup - if true, then remove the created file.
*/
function main(cleanup=false) {
// Create the Eds
let eds = new Eds({
fileName: 'example.eds',
description: 'An example EDS file',
createdBy: os.userInfo().username,
});
// Add objects manually ...
eds.addEntry(0x1016, {
parameterName: 'Consumer heartbeat time',
objectType: ObjectType.ARRAY
});
eds.addSubEntry(0x1016, 1, {
parameterName: 'Heartbeat consumer 1',
dataType: DataType.UNSIGNED32,
defaultValue: (0x3 << 16) | 10, // deviceId: 0x3, timeout: 10
});
// ... or use the helper methods
eds.addHeartbeatConsumer(0x4, 10, {
parameterName: 'Heartbeat consumer 2',
saveDefault: true,
});
// Write to disk.
eds.save('example.eds');
// Load from disk
eds = Eds.fromFile('example.eds');
console.log(eds.getHeartbeatConsumers());
if(cleanup)
fs.rmSync('example.eds');
}
module.exports = exports = main;
if (require.main === module)
main();