rclnodejs
Version:
ROS2.0 JavaScript client with Node.js
37 lines (27 loc) • 826 B
JavaScript
// Publisher for repro test - runs in separate process
;
const rclnodejs = require('./index.js');
const PUBLISH_HZ = parseInt(process.argv[2] || '100');
async function main() {
await rclnodejs.init();
const node = new rclnodejs.Node('test_publisher_node');
const publisher = node.createPublisher(
'std_msgs/msg/Float64MultiArray',
'/test_hz_topic'
);
node.spin();
let pubCount = 0;
console.log(`Publishing at ${PUBLISH_HZ} Hz...`);
const pubInterval = setInterval(() => {
publisher.publish({ data: [1.0, 2.0, 3.0] });
pubCount++;
}, 1000 / PUBLISH_HZ);
setTimeout(() => {
clearInterval(pubInterval);
console.log(`Published ${pubCount} messages total`);
node.stop();
rclnodejs.shutdown();
process.exit(0);
}, 15000);
}
main().catch(console.error);