0

java的javax.comm库是否支持“9位”串行通信?(使用奇偶校验位或“地址位”作为帧信息的带外信令机制)

win32 通信 API 是否支持它?

我猜这两个方面的答案都是否定的,但我想有人比我有更多的经验。

4

3 回答 3

1

据我所知,win32 comm API 不支持这个。

但是,您可以使用各种奇偶校验模式对其进行模拟。

设置MARKPARITY会将第 9 位设置为1

设置SPACEPARITY会将第 9 位设置为0

我不能说这个库的 java 版本,但我确信它支持设置奇偶校验模式,所以你可以执行上述操作并获得第 9 位。

于 2009-12-11T22:29:47.067 回答
0

您应该遵循这个Seeking FOSS 串行端口组件,它可以处理 9 个数据位
您的主要问题将是根本处理 9 位,因为当 windows api 无法处理它时,java 应该如何解决这个问题?

Bt 有专业的卡/驱动程序来解决这个问题(见链接)

于 2013-03-03T09:02:15.977 回答
0

我想评论karoberts 的答案,但我缺乏声誉。所以我必须“回答”。

如果我们需要一个软件解决方案来解决我们的问题, karoberts提出了一个好方法(JCS 引用,几乎,不是吗?))

但是可能会引起我今天遇到的一种情况,Python (2.7) 试图做同样的事情:我的 PC 拒绝接受 PARITY_MARK 和 PARITY_SPACE 作为配置我的 /dev/ttyS5 的选项。所以我在 Stack Overflow 中搜索了可以做什么 - 并遇到了这个话题......

我在那个(封闭的)问题中找到了答案,jeb在下一个答案中告诉我们。Tincho指出一篇文章建议根据 2 个因素为每个字节设置 EVEN 或 ODD 奇偶校验:这是否是地址字节以及它的位的奇偶校验和是多少。我检查了解决方案,它运行良好。

于 2015-03-28T23:05:36.580 回答