我目前正在从事一个涉及 4 端口 A/V 开关的项目。此开关可通过 RS-232 控制。
与交换机接口的计算机运行 Vista。我想创建一个侧边栏小工具,它有 4 个按钮 - 交换机上的每个端口 1 个。当用户按下按钮时,它会切换到该端口。
我做了一些谷歌搜索,似乎没有一种很好的方式来在 javascript 和 rs-232 之间进行接口。
有人对我有什么建议吗?
谢谢!
我目前正在从事一个涉及 4 端口 A/V 开关的项目。此开关可通过 RS-232 控制。
与交换机接口的计算机运行 Vista。我想创建一个侧边栏小工具,它有 4 个按钮 - 交换机上的每个端口 1 个。当用户按下按钮时,它会切换到该端口。
我做了一些谷歌搜索,似乎没有一种很好的方式来在 javascript 和 rs-232 之间进行接口。
有人对我有什么建议吗?
谢谢!
你喜欢复杂的黑客吗?
安装网络服务器。使用 CGI、Python、PHP、Perl 或其他方法从 Web 服务器上的页面控制串行端口。
将控件指向网页。
我认为您需要在两者之间添加一个 Java 或 Active-X 层。JavaScript 与操作系统很好地隔离(故意)。
特别是 Javascript,或者只是通过某种方法从浏览器中获取?和哪个浏览器?(IE 还是 Firefox?)使用 XUL + javascript 的 Firefox 插件非常简单,尽管您仍然需要在 XPCOM(Mozilla 等效于 ActiveX/COM)中实现某些东西才能使用 RS232。
或者,您可以将JSDB用作临时 Web 服务器(在本地机器的备用端口上)。在 JSDB 中使用 RS232 端口非常容易:
c:\>jsdb
js>S=new Stream('com1://115200');
com1
js>S.write('\x00'); // send ASCII character 0 to the serial port
1
js>
因此,您的浏览器端实现可能只是您最喜欢的书签/链接/事物是链接到http://localhost:9999/comport/1
9999 是 JSDB 正在侦听的端口的位置,而“1”是串行端口开关。JSDB 代码将监听端口并在解析来自浏览器的 GET 请求后发送适当的 RS232 命令。
RealTerm具有广泛的 COM 接口,并且易于通过 Windows 上的 JavaScript 进行控制。SourceForge 下载页面的版本为 2.0.0.57,i2cchip.com 的版本为 2.0.0.70。
默认安装的“examples”子目录中有一个 JavaScript 示例。
可悲的是,JavaScript 示例似乎已从更高版本中删除4仍然可以这样做,但没有示例。
我没有解决方案,但这可能是一个开始。
现在,如果您在自己的机器上运行 javascript,您可以使用HTA来完全访问系统。
很抱歉在我自己的问题下发帖——我还没有注册,所以现在我无法编辑它。
我想为该任务实现一个 Vista 侧边栏小工具。不幸的是,看起来这些基本上只是带有 javascript 的 html 文档,所以看起来这对我来说不是一个好的解决方案。我可能只写一点.Net 应用程序之类的。
感谢您的所有意见。如果还有人有想法,我会采纳的。
您可以尝试查看 V8 之类的内容,并为 C 库编写一个小型包装器以向 VM 公开。
您需要在系统上安装一个 RS-232 ActiveX 组件,然后在侧边栏小部件的 javascript 代码中创建一个对象。请注意,从 ActiveX 组件创建对象没有标准,这仅在 JScript 中可用,JScript 是微软对我们都知道的 Javascript 语言的实现。
AFAIK,Vista 小工具的运行时支持使用签名的 ActiveX 控件。您也可以使用 Java。您可以为 .Net 创建一个 ActiveX 包装器,它对串行设备有相当多的支持。大多数情况下,ActiveX + Serial 通信仅限于商业控制。