有谁知道我下面的代码会出现什么问题?
我正在尝试创建一个可以访问外部传感器并显示正在从设备读取的数据的 Android 应用程序。我设法取回了一个字节数组,但我不确定这如何转换为我希望读取的整数。
在创建 Android 应用程序之前,我决定先在 Windows 上创建一个 java 应用程序,以尝试更好地理解问题。
我觉得项目设置正确,我已经导入了 ftdichip.win32 和 ftdichip.ftd2xx 库,并且我认为我已经设法找到了设备。
但是,我无法读取我希望传感器收集的值。我不确定这是否与无符号字节有关?
我在下面包含了我的代码,我们将不胜感激任何可以提供的帮助。
import jd2xx.JD2XX;
以上是唯一必要的导入(据我了解?)
JD2XX jd = new JD2XX();
//list by Serial Number
Object[] devs = jd.listDevicesBySerialNumber();
for (int i = 0; i < devs.length; ++i) {
System.out.println(devs[i]);
}
//List by Description
devs = jd.listDevicesByDescription();
for (int i = 0; i < devs.length; ++i) {
System.out.println(devs[i]);
}
//List by location
devs = jd.listDevicesByLocation();
for (int i = 0; i < devs.length; ++i) {
System.out.println(
Integer.toHexString((Integer) devs[i]));
}
//open device
jd.open(0);
//configure the device
jd.setBaudRate(38400);
jd.setDataCharacteristics(
8, JD2XX.STOP_BITS_1, JD2XX.PARITY_NONE);
jd.setTimeouts(100, 100); //Set the time in ms between reads and writes (i think)
jd.setFlowControl(JD2XX.FLOW_NONE, 0, 0);
jd.setTimeouts(1000, 1000);
while (true) {
//try this
String msg = "So i can send it a message";
int ret = jd.write(msg.getBytes())
System.out.println(ret + "bytes sent.");
//read
int test = jd.read()
System.out.println("This is what is returned: " + test);
}
如果有人能解释我没有从设备中获得任何价值的原因,那么你绝对是救命稻草。
非常感谢。