医保串口 java lang,java 串口问题modbus4j

String portName = "COM9";

String rate = "9600";

SerialParameters serialParameters = new SerialParameters();

//设定MODBUS通讯的串行口

serialParameters.setCommPortId(portName);

//设定成无奇偶校验

serialParameters.setParity(0);

//设定成数据位是8位

serialParameters.setDataBits(8);

//设定为1个停止位

serialParameters.setStopBits(1);

serialParameters.setPortOwnerName("Numb nuts");

//串行口上的波特率

serialParameters.setBaudRate(Integer.parseInt(rate));

ModbusFactory modbusFactory = new ModbusFactory();

ModbusMaster master = modbusFactory.createRtuMaster(serialParameters);

master.init();

ReadDiscreteInputsRequest request = new ReadDiscreteInputsRequest(SLAVE_ADDRESS, 0, 2);

ReadDiscreteInputsResponse response = (ReadDiscreteInputsResponse) master.send(request);

if (response.isException())

{

System.out.println("Exception response: message=" + response.getExceptionMessage());

return;

}

boolean[] datas = null;

datas=response.getBooleanData();

if(datas!=null && datas.length>0) {

int count=0;

for(int i=0;i

{

if(datas[i]==true)

{

count++;

}

System.out.print("i " + datas[i]);

}

System.out.println();

}

}

用的main启动的,出错。

Stable Library

=========================================

Native lib Version = RXTX-2.2-20081207 Cloudhopper Build rxtx.cloudhopper.net

Java lib Version   = RXTX-2.1-7

WARNING:  RXTX Version mismatch

Jar version = RXTX-2.1-7

native lib Version = RXTX-2.2-20081207 Cloudhopper Build rxtx.cloudhopper.net

Exception in thread "main" com.serotonin.modbus4j.exception.ModbusTransportException: com.serotonin.messaging.TimeoutException: request=com.serotonin.modbus4j.serial.rtu.RtuMessageRequest@29444d75

at com.serotonin.modbus4j.serial.rtu.RtuMaster.send(RtuMaster.java:57)

at com.ectrip.drivers.infrared.JYDAM0404D.main(JYDAM0404D.java:379)

Caused by: com.serotonin.messaging.TimeoutException: request=com.serotonin.modbus4j.serial.rtu.RtuMessageRequest@29444d75

at com.serotonin.messaging.MessageControl.send(MessageControl.java:104)

at com.serotonin.messaging.MessageControl.send(MessageControl.java:69)

at com.serotonin.modbus4j.serial.rtu.RtuMaster.send(RtuMaster.java:51)

... 1 more

com.serotonin.modbus4j.exception.IllegalFunctionException: Function code: 0x7e

at com.serotonin.modbus4j.msg.ModbusResponse.createModbusResponse(ModbusResponse.java:50)

at com.serotonin.modbus4j.serial.rtu.RtuMessageResponse.createRtuMessageResponse(RtuMessageResponse.java:17)

at com.serotonin.modbus4j.serial.rtu.RtuMessageParser.parseMessageImpl(RtuMessageParser.java:21)

at com.serotonin.modbus4j.base.BaseMessageParser.parseMessage(BaseMessageParser.java:17)

at com.serotonin.messaging.MessageControl.data(MessageControl.java:133)

at com.serotonin.messaging.InputStreamListener.run(InputStreamListener.java:76)

at java.lang.Thread.run(Thread.java:748)

求指导。。。。。。。。。。。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值