gpt4 book ai didi

node.js - 在各种事件下自动打开串口并记录数据

转载 作者:太空宇宙 更新时间:2023-11-04 01:18:56 25 4
gpt4 key购买 nike

我正在使用 COM3 端口,并且使用串行端口模块从串行端口读取数据。我想要的是一个自动日志系统,它可以在以下事件下记录来自串行端口的数据。

1.关闭程序并重新打开程序

2.重新启动我的电脑

3.拔下 USB 电缆并重新插入

4.重启Arduino设备

我想在发生上述事件时自动打开串行端口并记录从串行端口接收的数据。如何处理这些情况。

目前,这是我正在使用的代码

var fs = require('fs');

const SerialPort = require('serialport')
const Readline = require('@serialport/parser-readline')
const port = new SerialPort('COM3')
const parser = new Readline()
port.pipe(parser)
parser.on('data', function (data) {

const index = data.indexOf('*#SENSOR_DATA')

if(index != -1){

fs.appendFileSync("sensor_data.txt", new Date(), 'utf8')
fs.appendFileSync("sensor_data.txt", data, 'utf8')

}

})

port.on('error', function(err) {
fs.appendFileSync("sensor_data.txt", new Date(), 'utf8')
fs.appendFileSync("sensor_data.txt", err, 'utf8')
console.log(err);
})

port.write('ROBOT PLEASE RESPOND\n')

我该如何处理上述情况?

最佳答案

关闭程序并重新打开程序

在程序启动时从端口记录数据应该是直接的,即脚本的运行。

程序的关闭,取决于您想要处理的场景,程序的正常退出或非正常退出。要实现这一点,您可以在 nodeJS process 上添加事件监听器目的。您可以在进程将退出以执行某些操作时注册事件处理程序。

process.on('SIGINT', () => {
// read my data from Serial
process.exit(-1);
})

重新启动我的电脑

根据您的操作系统,您可以将 NodeJS 进程配置为服务,也可以通过 cron 运行它。例如,cron(取决于操作系统)可以选择在 reboot 上调度作业。 。无论您使用哪种操作系统,您都可以安排作业或创建服务,以确保您的进程在计算机重新启动时启动。

拔下 USB 电缆并重新插入 &重启Arduino设备

为此,我将查看可用于串行端口的不同解析器。例如ReadyParser .

关于node.js - 在各种事件下自动打开串口并记录数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59973580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com