Я хочу отделить данные от последовательной связи и доставить их в таблицу

1

Я хочу разделить данные с этим форматом

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

где

  • STX равен 0x02 в шестнадцатеричном формате
  • FS равен 0x1C в шестнадцатеричном формате
  • ETX равен 0x03 в шестнадцатеричном

то мне нужно отправить его в таблицу базы данных

Я использую библиотеку RXTX и получаю результат по значению байта.

Может ли кто-нибудь помочь и поделиться со мной, как это сделать?

Теги:
database
split
serial-communication

1 ответ

0

Я получаю результат с уродливыми способами, я думаю, но реальная проблема заключается в том, что я просто хочу ввести массив данных из массива [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");
                    }
            }
        }
  • 0
    вот результат R № 0 * № 1 SUKIMAN № 2 46/38 № 3 1 № 4 ноль № 5 0 № 6 363812270115 № 7 1 № 8 1 № 9 4 № 10 TGL № 11 197 № 12 мг / дл № 13 ноль № 14 ALDL № 15 179 № 16 мг / дл № 17 ноль № 18 URCA № 19 6,0 № 20 мг / дл № 21 нуль № 22 GLUC № 23 179 № 24 мг / дл № 25 нуль № 26 87 № 27

Ещё вопросы

Сообщество Overcoder
Наверх
Меню