JavaScript 的串行通信?
是否可以通过 JavaScript 通过机器的串行端口进行通信?
我必须编写一个简短的程序,通过具有 GUI 且跨平台兼容的串行端口将数据发送到微控制器,而且我真的不想使用 Java 的 Swing。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
是否可以通过 JavaScript 通过机器的串行端口进行通信?
我必须编写一个简短的程序,通过具有 GUI 且跨平台兼容的串行端口将数据发送到微控制器,而且我真的不想使用 Java 的 Swing。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(6)
JavaScript 本身没有任何内置功能来允许您访问串行端口。然而,各种 JavaScript 引擎(v8、rhino 等)允许您编写自己的自定义本机对象。
您可能想查看node.js,它是 v8 的 JavaScript 库,专注于编写服务器端代码(而不是 Web 浏览器客户端代码)。似乎有人已经为此编写了一个串行端口包:
https://github.com/voodootikigod/node-serialport
JavaScript itself doesn't have any built in functionality to allow you to access the serial port. However, various JavaScript engines (v8, rhino, etc) allow you to write your own custom native objects.
You might want to check out node.js, which is a JavaScript library for v8 that's focused on writing server-side code (rather than web browser client code). It seems that someone's already written a serialport package for that:
https://github.com/voodootikigod/node-serialport
这是一个老问题,但如果这对其他人有帮助,Chrome 应用程序可以访问串行 API - http://developer.chrome.com/apps/serial.html - 这可能会有所帮助。
它是 Chrome 特定的(显然......),但 Chrome 是跨平台可用的,所以可能会回答这个问题。
This is an old question, but in case this helps anyone else, Chrome Apps have access to a serial API - http://developer.chrome.com/apps/serial.html - which might help.
It's Chrome specific (obviously..), but Chrome is available cross-platform so might answer the question.
有一个用于串行端口通信的跨平台插件,名为 jUART。
There's a cross platform plugin for serial port communication called jUART.
是的,可以使用 ActiveX(我做到了)。您可以创建一个 activeX 并使用 JavaScript 来调用它。
如果您愿意,可以创建一个 .net dll 并使用 regasm 注册它。看一下这个链接
您还可以使用VB6编写一个activeX并注册它。两者都工作正常。
注:如果您使用 ActiveX,JavaScript 代码将仅在 IE 上运行。
Yes, it's possible using an ActiveX(I did it). You can make an activeX and use JavaScript to invoke it.
If you prefer, you can make a .net dll and register it using regasm. Take a look at this link
You also can write an activeX using VB6 and register it. Both works fine.
Ps.: if you are using ActiveX, the JavaScript code will run just on IE.
如果您有一个 DLL 库(包括大多数 Windows API),允许您通过串行端口进行通信,您可以使用 ctypes。
If you have a DLL library (this includes e.g. most Windows APIs) that allows you to communicate over serial port you can invoke it from Firefox chrome code (or content code with universalxpconnect privileges) by using ctypes.
您可以做的是使用一个 Java 小程序连接到本地计算机的 Java 应用程序来读取串行端口。然后,小程序会将数据传输到 JavaScript 类或可以保存信息的东西。然后可以使用额外的 JavaScript 代码来访问数据。这是一个复杂的解决方案,但应该可行。
另一种方法是创建 POJO 服务。
What you could do is to use a Java applet that connects to the local computer's Java application that reads the serial port. The applet would then transfer the data to a JavaScript class or something that can hold the information. Then additional JavaScript code can be used to access the data. It's a complicated solution but should work.
Another way is to create a POJO service.