我创建了一个 JavaFX 应用程序来从 FTDI 外围设备检索数据。我使用 JNAerator 生成 API,一切都在我的开发机器 (OS X) 上运行良好。但是,当在同事的盒子 (Windows) 上进行测试时,BirdJ Pointer.getBytes() 方法返回字节数组,其中每个值正好相差 128。
Java 中是否存在已知的平台差异或其他东西可以解释这种不一致的行为,或者这更可能是本机 FTDI 驱动程序中的问题?
有没有比引入丑陋的平台特定逻辑来修改读取或写入的每个字节更简洁的方法来解决它?
编辑
我不确定我的问题描述是否清楚。这是一个具体的例子。
我从 FTDI 设备请求 3 个字节以确认它已准备好发送数据。我得到 [-91, -1, -1] 与文档中说期望“A5 FF FF”相匹配。我的代码是为了接受这个答案而编写的,一切都进行得很好。
我的同事得到 [37, 127, 127] ,即“25 7F 7F”。由于这不是预期值,因此我的代码会报告错误并退出。