1

我正在尝试编写一个 Xojo 应用程序来与通过 USB/串行适配器连接到我的 Mac 的设备(ZVT-ECash 终端)进行通信。

我正在 OS X 和 Windows 7(在 Parallels 下运行)上测试我的应用程序。在这两种情况下,我都通过 Serial.Write 以某种方式发送一个字符串(总是相同的):

command = chrb(&h10) + chrb(&h02) + chrb(&h06) + chrb(&h00) +chrb(4)...
Serial1.Write(command)

Serial1 是串行控件的一个实例。

当我在 Windows 上运行我的应用程序时,该字符串被设备确认为有效命令,并且在 OS X 上未被确认(设备以 NAK 应答)。

在 OS XI 上,还尝试使用 CoolTerm 手动发送相同的字符串,但也没有得到确认。

我究竟做错了什么?Xojo 中的串行控制是否有问题,和/或串行端口在 Win 和 OS X 下的工作方式是否存在一些普遍差异?

4

1 回答 1

1

我最近也遇到了类似的问题。原来它与 Xojo 无关(尽管 CoolTerm 也是用 Xojo 编写的)。

问题出在使用“2303”Prolific 芯片的适配器的 OS X 驱动程序上。我发现 Prolific 的驱动程序和开源版本(osx.pl2303)都有问题:前者并不总是正确设置波特率,而后者没有正确处理硬件握手。我的解决方案是从https://www.mac-usb-serial.com购买驱动程序——它是唯一一个在 OS X 上为我工作的驱动程序,带有两个不同的基于 2303 的适配器。

于 2015-06-11T14:03:22.597 回答