Skip to content

Commit

Permalink
added javadoc and checked current on Tian BMS binding
Browse files Browse the repository at this point in the history
  • Loading branch information
ai-republic committed Dec 26, 2024
1 parent 133a0c3 commit bd4722a
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 2 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ protected void readBatteryData(final ByteBuffer frame) {
// pack voltage 0.01V
pack.packVoltage = frame.getInt() / 10;
// pack current 0.01A
pack.packCurrent = (short) (frame.getInt() / 10);
pack.packCurrent = (short) frame.getInt() / 10;
// remaining capacity 0.01AH
pack.remainingCapacitymAh = frame.getInt() * 10;
// average temperature 0.1C
Expand Down Expand Up @@ -126,6 +126,8 @@ private void readAlarms(final BatteryPack pack, final int warningFlag, final int


public static void main(final String[] args) {
System.out.println((short) 0xFD4D);
final int value = 64845;// HexFormat.fromHexDigits("FD4D");
final int current = (short) value / 10;
System.out.println(current);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,15 @@ public int getFunctionCode() {
}
}

/**
* Creates a {@link ByteBuffer} that stores the header as integers.
*
* @param register the {@link RegisterCode}
* @param startAddress the start address
* @param numRegisters the number of registers
* @param unitId the unit id
* @return the created {@link ByteBuffer}
*/
public static ByteBuffer createRequestBuffer(final RegisterCode register, final int startAddress, final int numRegisters, final int unitId) {
final ByteBuffer buffer = ByteBuffer.allocate(16).order(ByteOrder.LITTLE_ENDIAN);
buffer.putInt(register.getFunctionCode());
Expand All @@ -64,6 +73,13 @@ public static ByteBuffer createRequestBuffer(final RegisterCode register, final
}


/**
* Transforms the response into a {@link ByteBuffer} that stores the register values as
* integers.
*
* @param response the ModBus register response
* @return the ByteBuffer of int value registers
*/
public static ByteBuffer toBuffer(final ReadMultipleRegistersResponse response) {
final Register[] registers = response.getRegisters();
final ByteBuffer buffer = ByteBuffer.allocate(registers.length * 4 + 12);
Expand All @@ -76,6 +92,13 @@ public static ByteBuffer toBuffer(final ReadMultipleRegistersResponse response)
}


/**
* Transforms the response into a {@link ByteBuffer} that stores the register values as
* integers.
*
* @param response the ModBus register response
* @return the ByteBuffer of int value registers
*/
public static ByteBuffer toBuffer(final ReadInputRegistersResponse response) {
final InputRegister[] registers = response.getRegisters();
final ByteBuffer buffer = ByteBuffer.allocate(registers.length * 4 + 12);
Expand All @@ -88,6 +111,13 @@ public static ByteBuffer toBuffer(final ReadInputRegistersResponse response) {
}


/**
* Transforms the response into a {@link ByteBuffer} that stores the register reference as an
* int.
*
* @param response the ModBus register response
* @return the ByteBuffer of int value registers
*/
public static ByteBuffer toBuffer(final WriteMultipleRegistersResponse response) {
final ByteBuffer buffer = ByteBuffer.allocate(16);
buffer.putInt(response.getFunctionCode());
Expand All @@ -99,6 +129,12 @@ public static ByteBuffer toBuffer(final WriteMultipleRegistersResponse response)
}


/**
* Transforms the response into a {@link ByteBuffer} that stores the register value as an int.
*
* @param response the ModBus register response
* @return the ByteBuffer of int value registers
*/
public static ByteBuffer toBuffer(final WriteSingleRegisterResponse response) {
final ByteBuffer buffer = ByteBuffer.allocate(20);
buffer.putInt(response.getFunctionCode());
Expand Down

0 comments on commit bd4722a

Please sign in to comment.