2014-11-12 2 views
0

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

Вот код 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); 
     } 

ответ

1

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