| | |
| | | public class BaseData {
|
| | | public static final int ReadByteCount = 12;
|
| | |
|
| | | public static final int SINGLEWRITE_BYTECOUNT = 6;
|
| | | |
| | | public int transsend; //发送事务标识符
|
| | | public int transreceive; //接收事务标识符
|
| | | public int protocolident; //协议标识符
|
| | |
| | | bf.order(ByteOrder.BIG_ENDIAN);
|
| | | bf.putShort(ComBase.changeIntToShort(addrstart)); //接收标识 将寄存器起始地址放在标识中[2个字节]
|
| | | bf.putShort(ComBase.changeIntToShort(0x0000)); //协议标识符
|
| | | bf.putShort(ComBase.changeIntToShort(7+regcount*2)); //下面字节长度
|
| | | bf.putShort(ComBase.changeIntToShort(4+regcount*2)); //下面字节长度
|
| | | bf.put(ComBase.changeIntToByte(unitident)); //单元标识符(设备ID)
|
| | | bf.put(ComBase.changeIntToByte(funcode)); //功能码
|
| | | bf.putShort(ComBase.changeIntToShort(addrstart)); //寄存器起始地址
|
| | |
| | | bf.flip();
|
| | | byte[] b = new byte[4];
|
| | | bf.get(b);
|
| | | System.out.println(ComFn.bytesToHexString(b, b.length)+value);
|
| | | return b;
|
| | | }
|
| | | |
| | | /**
|
| | | * 构造写入多个寄存器数据
|
| | | * @param value
|
| | | * @return
|
| | | */
|
| | | public static byte[] createIntByte(int value) {
|
| | | ByteBuffer bf = ByteBuffer.allocate(2);
|
| | | bf.order(ByteOrder.BIG_ENDIAN);
|
| | | bf.putShort(ComBase.changeIntToShort(value));
|
| | | bf.flip();
|
| | | byte[] b = new byte[2];
|
| | | bf.get(b);
|
| | | return b;
|
| | | }
|
| | |
|