我有一个非常简单的脚本,只有可用的串口,然后连接到一个,写一个字符并将响应放在控制台上.代码在这里
在我的脚本目录中,我做了:
#npm install serialport
#npm list
/home/uminded/Programming/nodeJS/test
??? serialport@1.0.8
??? async@0.1.18
etc...
#node test.js
spits out entire serialport.js to command line then...
has no method 'list'
at Object.<anonymous> (/home/uminded/Programming/nodeJS/test/test.js:4:12)
at Module._compile (module.js:449:26)
at Object.Module._extensions..js (module.js:467:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Module.runMain (module.js:492:10)
at process.startup.processNextTick.process._tickCallback (node.js:244:9)
Run Code Online (Sandbox Code Playgroud)
serialport.js脚本确实有一个导出SerialPort.list为什么它找不到它?
你们用什么程序来编写和调试节点相关的js?
我正在使用 Quasar、Electron 和串行端口设置一个测试项目。使用最少的串行端口测试启动应用程序时,出现以下错误:
vue-router.esm.js?85f8:2128 TypeError: Cannot read property 'indexOf' of undefined
at Function.getFileName (bindings.js?d8c5:178)
at bindings (bindings.js?d8c5:82)
at eval (win32.js?0965:1)
at Object../node_modules/@serialport/bindings/lib/win32.js (vendor.js:340)
at __webpack_require__ (app.js:854)
at fn (app.js:151)
at eval (index.js?3983:6)
at Object../node_modules/@serialport/bindings/lib/index.js (vendor.js:252)
at __webpack_require__ (app.js:854)
at fn (app.js:151)
Run Code Online (Sandbox Code Playgroud)
当我只包含 serialport 包而不做更多时,甚至会发生错误。这似乎是一个基本问题。重现问题的代码:
<script lang="ts">
import { Vue, Component } from 'vue-property-decorator';
import SerialPort from 'serialport';
@Component
export default class Index extends Vue {
test() {
console.log('test', SerialPort);
}
}
</script>
Run Code Online (Sandbox Code Playgroud)
我尝试了我能在这里找到的所有东西,在类星体论坛等。 pp.: electron-rebuild,试图将串行端口配置为外部依赖项,......
我不太确定重建过程是否按预期工作,但我不知道要检查什么以确保它确实如此。带有串行端口的电子示例项目对我有用。也许它与类星体有关?
我可以获得有关重建过程的更多信息吗?我尝试了指定版本的不同组合,但没有任何帮助。
我也在串行端口存储库中提出了这个问题,但是将它添加到 …
我尝试创建一个端口数组,使用nodeJS的serialport模块将串行设备连接到该数组。我使用了以下代码,我认为理论上应该有效:
var getPortsList = (callback) => {
var portsList = [];
SerialPort.list((err, ports) => {
ports.forEach((port) => {
portsList.push(port.comName);
});
callback(null, portsList);
});
};
Run Code Online (Sandbox Code Playgroud)
每当我执行它时,我都会收到以下错误:TypeError: SerialPort.list is not a function。你试图用谷歌搜索这个问题,但找不到任何有用的东西。非常感谢任何方式的帮助。
我构建了一个函数,通过SerialPort包中给出的数组检查端口是否存在。
端口已连接。当我在函数外部运行代码时,它可以工作(true当端口插入时)。当我尝试在函数内运行它时,我收到了undefined
function exists(portName) {
SerialPort.list(function (err, ports) {
ports.forEach(function (port) {
console.log(port.comName);
if (port.comName == portName) {
return true
}
});
});
}
console.log(exists('COM7'));
Run Code Online (Sandbox Code Playgroud)
结果:
NodeJS service has started.
undefined
COM1
COM7
Port is connected.
Run Code Online (Sandbox Code Playgroud)
完整代码位于: https: //github.com/eshk12/SerialPort-HTTP-Server/blob/master/routes/index.js
谢谢!
目标
我需要通过串行端口获取一批命令的数据,例如
写入串行:“命令”
来自串行接收器的预期响应:十六进制值
我使用了串口 包。
串行.js
var serialport = require('serialport');
var Readline = serialport.parsers.Readline; // make instance of Readline parser
var parser = new Readline(); // make a new parser to read ASCII lines
// list serial ports:
serialport.list(function (err, ports) {
ports.forEach(function (port) {
console.log("Serial Device: " + port.comName);
});
});
// get port name from the command line:
var path = '/dev/cu.SLAB_USBtoUART' ;
var myPort = new serialport(path ,{
baudRate: 230400,
});
// Read …Run Code Online (Sandbox Code Playgroud) 我有一个node项目,在ubuntu的docker容器中运行,主机也是ubuntu。
在我的节点项目(用打字稿编写)中,我尝试使用 npm 串行端口库。
https://www.npmjs.com/package/serialport
我有以下几行:
include * as serialport from 'serialport'
// further down
serialport.list((err, list) => {
// after checking for errors
console.log(list);
});
Run Code Online (Sandbox Code Playgroud)
现在,如果我在主机上运行此代码,我会得到包含大量信息的结果列表。例如,对于一台设备:
{ manufacturer: 'Prolific Technology Inc.',
serialNumber: undefined,
pnpId: 'usb-Prolific_Technology_Inc._USB-Serial_Controller-if00-port0',
locationId: undefined,
vendorId: '067b',
productId: '2303',
comName: '/dev/ttyUSB0' }
Run Code Online (Sandbox Code Playgroud)
但是当我在 docker 容器中运行相同的代码时,我得到以下结果:
{ manufacturer: undefined,
serialNumber: undefined,
pnpId: undefined,
locationId: undefined,
vendorId: undefined,
productId: undefined,
comName: '/dev/ttyUSB0' }
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,大多数信息返回为未定义。
这样做可以为 docker 容器提供特权状态和对 /dev 卷的访问权限。例如在 docker-compose 中
myapp:
image: myappimage
ports: 8999:8999
volumes:
- /dev:/dev …Run Code Online (Sandbox Code Playgroud) 我打算使用Node.js进行串行通信的POC.我用Google搜索并找到了Node.js的"serialport"模块.我有一个C#代码,它以数据byte类型将数据写入串口.我想尝试使用Node.js.C#代码在byte[]数组中具有以下值:
5, 170, 85, 250, 0, 86, 0, 3, 158, 0
Run Code Online (Sandbox Code Playgroud)
有谁能告诉我如何使用Node.js的串口模块实现这一目标?