以下の私のコードで何が問題になるか知っている人はいますか?
外部センサーにアクセスし、デバイスから読み取られているデータを表示できる 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);
}
デバイスから値を取得できない理由を誰かが説明できれば、あなたは絶対的な命の恩人になるでしょう.
どうもありがとうございました。