java - 我想从串行通信中分离数据并将其传递到表中

标签 java database split serial-communication

我想用这种格式分割数据序列

<STX> data1<FS> Data2<FS> Data3<FS> ...Data_n<FS>Checksum<ETX>

哪里

  • STX 是十六进制的 0x02
  • FS 是十六进制的 0x1C
  • ETX 的十六进制为 0x03

然后我需要将其发送到数据库表

我使用 RXTX 库并按字节值获取结果。

有人可以帮助并与我分享如何做到这一点吗?

最佳答案

我以丑陋的方式得到了结果,但真正的问题是我只想从数组 [2] 输入数据数组直到长度 -2。现在(我设置了 60 个静态数组长度),但数据将始终是数组中的动态长度。有办法解决这个问题吗?我听说过列表数据类型,但我认为它更难。

public Constructor(GUI window)
    {
        this.dump = new String[60];
        this.window = window;
    }
int i = 0; String[] dump; boolean begin = false,first=true;
        public void serialEvent(SerialPortEvent evt) {
            if (evt.getEventType() == SerialPortEvent.DATA_AVAILABLE)
            {
                try
                    {
                        byte singleData = (byte)input.read();

                       if (singleData == 2){
                           begin =true; i=0; 
                       }
                       if (singleData == 3){
                           begin = false; writeData(); 
                       }
                       if (begin == true){
                            if (singleData != 28 && singleData!=2 ){
                                if(dump[i]!=null && first==false){
                                dump[i]=dump[i]+ new String(new byte[] {singleData});                       
                                }


                                if(dump[i]==null){
                                    dump[i]=new String(new byte[] {singleData});
                                    first=false;
                                }
                            }

                            if (singleData==28){
                                    System.out.println(dump[i] + "  No." + i );
                                    first=true;
                                    i++;      
                            }
                       }

                    }
                    catch (Exception e)
                    {
                        logText = "Failed to read data. (" + e.toString() + ")";
                        window.txtLog.setForeground(Color.red);
                        window.txtLog.append(logText + "\n");
                    }
            }
        }

关于java - 我想从串行通信中分离数据并将其传递到表中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28446527/

相关文章:

javascript - 使用非常相似的正则表达式分割字符串后,输出出现奇怪的不同

Python - 在 "\\"之后拆分时丢失数据

Java集合框架历史

mysql - 使用 jdbc 更新 mysql 数据库

ios - 根据 NSDictionary 键值将 NSArray 拆分为子数组

php - Laravel Eloquent updateOrCreate 使用预填充模型

php - 从具有相同列的两个表输出数据并添加变量作为标识符

java - 打印大型 Swing 组件

java - 子串计数

java - 从应用程序发送带有附件的电子邮件