繁体   English   中英

BGS5T RS232与1线制传感器通信

[英]BGS5T RS232 communication with 1-wire sensor

我有金雅拓BGS5T Java模块和1线温度传感器。 我有使用RS232端口与温度传感器通信的Java Midlet。 但是问题是,无论我发送什么,我都没有收到传感器的响应。 传感器上有正确的电压,因此连接应正确。 我尝试测试我的程序,以便我将rs232端口连接到计算机,并使用terminal(Termite)监视发送的数据是否正确,并且一切看起来都应该正确。 另一个测试是我将温度传感器直接连接到计算机,并通过终端发送数据,并且它应能正常工作。 我什至在一些随机输入(例如9999)上得到响应。我检查了终端内部用于连接的参数,并将其复制到Java Midlet,但没有成功。 我只有一次得到了一些回应,但是当我第二天尝试继续工作时,却没有成功。 端子内部参数:波特率: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);
        }

我必须使用空调制解调器电缆才能正常工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM