大家好,这是我在这个网站上的第一个主题;抱歉我的英语不好我不是母语为英语的人
所以我想将从嵌入式卡收到的数据保存到数组中
这是我的功能
public void serialEvent(SerialPortEvent evt) {
if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE)
{
System.out.println("Data available event received");
try
{
byte singleData = (byte)input.read();
if (singleData >= Debut_caracter)
{
System.out.println("Reçu : "+singleData);
logText =new String(new byte[] {singleData});
window.txtLog.append(logText);
System.out.println("le LogText est : "+logText+"\n");
}
else {
window.txtLog.append(" ");
}
if (singleData < 0)
{
window.txtLog.append("\n");
}
}
catch (Exception e)
{
logText = "Failed to read data. (" + e.toString() + ")";
window.txtLog.setForeground(Color.red);
window.txtLog.append(logText + "\n");
}
}
// waiting(1);
}
我从我的卡片数据中收到了这样的信息:
le LogText est:R
收到数据可用事件 Reçu:70 le LogText est:F
收到数据可用事件 Reçu:69 le LogText est:E
收到数据可用事件 收到数据可用事件 收到数据可用事件 收到数据可用事件 收到数据可用事件 收到数据可用事件 收到数据可用事件 收到数据可用事件 收到数据可用事件 收到数据可用事件 收到数据可用事件 收到数据可用事件 Reçu:83 le LogText est:S
收到数据可用事件 Reçu:84 le LogText est:T
收到数据可用事件 Reçu:80 le LogText est:P
收到数据可用事件 Reçu:48 le LogText est:0
收到数据可用事件 Reçu:49 le LogText est:1
收到数据可用事件 Reçu:54 le LogText est:6
收到数据可用事件 Reçu:54 le LogText est:6
收到数据可用事件 Reçu:48 le LogText est:0
收到数据可用事件 Reçu:50 le LogText est:2
收到数据可用事件 收到数据可用事件 收到数据可用事件
我只想显示“STP029393”
答案 0 :(得分:0)
您需要建立字节来自设备的协议。看起来你正在使用Debut_caracter
常量做类似的事情。特别是,您需要建立一种方法来指示要显示的字符串的结尾(可能带有'\ n'字符?)
您现在拥有的代码会在收到时立即对每个字符执行某些操作。您需要临时存储字符,然后在需要时打印它们。
基本思想是使用在serialEvent()方法范围之外声明的StringBuffer对象。
答案 1 :(得分:0)
好的我做这样的事情
public void serialEvent(SerialPortEvent evt) {
if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE)
{
//System.out.println("Data available event received");
try
{
byte singleData = (byte)input.read();
if (singleData != NEW_LINE_ASCII)
{
System.out.println("Reçu :" +singleData);
logText =new String(new byte[] {singleData});
stringBuffer.append(logText);
}
if (singleData < 0)
{
System.out.println("le LogText est : "+stringBuffer+"\n");
window.txtLog.append("\n");
stringBuffer.setLength(0);
// waiting(1);
}
}
catch (Exception e)
{
logText = "Failed to read data. (" + e.toString() + ")";
window.txtLog.setForeground(Color.red);
window.txtLog.append(logText + "\n");
}
}
}
它有效,但我不知道它是否是最佳的。 你的意见好吗?