我正在使用http://www.ftdichip.com/Android.htm的官方驱动程序
03-20 13:37:52.359:warn/ftdi(4453):读取开始
03-20 13:37:52.359:warn/ftdi(4453):6字节可用
03-20 13:37:57.960:警告/ftdi(4453):读取0字节
03-20 13:37:57.960:warn/ftdi(4453):读取完成
其源代码很简单:
public int read(byte[] buffer, int timeout) throws IOException {
Log.w(TAG, "read starting");
try {
Log.w(TAG, device.getQueueStatus() + " bytes available");
int read = device.read(buffer);
Log.w(TAG, read + " bytes read");
return read;
} finally {
Log.w(TAG, "read finished");
}
}
他们的支持部门一周后也没有回复我。我在android 4.0.4上,有一个基于arduino duemilanove ftdi的板。
最佳答案
是的,我做到了。
要读取传入数据,必须遵循以下操作:
打开后调用restartintask()
读取前获取可用的输入字节
只读(如果可用字节数>0)
工作代码段:
public int read(byte[] buffer, int timeout) throws IOException {
params.setReadTimeout(timeout);
Log.w(TAG, "read starting");
try {
int available = device.getQueueStatus();
Log.w(TAG, available + " bytes available");
if (available <= 0)
return 0;
int read = device.read(buffer, available, timeout);
Log.w(TAG, read + " bytes read");
return read;
} finally {
Log.w(TAG, "read finished");
}
}
关于android - 官方FTDI android驱动程序read()无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15518214/