OSX和Windows的字节数据类型是否存在差异

时间:2012-12-17 20:34:37

标签: java arrays

我正在使用声明为:

的字节数组的数据类型
byte[] sendbuf= new byte[64];

稍后,我打电话给:

dev.write(sendbuf);  // see class code below for this

任何人都可以告诉我为什么在OSX 10.7.5下一切正常但在Windows XP下我得到一个异常“参数不正确”?两个操作系统之间的数据类型是否存在差异?

HIDDevice.class是:

public native int write(byte[] data) throws IOException;

/**
 * Read an Input Report to a HID device.
 *
 * @param buf a buffer to put the read data into
 * @return the actual number of bytes read 
 * @throws IOException if read error occured
 */

这是错误:

java.io.IOException: The parameter is incorrect.
    at com.codeminders.hidapi.HIDDevice.write(Native Method)
    at HIDTesting2.hidData.run(hidData.java:96)

1 个答案:

答案 0 :(得分:0)

我应该更好地阅读hidapi API的说明。 " data []的第一个字节必须包含报告ID。对于仅支持单个报告的设备,必须将其设置为0x0。"在我的防御中,它在我的OSX 10.7.5环境中没有这个功能就好了。我的Arduino设备得到了很好的消息,我能够从第一个元素byte [0]处理byte []数组。然而,当我在我的XP计算机上运行.jar时,HID接口正在寻找0x0第一个字节。我需要做的就是更改代码以将其作为缓冲区的第一个字节传递,并且Windows和Mac都认为写入请求正常。