Tag: modbus

如何通过CommPortIdentifier查找COM端口

我是整个modbus和串行通信概念的新手,所以即使这是一个真正的菜鸟问题,请耐心等待! 好吧我正在尝试使用modbus协议和RS 232端口读取存储在寄存器中的值。 我写了这段代码,但它找不到串口”COM 4″ 。 我究竟做错了什么? String wantedPortName = “COM 4” ; Enumeration portIdentifiers = CommPortIdentifier.getPortIdentifiers(); CommPortIdentifier portId = null; while (portIdentifiers.hasMoreElements()) { CommPortIdentifier pid = (CommPortIdentifier) portIdentifiers.nextElement(); if (pid.getPortType() == CommPortIdentifier.PORT_SERIAL && pid.getName().equals(wantedPortName)) { portId = pid; break; } } if (portId == null) { System.err.println(“Could not find serial port ” + wantedPortName); […]

获取字节数组的CRC校验和并将其添加到该字节数组

我有这个字节数组: static byte[] buf = new byte[] { (byte) 0x01, (byte) 0x04, (byte)0x00, (byte)0x01,(byte)0x00, (byte) 0x01}; 现在,该字节数组的CRC校验和应该是0x60,0x0A。 我希望Java代码重新创建此校验和,但我似乎无法重新创建它。 我试过crc16: static int crc16(final byte[] buffer) { int crc = 0xFFFF; for (int j = 0; j >> 8) | (crc <> 4); crc ^= (crc << 12) & 0xffff; crc ^= ((crc & 0xFF) << 5) […]