skljdf85789^& ^eeb などの文字が含まれるシリアル ポートを読み取っています。ハイパー ターミナルでは、通常の文字でポートを確認できます。さて、java、eclipse を使用してそれを読んでいると、コンソールに skljdf85789^& ^eeb などの smt が表示されるはずです。代わりに、頻繁に長方形のシーケンスが表示されます。互換性のないタイプの問題だと思います。私はこれらを試しました:
public void serialEvent(SerialPortEvent arg0) {
int data;
switch (arg0.getEventType()) {
case SerialPortEvent.DATA_AVAILABLE:
try {
int len = 0;
int bet=0;
while ((data = in.read()) > -1) {
if (data == ' '||data == ' ' ){
break;
}
buffer[len++] = (byte) data;
}// it writes to a buffer from the port
String meterbuf = new String(buffer, 0, len);//buffer is a byte array, it casted to String here.
System.out.println("string from m485: " + meterbuf);
for(int k=0;k<meterbuf.length();k++)
{
char c=meterbuf.charAt(k);
System.out.print(Character.valueOf(c)+" ");
}// I tried to get chars one by one, it did not work, too.
何か提案はありますか?前もって感謝します。