BGS5T RS232 связь с 1-проводным датчиком
У меня есть 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);
}
1 ответ
Мне пришлось использовать нуль-модемный кабель, чтобы он заработал.