台灣最大程式設計社群網站
線上人數
507
 
會員總數:245463
討論主題:189220
歡迎您免費加入會員
討論區列表 >> Java >> java comport 一問
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
java comport 一問
價值 : 10 QP  點閱數:853 回應數:3

樓主

Fate
門外漢
0 3
42 1
發送站內信

http://rxtx.qbang.org/wiki/index.php/Event_based_two_way_Communication

我根據以上網址試著做利用Arduino傳值 經過comport由java接收

然後在印出程式碼部分
public void serialEvent(SerialPortEvent arg0) {
int data;

try
{
int len = 0;
while ( ( data = in.read()) > -1 )
{
if ( data == '\n' ) {
break;
}
buffer[len++] = (byte) data;
}
System.out.print(new String(buffer,0,len));
}
catch ( IOException e )
{
e.printStackTrace();
System.exit(-1);
}
}

我Arduino只傳送Hello這一個字串

System.out.print(new String(buffer,0,len));
在JAVA印出是Hello 沒錯
但我想在這邊加入if判斷式

if("Hello".equals(new String(buffer,0,len))){
System.out.print("有值喔");
}
但是他卻不會執行if判斷式

我把它改成判斷他不是空字串卻可以
if(!"".equals(new String(buffer,0,len))){
System.out.print("有值喔");
}

本篇文章發表於2015-04-09 22:57
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

Overing
檢舉此回應
System.out.println(java.util.Arrays.toString(java.util.Arrays.copyOf(buffer, len)));
一個個 byte 去觀察內容?
本篇文章回覆於2015-04-10 02:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

Fate
檢舉此回應
[72, 101, 108, 108, 111, 13]
在一個一個去看時發現他後面還多有一個回車鍵

加上回車鍵後就可以了



本篇文章回覆於2015-04-10 14:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

Raymond
檢舉此回應
你應該用 String class 的 startsWith():
本篇文章回覆於2015-04-13 10:28
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.