java的javax.comm
库是否支持“9位”串行通信?(使用奇偶校验位或“地址位”作为帧信息的带外信令机制)
win32 通信 API 是否支持它?
我猜这两个方面的答案都是否定的,但我想有人比我有更多的经验。
java的javax.comm
库是否支持“9位”串行通信?(使用奇偶校验位或“地址位”作为帧信息的带外信令机制)
win32 通信 API 是否支持它?
我猜这两个方面的答案都是否定的,但我想有人比我有更多的经验。
据我所知,win32 comm API 不支持这个。
但是,您可以使用各种奇偶校验模式对其进行模拟。
设置MARKPARITY
会将第 9 位设置为1
设置SPACEPARITY
会将第 9 位设置为0
我不能说这个库的 java 版本,但我确信它支持设置奇偶校验模式,所以你可以执行上述操作并获得第 9 位。
您应该遵循这个Seeking FOSS 串行端口组件,它可以处理 9 个数据位。
您的主要问题将是根本处理 9 位,因为当 windows api 无法处理它时,java 应该如何解决这个问题?
Bt 有专业的卡/驱动程序来解决这个问题(见链接)
我想评论karoberts 的答案,但我缺乏声誉。所以我必须“回答”。
如果我们需要一个软件解决方案来解决我们的问题, karoberts提出了一个好方法(JCS 引用,几乎,不是吗?))
但是可能会引起我今天遇到的一种情况,Python (2.7) 试图做同样的事情:我的 PC 拒绝接受 PARITY_MARK 和 PARITY_SPACE 作为配置我的 /dev/ttyS5 的选项。所以我在 Stack Overflow 中搜索了可以做什么 - 并遇到了这个话题......
我在那个(封闭的)问题中找到了答案,jeb在下一个答案中告诉我们。Tincho指出一篇文章建议根据 2 个因素为每个字节设置 EVEN 或 ODD 奇偶校验:这是否是地址字节以及它的位的奇偶校验和是多少。我检查了解决方案,它运行良好。