Связь BGS5T RS232 с однопроводным датчиком

У меня есть Java-модуль Gemalto BGS5T и 1-проводный датчик температуры. У меня есть мидлет Java, который использует порт RS232 для связи с датчиком температуры. Но проблема в том, что я не получаю ответа от датчика, что бы я ни отправлял. Датчик имеет правильное напряжение, поэтому соединение должно быть в порядке. Я попытался протестировать свою программу, чтобы подключить порт rs232 к компьютеру и с помощью терминала (Termite) посмотреть, были ли отправленные данные правильными и все выглядит так, как должно. Другой тест заключался в том, что я подключал датчик температуры напрямую к компьютеру и отправлял данные с терминала, и он работал, как должен. Я даже получил ответы на некоторые случайные входные данные, такие как 9999. Я проверил параметры подключения внутри терминала и скопировал их в мидлет java, но безуспешно. Был только один раз, когда я получил несколько ответов, но когда я попытался на следующий день продолжить работу, у меня ничего не получилось. Параметры внутри терминала: Скорость передачи: 9600 Биты данных: 8 Стоп-биты: 1 Четность: нет Управление потоком: RTS / CTS

Вот код Java:

String strCOM = "comm:COM0;blocking=on;baudrate=9600";
commConn = (CommConnection)Connector.open(strCOM);
System.out.println("CommConnection(" + strCOM + ") opened");
System.out.println("Real baud rate: " + commConn.getBaudRate());
inStream  = commConn.openInputStream();
outStream = commConn.openOutputStream();
System.out.println("InputStream and OutputStream opened");
while(1==1)
    {
        byte bC1 = (byte)Integer.parseInt("11000001",2);
        byte C1 = hexToBin("C1");
        byte bparameter2 = (byte)Integer.parseInt("00010111",2);
        byte bparameter3 = (byte)Integer.parseInt("01000101",2);
        byte bparameter4 = (byte)Integer.parseInt("01011011",2);
        byte bparameter5 = (byte)Integer.parseInt("00001111",2);
        byte bparameter6 = (byte)Integer.parseInt("10010101",2);
        byte[] bArray = {bparameter2,bparameter3,bparameter4,bparameter5,bparameter6};





      int ch;
      try {
        outStream.write(bC1);
        Thread.sleep(50);
        //outStream.write(bArray);
        outStream.write(bparameter2);
        outStream.write(bparameter3);
        outStream.write(bparameter4);
        outStream.write(bparameter5);
        outStream.write(bparameter6);

        System.err.println("inStream bytes:" + inStream.available());
        if(inStream.available() > 0)
        {   
          String msg = "";
          while(inStream.available() > 0)
          {
            ch = inStream.read();
            msg = msg + (char) ch;
          }
          System.out.println("Serial msg: " + msg);
        }
        outStream.write('9');
        outStream.write('9');
        outStream.write('9');
        outStream.write('9');
        Thread.sleep(100);
        outStream.write('9');
        outStream.write('9');
        outStream.write('9');
        outStream.write('9');
        System.err.println("inStream bytes:" + inStream.available());
        if(inStream.available() > 0)
        {   
          String msg = "";
          while(inStream.available() > 0)
          {
            ch = inStream.read();
            msg = msg + (char) ch;
          }
          System.out.println("Serial msg: " + msg);
        }

person Jure    schedule 12.11.2014    source источник


Ответы (1)


Мне пришлось использовать нуль-модемный кабель, чтобы он заработал.

person Jure    schedule 15.02.2015