diff --git a/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/Data.kt b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/Data.kt index e27366ba..c2ebb419 100644 --- a/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/Data.kt +++ b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/Data.kt @@ -21,6 +21,8 @@ import java.time.format.DateTimeFormatter * @param value The actual value * * @since 2.0 + * @since 2.1 new function: + * - [valueAsErrorCode] */ data class Data( val tag: ByteArray, @@ -272,15 +274,25 @@ data class Data( value /** - * Liest den Int wert des Datenblocks und wandelt ihn in einen [ResultCode] + * Reads the Int value of the data block and converts it into a [ResultCode]. * - * @return [ResultCode] Wert + * @return [ResultCode] value * * @since 2.0 */ fun valueAsResultCode() = if (typeObject() == DataType.ERROR) ResultCode.UNKNOWN else ResultCode.byRscpCode(valueAsInt()?:ResultCode.UNKNOWN.rscpCode) + /** + * Reads the Int value of the data block and converts it into a [ErrorCode]. + * + * @return [ErrorCode] Value + * + * @since 2.1 + */ + fun valueAsErrorCode() = + if (typeObject() == DataType.ERROR) ResultCode.UNKNOWN else ErrorCode.byRscpCode(valueAsInt() ?: ErrorCode.UNKNOWN.rscpCode.toInt()) + /** * Checks if the response type is of type error. * diff --git a/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/ErrorCode.kt b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/ErrorCode.kt new file mode 100644 index 00000000..fb95dcab --- /dev/null +++ b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/ErrorCode.kt @@ -0,0 +1,49 @@ +package de.jnkconsulting.e3dc.easyrscp.api.frame + +/** + * Possible error codes that can be in data blocks of type [DataType.ERROR] + * + * @param rscpCode Code in the data block that identifies the error type + * + * @since 2.1 + */ +enum class ErrorCode(val rscpCode: Byte) { + /** + * Empty data block. Usually used for request frames; code = 0x00 + */ + NOT_HANDLED(rscpCode = 0x00.toByte()), + /** + * Boolean typ. 1 for true, 0 for false; code = 0x01 + */ + ACCESS_DENIED(rscpCode = 0x01.toByte()), + + /** + * Contains a 1byte number; code = 0x02 + */ + FORMAT(rscpCode = 0x02.toByte()), + /** + * Contains a 1byte number (unsigned); code = 0x03 + */ + AGAIN(rscpCode = 0x03.toByte()), + + UNKNOWN(rscpCode = 0xFF.toByte()); + + + companion object { + + /** + * Returns the [ErrorCode] object for the given code. + * + * If the code is not known, [UNKNOWN] is supplied. + * + * @return [ErrorCode] object to the given code + * + * @since 2.1 + */ + fun byRscpCode(code: Int) = + entries + .find { it.rscpCode.toInt() == code } + ?: UNKNOWN + + } +} diff --git a/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/Frame.kt b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/Frame.kt index 2a7e0b44..77940b97 100644 --- a/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/Frame.kt +++ b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/Frame.kt @@ -17,11 +17,14 @@ import java.time.Instant * Data, the RSCP data itself. * * @param timestamp Creation time of the frame - * @param controlBytes Control functions. Currently the protocol version as well as a control bit whether checksum are used or not. See [FIXED_VALUES]. + * @param controlBytes Control functions. Currently, the protocol version as well as a control bit whether checksum are used or not. See [FIXED_VALUES]. * @param data The data itself. See [Data] * @param parser The parser to use for parsing container data * * @since 2.0 + * @since 2.1 new functions: + * - [isDataBlockInError] + * - [errorCodeByTag] */ data class Frame( val timestamp: Instant, @@ -280,6 +283,36 @@ data class Frame( find(tag, data, *containerPath) ?.valueAsResultCode() ?: ResultCode.UNKNOWN + /** + * Checks whether the data block in the frame is of data type [DataType.ERROR]. + * + * @param tag The [Tag] to search for + * @param containerPath Optional path through datablocks of type [DataType.CONTAINER]. + * + * @return true if the data block is of type [DataType.ERROR], otherwise false + * + * @since 2.1 + */ + fun isDataBlockInError(tag: Tag, vararg containerPath: Tag) = + find(tag, data, *containerPath) + ?.isErrorResponse() ?: false + + /** + * Searches for a data block of type [tag] and returns the value as [ErrorCode]. + * + * If the block is not found [ErrorCode.UNKNOWN] is returned. + * + * @param tag The [Tag] to search for + * @param containerPath Optional path through datablocks of type [DataType.CONTAINER]. + * + * @return Value of the data block as [ErrorCode] or [ErrorCode.UNKNOWN] if the data block does not exist. + * + * @since 2.1 + */ + fun errorCodeByTag(tag: Tag, vararg containerPath: Tag) = + find(tag, data, *containerPath) + ?.valueAsErrorCode() ?: ErrorCode.UNKNOWN + /** * Query whether the frame calculates the checksum or not. * diff --git a/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/tags/BatTag.kt b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/tags/BatTag.kt index bd492eb8..122b8c82 100644 --- a/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/tags/BatTag.kt +++ b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/frame/tags/BatTag.kt @@ -21,8 +21,8 @@ enum class BatTag( /** * hex = "0x03040000", type = DataType.CONTAINER - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_DATA&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_DATA:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_DATA&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_DATA:). * * Original E3DC Documentation: * @@ -35,8 +35,8 @@ enum class BatTag( /** * hex = "0x03040001", type = DataType.UINT16 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INDEX&labels=documentation&body=Documentation+update+for+enum+BatTag.INDEX:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INDEX&labels=documentation&body=Documentation+update+for+enum+BatTag.INDEX:). * * Original E3DC Documentation: * @@ -49,8 +49,8 @@ enum class BatTag( /** * hex = "0x03840000", type = DataType.CONTAINER - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DATA&labels=documentation&body=Documentation+update+for+enum+BatTag.DATA:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DATA&labels=documentation&body=Documentation+update+for+enum+BatTag.DATA:). * * Original E3DC Documentation: * @@ -63,8 +63,8 @@ enum class BatTag( /** * hex = "0x03800001", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.RSOC&labels=documentation&body=Documentation+update+for+enum+BatTag.RSOC:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.RSOC&labels=documentation&body=Documentation+update+for+enum+BatTag.RSOC:). * * Original E3DC Documentation: * @@ -77,8 +77,8 @@ enum class BatTag( /** * hex = "0x03800002", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MODULE_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.MODULE_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MODULE_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.MODULE_VOLTAGE:). * * Original E3DC Documentation: * @@ -91,8 +91,8 @@ enum class BatTag( /** * hex = "0x03800003", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.CURRENT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.CURRENT:). * * Original E3DC Documentation: * @@ -105,8 +105,8 @@ enum class BatTag( /** * hex = "0x03800004", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_BAT_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_BAT_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_BAT_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_BAT_VOLTAGE:). * * Original E3DC Documentation: * @@ -119,8 +119,8 @@ enum class BatTag( /** * hex = "0x03800005", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_CHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_CHARGE_CURRENT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_CHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_CHARGE_CURRENT:). * * Original E3DC Documentation: * @@ -133,8 +133,8 @@ enum class BatTag( /** * hex = "0x03800006", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.EOD_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.EOD_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.EOD_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.EOD_VOLTAGE:). * * Original E3DC Documentation: * @@ -147,8 +147,8 @@ enum class BatTag( /** * hex = "0x03800007", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_DISCHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_DISCHARGE_CURRENT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_DISCHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_DISCHARGE_CURRENT:). * * Original E3DC Documentation: * @@ -161,8 +161,8 @@ enum class BatTag( /** * hex = "0x03800008", type = DataType.UINT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.CHARGE_CYCLES&labels=documentation&body=Documentation+update+for+enum+BatTag.CHARGE_CYCLES:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.CHARGE_CYCLES&labels=documentation&body=Documentation+update+for+enum+BatTag.CHARGE_CYCLES:). * * Original E3DC Documentation: * @@ -175,8 +175,8 @@ enum class BatTag( /** * hex = "0x03800009", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.TERMINAL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.TERMINAL_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.TERMINAL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.TERMINAL_VOLTAGE:). * * Original E3DC Documentation: * @@ -189,8 +189,8 @@ enum class BatTag( /** * hex = "0x0380000A", type = DataType.BITFIELD - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.STATUS_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.STATUS_CODE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.STATUS_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.STATUS_CODE:). * * Original E3DC Documentation: * @@ -203,8 +203,8 @@ enum class BatTag( /** * hex = "0x0380000B", type = DataType.BITFIELD - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.ERROR_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.ERROR_CODE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.ERROR_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.ERROR_CODE:). * * Original E3DC Documentation: * @@ -217,8 +217,8 @@ enum class BatTag( /** * hex = "0x0380000C", type = DataType.STRING - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_NAME&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_NAME:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_NAME&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_NAME:). * * Original E3DC Documentation: * @@ -231,8 +231,8 @@ enum class BatTag( /** * hex = "0x0380000D", type = DataType.UCHAR8 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_COUNT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_COUNT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_COUNT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_COUNT:). * * Original E3DC Documentation: * @@ -245,8 +245,8 @@ enum class BatTag( /** * hex = "0x03800016", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_DCB_CELL_TEMPERATURE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_DCB_CELL_TEMPERATURE:). * * Original E3DC Documentation: * @@ -258,8 +258,8 @@ enum class BatTag( /** * hex = "0x03800017", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MIN_DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.MIN_DCB_CELL_TEMPERATURE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MIN_DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.MIN_DCB_CELL_TEMPERATURE:). * * Original E3DC Documentation: * @@ -272,8 +272,8 @@ enum class BatTag( /** * hex = "0x03800019", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CELL_TEMPERATURE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CELL_TEMPERATURE:). * * Original E3DC Documentation: * @@ -285,8 +285,8 @@ enum class BatTag( /** * hex = "0x0380001B", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CELL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CELL_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CELL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CELL_VOLTAGE:). * * Original E3DC Documentation: * @@ -299,8 +299,8 @@ enum class BatTag( /** * hex = "0x0380001E", type = DataType.BOOL - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.READY_FOR_SHUTDOWN&labels=documentation&body=Documentation+update+for+enum+BatTag.READY_FOR_SHUTDOWN:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.READY_FOR_SHUTDOWN&labels=documentation&body=Documentation+update+for+enum+BatTag.READY_FOR_SHUTDOWN:). * * Original E3DC Documentation: * @@ -312,8 +312,8 @@ enum class BatTag( /** * hex = "0x03800020", type = DataType.CONTAINER - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INFO&labels=documentation&body=Documentation+update+for+enum+BatTag.INFO:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INFO&labels=documentation&body=Documentation+update+for+enum+BatTag.INFO:). * * Original E3DC Documentation: * @@ -329,8 +329,8 @@ enum class BatTag( /** * hex = "0x03800021", type = DataType.UCHAR8 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.TRAINING_MODE&labels=documentation&body=Documentation+update+for+enum+BatTag.TRAINING_MODE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.TRAINING_MODE&labels=documentation&body=Documentation+update+for+enum+BatTag.TRAINING_MODE:). * * Original E3DC Documentation: * @@ -350,8 +350,8 @@ enum class BatTag( /** * hex = "0x03000001", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_RSOC&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_RSOC:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_RSOC&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_RSOC:). * * Original E3DC Documentation: * @@ -364,8 +364,8 @@ enum class BatTag( /** * hex = "0x03000002", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MODULE_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MODULE_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MODULE_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MODULE_VOLTAGE:). * * Original E3DC Documentation: * @@ -378,8 +378,8 @@ enum class BatTag( /** * hex = "0x03000003", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_CURRENT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_CURRENT:). * * Original E3DC Documentation: * @@ -392,8 +392,8 @@ enum class BatTag( /** * hex = "0x03000004", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_BAT_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_BAT_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_BAT_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_BAT_VOLTAGE:). * * Original E3DC Documentation: * @@ -406,8 +406,8 @@ enum class BatTag( /** * hex = "0x03000005", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_CHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_CHARGE_CURRENT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_CHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_CHARGE_CURRENT:). * * Original E3DC Documentation: * @@ -420,8 +420,8 @@ enum class BatTag( /** * hex = "0x03000006", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_EOD_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_EOD_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_EOD_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_EOD_VOLTAGE:). * * Original E3DC Documentation: * @@ -434,8 +434,8 @@ enum class BatTag( /** * hex = "0x03000007", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_DISCHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_DISCHARGE_CURRENT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_DISCHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_DISCHARGE_CURRENT:). * * Original E3DC Documentation: * @@ -448,8 +448,8 @@ enum class BatTag( /** * hex = "0x03000008", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_CHARGE_CYCLES&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_CHARGE_CYCLES:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_CHARGE_CYCLES&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_CHARGE_CYCLES:). * * Original E3DC Documentation: * @@ -462,8 +462,8 @@ enum class BatTag( /** * hex = "0x03000009", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_TERMINAL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_TERMINAL_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_TERMINAL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_TERMINAL_VOLTAGE:). * * Original E3DC Documentation: * @@ -476,8 +476,8 @@ enum class BatTag( /** * hex = "0x0300000A", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_STATUS_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_STATUS_CODE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_STATUS_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_STATUS_CODE:). * * Original E3DC Documentation: * @@ -490,8 +490,8 @@ enum class BatTag( /** * hex = "0x0300000B", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_ERROR_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_ERROR_CODE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_ERROR_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_ERROR_CODE:). * * Original E3DC Documentation: * @@ -504,8 +504,8 @@ enum class BatTag( /** * hex = "0x0300000C", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_DEVICE_NAME&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_DEVICE_NAME:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_DEVICE_NAME&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_DEVICE_NAME:). * * Original E3DC Documentation: * @@ -518,8 +518,8 @@ enum class BatTag( /** * hex = "0x0300000D", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_DCB_COUNT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_DCB_COUNT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_DCB_COUNT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_DCB_COUNT:). * * Original E3DC Documentation: * @@ -532,8 +532,8 @@ enum class BatTag( /** * hex = "0x03000016", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_DCB_CELL_TEMPERATURE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_DCB_CELL_TEMPERATURE:). * * Original E3DC Documentation: * @@ -546,8 +546,8 @@ enum class BatTag( /** * hex = "0x03000017", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MIN_DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MIN_DCB_CELL_TEMPERATURE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MIN_DCB_CELL_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MIN_DCB_CELL_TEMPERATURE:). * * Original E3DC Documentation: * @@ -560,8 +560,8 @@ enum class BatTag( /** * hex = "0x0300001E", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_READY_FOR_SHUTDOWN&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_READY_FOR_SHUTDOWN:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_READY_FOR_SHUTDOWN&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_READY_FOR_SHUTDOWN:). * * Original E3DC Documentation: * @@ -574,8 +574,8 @@ enum class BatTag( /** * hex = "0x03000020", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_INFO&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_INFO:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_INFO&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_INFO:). * * Original E3DC Documentation: * @@ -588,8 +588,8 @@ enum class BatTag( /** * hex = "0x03000021", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_TRAINING_MODE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_TRAINING_MODE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_TRAINING_MODE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_TRAINING_MODE:). * * Original E3DC Documentation: * @@ -602,8 +602,8 @@ enum class BatTag( /** * hex = "0x03800100", type = DataType.UINT16 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_INDEX&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_INDEX:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_INDEX&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_INDEX:). * * Original E3DC Documentation: * @@ -615,8 +615,8 @@ enum class BatTag( /** * hex = "0x03800101", type = DataType.UINT64 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_LAST_MESSAGE_TIMESTAMP&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_LAST_MESSAGE_TIMESTAMP:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_LAST_MESSAGE_TIMESTAMP&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_LAST_MESSAGE_TIMESTAMP:). * * Original E3DC Documentation: * @@ -628,8 +628,8 @@ enum class BatTag( /** * hex = "0x03800102", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_MAX_CHARGE_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_MAX_CHARGE_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_MAX_CHARGE_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_MAX_CHARGE_VOLTAGE:). * * Original E3DC Documentation: * @@ -641,8 +641,8 @@ enum class BatTag( /** * hex = "0x03800103", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_MAX_CHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_MAX_CHARGE_CURRENT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_MAX_CHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_MAX_CHARGE_CURRENT:). * * Original E3DC Documentation: * @@ -654,8 +654,8 @@ enum class BatTag( /** * hex = "0x03800104", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_END_OF_DISCHARGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_END_OF_DISCHARGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_END_OF_DISCHARGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_END_OF_DISCHARGE:). * * Original E3DC Documentation: * @@ -667,8 +667,8 @@ enum class BatTag( /** * hex = "0x03800105", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_MAX_DISCHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_MAX_DISCHARGE_CURRENT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_MAX_DISCHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_MAX_DISCHARGE_CURRENT:). * * Original E3DC Documentation: * @@ -680,8 +680,8 @@ enum class BatTag( /** * hex = "0x03800106", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_FULL_CHARGE_CAPACITY&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_FULL_CHARGE_CAPACITY:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_FULL_CHARGE_CAPACITY&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_FULL_CHARGE_CAPACITY:). * * Original E3DC Documentation: * @@ -693,8 +693,8 @@ enum class BatTag( /** * hex = "0x03800107", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_REMAINING_CAPACITY&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_REMAINING_CAPACITY:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_REMAINING_CAPACITY&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_REMAINING_CAPACITY:). * * Original E3DC Documentation: * @@ -706,8 +706,8 @@ enum class BatTag( /** * hex = "0x03800108", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_SOC&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_SOC:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_SOC&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_SOC:). * * Original E3DC Documentation: * @@ -719,8 +719,8 @@ enum class BatTag( /** * hex = "0x03800109", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_SOH&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_SOH:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_SOH&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_SOH:). * * Original E3DC Documentation: * @@ -732,8 +732,8 @@ enum class BatTag( /** * hex = "0x03800110", type = DataType.UINT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CYCLE_COUNT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CYCLE_COUNT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CYCLE_COUNT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CYCLE_COUNT:). * * Original E3DC Documentation: * @@ -745,8 +745,8 @@ enum class BatTag( /** * hex = "0x03800111", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CURRENT:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CURRENT:). * * Original E3DC Documentation: * @@ -758,8 +758,8 @@ enum class BatTag( /** * hex = "0x03800112", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_VOLTAGE:). * * Original E3DC Documentation: * @@ -771,8 +771,8 @@ enum class BatTag( /** * hex = "0x03800113", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CURRENT_AVG_30S&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CURRENT_AVG_30S:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CURRENT_AVG_30S&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CURRENT_AVG_30S:). * * Original E3DC Documentation: * @@ -784,8 +784,8 @@ enum class BatTag( /** * hex = "0x03800114", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_VOLTAGE_AVG_30S&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_VOLTAGE_AVG_30S:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_VOLTAGE_AVG_30S&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_VOLTAGE_AVG_30S:). * * Original E3DC Documentation: * @@ -797,8 +797,8 @@ enum class BatTag( /** * hex = "0x03800115", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_DESIGN_CAPACITY&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_DESIGN_CAPACITY:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_DESIGN_CAPACITY&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_DESIGN_CAPACITY:). * * Original E3DC Documentation: * @@ -810,8 +810,8 @@ enum class BatTag( /** * hex = "0x03800116", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_DESIGN_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_DESIGN_VOLTAGE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_DESIGN_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_DESIGN_VOLTAGE:). * * Original E3DC Documentation: * @@ -823,8 +823,8 @@ enum class BatTag( /** * hex = "0x03800117", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CHARGE_LOW_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CHARGE_LOW_TEMPERATURE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CHARGE_LOW_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CHARGE_LOW_TEMPERATURE:). * * Original E3DC Documentation: * @@ -836,8 +836,8 @@ enum class BatTag( /** * hex = "0x03800118", type = DataType.FLOAT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CHARGE_HIGH_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CHARGE_HIGH_TEMPERATURE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_CHARGE_HIGH_TEMPERATURE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_CHARGE_HIGH_TEMPERATURE:). * * Original E3DC Documentation: * @@ -849,8 +849,8 @@ enum class BatTag( /** * hex = "0x03800119", type = DataType.UINT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_MANUFACTURE_DATE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_MANUFACTURE_DATE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_MANUFACTURE_DATE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_MANUFACTURE_DATE:). * * Original E3DC Documentation: * @@ -862,8 +862,8 @@ enum class BatTag( /** * hex = "0x03800120", type = DataType.UINT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_SERIALNO&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_SERIALNO:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_SERIALNO&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_SERIALNO:). * * Original E3DC Documentation: * @@ -875,8 +875,8 @@ enum class BatTag( /** * hex = "0x03800121", type = DataType.UINT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_PROTOCOL_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_PROTOCOL_VERSION:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_PROTOCOL_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_PROTOCOL_VERSION:). * * Original E3DC Documentation: * @@ -888,8 +888,8 @@ enum class BatTag( /** * hex = "0x03800122", type = DataType.UINT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_FW_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_FW_VERSION:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_FW_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_FW_VERSION:). * * Original E3DC Documentation: * @@ -901,8 +901,8 @@ enum class BatTag( /** * hex = "0x03800123", type = DataType.UINT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_DATA_TABLE_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_DATA_TABLE_VERSION:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_DATA_TABLE_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_DATA_TABLE_VERSION:). * * Original E3DC Documentation: * @@ -914,8 +914,8 @@ enum class BatTag( /** * hex = "0x03800124", type = DataType.UINT32 - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_PCB_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_PCB_VERSION:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_PCB_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_PCB_VERSION:). * * Original E3DC Documentation: * @@ -927,8 +927,8 @@ enum class BatTag( /** * hex = "0x03060000", type = DataType.NONE - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_DEVICE_STATE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_DEVICE_STATE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_DEVICE_STATE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_DEVICE_STATE:). * * Original E3DC Documentation: * @@ -940,8 +940,8 @@ enum class BatTag( /** * hex = "0x03860000", type = DataType.CONTAINER - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_STATE&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_STATE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_STATE&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_STATE:). * * Original E3DC Documentation: * @@ -954,8 +954,8 @@ enum class BatTag( /** * hex = "0x03860001", type = DataType.BOOL - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_CONNECTED&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_CONNECTED:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_CONNECTED&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_CONNECTED:). * * Original E3DC Documentation: * @@ -968,8 +968,8 @@ enum class BatTag( /** * hex = "0x03860002", type = DataType.BOOL - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_WORKING&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_WORKING:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_WORKING&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_WORKING:). * * Original E3DC Documentation: * @@ -982,8 +982,8 @@ enum class BatTag( /** * hex = "0x03860003", type = DataType.BOOL - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_IN_SERVICE&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_IN_SERVICE:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DEVICE_IN_SERVICE&labels=documentation&body=Documentation+update+for+enum+BatTag.DEVICE_IN_SERVICE:). * * Original E3DC Documentation: * @@ -996,8 +996,8 @@ enum class BatTag( /** * hex = "0x03FFFFFF", type = DataType.ERROR - * - * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.GENERAL_ERROR&labels=documentation&body=Documentation+update+for+enum+BatTag.GENERAL_ERROR:). + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.GENERAL_ERROR&labels=documentation&body=Documentation+update+for+enum+BatTag.GENERAL_ERROR:). * * Original E3DC Documentation: * @@ -1007,5 +1007,1295 @@ enum class BatTag( */ GENERAL_ERROR(hex = "0x03FFFFFF", type = DataType.ERROR), + /** + * hex = "0x03000042", type = DataType.UINT16 + * + * Requests information from the battery module. The value must be the number of the module. It is counted from 0 to the value of DCB_COUNT + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_DCB_INFO(hex = "0x03000042", type = DataType.UINT16), + + /** + * hex = "0x0300000E", type = DataType.NONE + * + * Ask for the actual RSOC. Whatever the actual RSOC is... + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_RSOC_REAL(hex = "0x0300000E", type = DataType.NONE), + + /** + * hex = "0x0300000F", type = DataType.NONE + * + * Requests the absolute state-of-charge. In other words, how high the possible SOC is when the battery is fully charged, minus signs of ageing of the battery. + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_ASOC(hex = "0x0300000F", type = DataType.NONE), + + /** + * hex = "0x03000010", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_FCC&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_FCC:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_FCC(hex = "0x03000010", type = DataType.NONE), + + /** + * hex = "0x03000011", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_RC&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_RC:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_RC(hex = "0x03000011", type = DataType.NONE), + + /** + * hex = "0x03000012", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_DCB_CELL_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_DCB_CELL_CURRENT:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_MAX_DCB_CELL_CURRENT(hex = "0x03000012", type = DataType.NONE), + + /** + * hex = "0x03000013", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MIN_DCB_CELL_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MIN_DCB_CELL_CURRENT:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_MIN_DCB_CELL_CURRENT(hex = "0x03000013", type = DataType.NONE), + + /** + * hex = "0x03000014", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MAX_DCB_CELL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MAX_DCB_CELL_VOLTAGE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_MAX_DCB_CELL_VOLTAGE(hex = "0x03000014", type = DataType.NONE), + + /** + * hex = "0x03000015", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MIN_DCB_CELL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MIN_DCB_CELL_VOLTAGE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_MIN_DCB_CELL_VOLTAGE(hex = "0x03000015", type = DataType.NONE), + + /** + * hex = "0x03000018", type = DataType.UINT16 + * + * Queries the temperatures of all cells in the battery module. The value must be the number of the module. It is counted from 0 to the value of DCB_COUNT + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_DCB_ALL_CELL_TEMPERATURES(hex = "0x03000018", type = DataType.UINT16), + /** + * hex = "0x0300001A", type = DataType.UINT16 + * + * Queries the voltages of all cells in the battery module. The value must be the number of the module. It is counted from 0 to the value of DCB_COUNT + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_DCB_ALL_CELL_VOLTAGES(hex = "0x0300001A", type = DataType.UINT16), + /** + * hex = "0x0300001C", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_OPEN_BREAKER&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_OPEN_BREAKER:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_OPEN_BREAKER(hex = "0x0300001C", type = DataType.NONE), + /** + * hex = "0x0300001D", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_OPEN_BREAKER_CONFIRM&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_OPEN_BREAKER_CONFIRM:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_OPEN_BREAKER_CONFIRM(hex = "0x0300001D", type = DataType.NONE), + /** + * hex = "0x0300001F", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_FIRMWARE_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_FIRMWARE_VERSION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_FIRMWARE_VERSION(hex = "0x0300001F", type = DataType.NONE), + /** + * hex = "0x03000022", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_UPDATE_STATUS&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_UPDATE_STATUS:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_UPDATE_STATUS(hex = "0x03000022", type = DataType.NONE), + /** + * hex = "0x03000023", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_SET_TRAINING_MODE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_SET_TRAINING_MODE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_SET_TRAINING_MODE(hex = "0x03000023", type = DataType.NONE), + /** + * hex = "0x03000024", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_TIME_LAST_RESPONSE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_TIME_LAST_RESPONSE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_TIME_LAST_RESPONSE(hex = "0x03000024", type = DataType.NONE), + /** + * hex = "0x03000025", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MANUFACTURER_NAME&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MANUFACTURER_NAME:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_MANUFACTURER_NAME(hex = "0x03000025", type = DataType.NONE), + /** + * hex = "0x03000026", type = DataType.NONE + * + * Requests the usable capacity. A block of type [USABLE_CAPACITY] is delivered as the response + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_USABLE_CAPACITY(hex = "0x03000026", type = DataType.NONE), + /** + * hex = "0x03000027", type = DataType.NONE + * + * Requests the remaining usable capacity. A block of type [USABLE_REMAINING_CAPACITY] is delivered as the response + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_USABLE_REMAINING_CAPACITY(hex = "0x03000027", type = DataType.NONE), + /** + * hex = "0x03000028", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_SET_A1_DATA&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_SET_A1_DATA:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_SET_A1_DATA(hex = "0x03000028", type = DataType.NONE), + /** + * hex = "0x03000029", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_SET_A1_MODE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_SET_A1_MODE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_SET_A1_MODE(hex = "0x03000029", type = DataType.NONE), + /** + * hex = "0x03000030", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_SET_A1_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_SET_A1_VOLTAGE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_SET_A1_VOLTAGE(hex = "0x03000030", type = DataType.NONE), + /** + * hex = "0x03000031", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_SET_A1_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_SET_A1_CURRENT:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_SET_A1_CURRENT(hex = "0x03000031", type = DataType.NONE), + /** + * hex = "0x03000032", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_CONTROL_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_CONTROL_CODE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_CONTROL_CODE(hex = "0x03000032", type = DataType.NONE), + /** + * hex = "0x03000043", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_SPECIFICATION&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_SPECIFICATION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_SPECIFICATION(hex = "0x03000043", type = DataType.NONE), + /** + * hex = "0x03000044", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_INTERNALS&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_INTERNALS:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_INTERNALS(hex = "0x03000044", type = DataType.NONE), + /** + * hex = "0x03000045", type = DataType.NONE + * + * Queries the capacity of the battery as it was designed according to the specification. A block of type [DESIGN_CAPACITY] is delivered as the response + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_DESIGN_CAPACITY(hex = "0x03000045", type = DataType.NONE), + /** + * hex = "0x03000046", type = DataType.NONE + * + * Queries the volate of the battery as it was designed according to the specification. A block of type [DESIGN_VOLTAGE] is delivered as the response + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_DESIGN_VOLTAGE(hex = "0x03000046", type = DataType.NONE), + /** + * hex = "0x03000047", type = DataType.NONE + * + * Query of the highest possible temperature during charging. A block of the type [CHARGE_HIGH_TEMP] is delivered in response + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_CHARGE_HIGH_TEMP(hex = "0x03000047", type = DataType.NONE), + /** + * hex = "0x03000048", type = DataType.NONE + * + * Query of the lowest possible temperature during charging. A block of the type [CHARGE_LOW_TEMP] is delivered in response + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_CHARGE_LOW_TEMP(hex = "0x03000048", type = DataType.NONE), + /** + * hex = "0x03000049", type = DataType.NONE + * + * Query the date of manufacture of the battery. A block of the type [MANUFACTURE_DATE] is delivered in response + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_MANUFACTURE_DATE(hex = "0x03000049", type = DataType.NONE), + /** + * hex = "0x03000050", type = DataType.NONE + * + * Query the serial number. A block of the type [SERIALNO] is delivered in response + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_SERIALNO(hex = "0x03000050", type = DataType.NONE), + /** + * hex = "0x03000051", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_DATA_TABLE_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_DATA_TABLE_VERSION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_DATA_TABLE_VERSION(hex = "0x03000051", type = DataType.NONE), + /** + * hex = "0x03000052", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_PROTOCOL_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_PROTOCOL_VERSION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_PROTOCOL_VERSION(hex = "0x03000052", type = DataType.NONE), + /** + * hex = "0x03000053", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_PCB_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_PCB_VERSION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_PCB_VERSION(hex = "0x03000053", type = DataType.NONE), + /** + * hex = "0x03000054", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_TOTAL_USE_TIME&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_TOTAL_USE_TIME:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_TOTAL_USE_TIME(hex = "0x03000054", type = DataType.NONE), + /** + * hex = "0x03000055", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_TOTAL_DISCHARGE_TIME&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_TOTAL_DISCHARGE_TIME:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_TOTAL_DISCHARGE_TIME(hex = "0x03000055", type = DataType.NONE), + /** + * hex = "0x03000056", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_AVAILABLE_BATTERIES&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_AVAILABLE_BATTERIES:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_AVAILABLE_BATTERIES(hex = "0x03000056", type = DataType.NONE), + /** + * hex = "0x03000060", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_OPEN_FET&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_OPEN_FET:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_OPEN_FET(hex = "0x03000060", type = DataType.NONE), + /** + * hex = "0x03000061", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_FET_STATE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_FET_STATE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_FET_STATE(hex = "0x03000061", type = DataType.NONE), + /** + * hex = "0x03000062", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_BATTERY_SOFT_ON&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_BATTERY_SOFT_ON:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_BATTERY_SOFT_ON(hex = "0x03000062", type = DataType.NONE), + /** + * hex = "0x03000130", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_MEASURED_RESISTANCE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_MEASURED_RESISTANCE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_MEASURED_RESISTANCE(hex = "0x03000130", type = DataType.NONE), + /** + * hex = "0x03000044", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_RUN_MEASURED_RESISTANCE&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_RUN_MEASURED_RESISTANCE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_RUN_MEASURED_RESISTANCE(hex = "0x03000131", type = DataType.NONE), + /** + * hex = "0x03800011", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.RC&labels=documentation&body=Documentation+update+for+enum+BatTag.RC:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + RC(hex = "0x03800011", type = DataType.NONE), + /** + * hex = "0x03800013", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MIN_DCB_CELL_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.MIN_DCB_CELL_CURRENT:). + * + * Unit: Ampere + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + MIN_DCB_CELL_CURRENT(hex = "0x03800013", type = DataType.FLOAT32), + /** + * hex = "0x03800014", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_DCB_CELL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_DCB_CELL_VOLTAGE:). + * + * Unit: Volt + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + MAX_DCB_CELL_VOLTAGE(hex = "0x03800014", type = DataType.FLOAT32), + /** + * hex = "0x03800015", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MIN_DCB_CELL_VOLTAGE&labels=documentation&body=Documentation+update+for+enum+BatTag.MIN_DCB_CELL_VOLTAGE:). + * + * Unit: Volt + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + MIN_DCB_CELL_VOLTAGE(hex = "0x03800015", type = DataType.FLOAT32), + /** + * hex = "0x03800018", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_ALL_CELL_TEMPERATURES&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_ALL_CELL_TEMPERATURES:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_ALL_CELL_TEMPERATURES(hex = "0x03800018", type = DataType.CONTAINER), + /** + * hex = "0x0380001A", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_ALL_CELL_VOLTAGES&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_ALL_CELL_VOLTAGES:). + * + * Unit: Volt + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_ALL_CELL_VOLTAGES(hex = "0x0380001A", type = DataType.FLOAT32), + /** + * hex = "0x0380001C", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.OPEN_BREAKER&labels=documentation&body=Documentation+update+for+enum+BatTag.OPEN_BREAKER:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + OPEN_BREAKER(hex = "0x0380001C", type = DataType.NONE), + /** + * hex = "0x0380001D", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.OPEN_BREAKER_CONFIRM&labels=documentation&body=Documentation+update+for+enum+BatTag.OPEN_BREAKER_CONFIRM:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + OPEN_BREAKER_CONFIRM(hex = "0x0380001D", type = DataType.NONE), + /** + * hex = "0x0380001F", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.FIRMWARE_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.FIRMWARE_VERSION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + FIRMWARE_VERSION(hex = "0x0380001F", type = DataType.NONE), + /** + * hex = "0x03800022", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.UPDATE_STATUS&labels=documentation&body=Documentation+update+for+enum+BatTag.UPDATE_STATUS:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + UPDATE_STATUS(hex = "0x03800022", type = DataType.NONE), + /** + * hex = "0x03800024", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.TIME_LAST_RESPONSE&labels=documentation&body=Documentation+update+for+enum+BatTag.TIME_LAST_RESPONSE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + TIME_LAST_RESPONSE(hex = "0x03800024", type = DataType.NONE), + /** + * hex = "0x03800025", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MANUFACTURER_NAME&labels=documentation&body=Documentation+update+for+enum+BatTag.MANUFACTURER_NAME:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + MANUFACTURER_NAME(hex = "0x03800025", type = DataType.NONE), + /** + * hex = "0x03800026", type = DataType.FLOAT32 + * + * The usable capacity of the battery in Ah + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + USABLE_CAPACITY(hex = "0x03800026", type = DataType.FLOAT32), + /** + * hex = "0x03800027", type = DataType.FLOAT32 + * + * Remaining capacity in Wh (or Ah??) + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + USABLE_REMAINING_CAPACITY(hex = "0x03800027", type = DataType.FLOAT32), + /** + * hex = "0x03800028", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.SET_A1_DATA&labels=documentation&body=Documentation+update+for+enum+BatTag.SET_A1_DATA:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + SET_A1_DATA(hex = "0x03800028", type = DataType.NONE), + /** + * hex = "0x03800032", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.CONTROL_CODE&labels=documentation&body=Documentation+update+for+enum+BatTag.CONTROL_CODE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + CONTROL_CODE(hex = "0x03800032", type = DataType.NONE), + /** + * hex = "0x03800042", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_INFO&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_INFO:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_INFO(hex = "0x03800042", type = DataType.NONE), + /** + * hex = "0x03800043", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.SPECIFICATION&labels=documentation&body=Documentation+update+for+enum+BatTag.SPECIFICATION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + SPECIFICATION(hex = "0x03800043", type = DataType.NONE), + /** + * hex = "0x03800044", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INTERNALS&labels=documentation&body=Documentation+update+for+enum+BatTag.INTERNALS:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INTERNALS(hex = "0x03800044", type = DataType.NONE), + /** + * hex = "0x03800045", type = DataType.FLOAT32 + * + * Response block to a [REQ_DESIGN_CAPACITY] request. Contains the capacity of the battery as it was designed according to the specification in Ah. + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DESIGN_CAPACITY(hex = "0x03800045", type = DataType.FLOAT32), + /** + * hex = "0x03800046", type = DataType.FLOAT32 + * + * Response block to a [REQ_DESIGN_VOLTAGE] request. Contains the voltage of the battery as it was designed according to the specification in Volts. + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DESIGN_VOLTAGE(hex = "0x03800046", type = DataType.FLOAT32), + /** + * hex = "0x03800047", type = DataType.FLOAT32 + * + * Response block to a [REQ_CHARGE_HIGH_TEMP] request. Contains the maximum permissible charging temperature in Celsius. + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + CHARGE_HIGH_TEMP(hex = "0x03800047", type = DataType.FLOAT32), + /** + * hex = "0x03800048", type = DataType.NONE + * + * Response block to a [REQ_CHARGE_LOW_TEMP] request. Contains the minimum permissible charging temperature in Celsius. + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + CHARGE_LOW_TEMP(hex = "0x03800048", type = DataType.NONE), + /** + * hex = "0x03800049", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MANUFACTURE_DATE&labels=documentation&body=Documentation+update+for+enum+BatTag.MANUFACTURE_DATE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + MANUFACTURE_DATE(hex = "0x03800049", type = DataType.NONE), + /** + * hex = "0x03800050", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.SERIALNO&labels=documentation&body=Documentation+update+for+enum+BatTag.SERIALNO:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + SERIALNO(hex = "0x03800050", type = DataType.STRING), + /** + * hex = "0x03800051", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DATA_TABLE_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.DATA_TABLE_VERSION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DATA_TABLE_VERSION(hex = "0x03800051", type = DataType.NONE), + /** + * hex = "0x03800052", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.PROTOCOL_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.PROTOCOL_VERSION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + PROTOCOL_VERSION(hex = "0x03800052", type = DataType.NONE), + /** + * hex = "0x03800053", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.PCB_VERSION&labels=documentation&body=Documentation+update+for+enum+BatTag.PCB_VERSION:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + PCB_VERSION(hex = "0x03800053", type = DataType.NONE), + /** + * hex = "0x03800054", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.TOTAL_USE_TIME&labels=documentation&body=Documentation+update+for+enum+BatTag.TOTAL_USE_TIME:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + TOTAL_USE_TIME(hex = "0x03800054", type = DataType.NONE), + /** + * hex = "0x03800055", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.TOTAL_DISCHARGE_TIME&labels=documentation&body=Documentation+update+for+enum+BatTag.TOTAL_DISCHARGE_TIME:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + TOTAL_DISCHARGE_TIME(hex = "0x03800055", type = DataType.NONE), + /** + * hex = "0x03800057", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.AVAILABLE_BATTERIES&labels=documentation&body=Documentation+update+for+enum+BatTag.AVAILABLE_BATTERIES:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + AVAILABLE_BATTERIES(hex = "0x03800057", type = DataType.NONE), + /** + * hex = "0x03000058", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.REQ_BATTERY_SPEC&labels=documentation&body=Documentation+update+for+enum+BatTag.REQ_BATTERY_SPEC:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + REQ_BATTERY_SPEC(hex = "0x03000058", type = DataType.NONE), + /** + * hex = "0x03800058", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.BATTERY_SPEC&labels=documentation&body=Documentation+update+for+enum+BatTag.BATTERY_SPEC:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + BATTERY_SPEC(hex = "0x03800058", type = DataType.NONE), + /** + * hex = "0x03800059", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INSTANCE_DESCRIPTOR&labels=documentation&body=Documentation+update+for+enum+BatTag.INSTANCE_DESCRIPTOR:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INSTANCE_DESCRIPTOR(hex = "0x03800059", type = DataType.NONE), + /** + * hex = "0x03800061", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.FET_STATE&labels=documentation&body=Documentation+update+for+enum+BatTag.FET_STATE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + FET_STATE(hex = "0x03800061", type = DataType.NONE), + /** + * hex = "0x03800062", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.BATTERY_SOFT_ON&labels=documentation&body=Documentation+update+for+enum+BatTag.BATTERY_SOFT_ON:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + BATTERY_SOFT_ON(hex = "0x03800062", type = DataType.NONE), + /** + * hex = "0x03800125", type = DataType.FLOAT32 + * + * Contains the specified capacity in Wh + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + SPECIFIED_CAPACITY(hex = "0x03800125", type = DataType.FLOAT32), + /** + * hex = "0x03800126", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.SPECIFIED_DISCHARGE_POWER&labels=documentation&body=Documentation+update+for+enum+BatTag.SPECIFIED_DISCHARGE_POWER:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + SPECIFIED_DISCHARGE_POWER(hex = "0x03800126", type = DataType.NONE), + /** + * hex = "0x03800127", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.SPECIFIED_CHARGE_POWER&labels=documentation&body=Documentation+update+for+enum+BatTag.SPECIFIED_CHARGE_POWER:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + SPECIFIED_CHARGE_POWER(hex = "0x03800127", type = DataType.NONE), + /** + * hex = "0x03800128", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.SPECIFIED_MAX_DCB_COUNT&labels=documentation&body=Documentation+update+for+enum+BatTag.SPECIFIED_MAX_DCB_COUNT:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + SPECIFIED_MAX_DCB_COUNT(hex = "0x03800128", type = DataType.NONE), + /** + * hex = "0x03800129", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.ROLE&labels=documentation&body=Documentation+update+for+enum+BatTag.ROLE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + ROLE(hex = "0x03800129", type = DataType.NONE), + /** + * hex = "0x03800130", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INTERNAL_CURRENT_AVG30&labels=documentation&body=Documentation+update+for+enum+BatTag.INTERNAL_CURRENT_AVG30:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INTERNAL_CURRENT_AVG30(hex = "0x03800130", type = DataType.NONE), + /** + * hex = "0x03800131", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INTERNAL_MTV_AVG30&labels=documentation&body=Documentation+update+for+enum+BatTag.INTERNAL_MTV_AVG30:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INTERNAL_MTV_AVG30(hex = "0x03800131", type = DataType.NONE), + /** + * hex = "0x03800132", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INTERNAL_MAX_CHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.INTERNAL_MAX_CHARGE_CURRENT:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INTERNAL_MAX_CHARGE_CURRENT(hex = "0x03800132", type = DataType.NONE), + /** + * hex = "0x03800133", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INTERNAL_MAX_DISCHARGE_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.INTERNAL_MAX_DISCHARGE_CURRENT:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INTERNAL_MAX_DISCHARGE_CURRENT(hex = "0x03800133", type = DataType.NONE), + /** + * hex = "0x03800134", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INTERNAL_MAX_CHARGE_CURR_PER_DCB&labels=documentation&body=Documentation+update+for+enum+BatTag.INTERNAL_MAX_CHARGE_CURR_PER_DCB:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INTERNAL_MAX_CHARGE_CURR_PER_DCB(hex = "0x03800134", type = DataType.NONE), + /** + * hex = "0x03800135", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INTERNAL_MAX_DISCHARGE_CURR_PER_DCB&labels=documentation&body=Documentation+update+for+enum+BatTag.INTERNAL_MAX_DISCHARGE_CURR_PER_DCB:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INTERNAL_MAX_DISCHARGE_CURR_PER_DCB(hex = "0x03800135", type = DataType.NONE), + /** + * hex = "0x03800136", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INTERNAL_MAX_CHARGE_CURR_DATA_LOG&labels=documentation&body=Documentation+update+for+enum+BatTag.INTERNAL_MAX_CHARGE_CURR_DATA_LOG:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INTERNAL_MAX_CHARGE_CURR_DATA_LOG(hex = "0x03800136", type = DataType.NONE), + /** + * hex = "0x03800137", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.INTERNAL_MAX_DISCHARGE_CURR_DATA_LOG&labels=documentation&body=Documentation+update+for+enum+BatTag.INTERNAL_MAX_DISCHARGE_CURR_DATA_LOG:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + INTERNAL_MAX_DISCHARGE_CURR_DATA_LOG(hex = "0x03800137", type = DataType.NONE), + /** + * hex = "0x03800300", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_NR_SERIES_CELL&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_NR_SERIES_CELL:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_NR_SERIES_CELL(hex = "0x03800300", type = DataType.NONE), + /** + * hex = "0x03800301", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_NR_PARALLEL_CELL&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_NR_PARALLEL_CELL:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_NR_PARALLEL_CELL(hex = "0x03800301", type = DataType.NONE), + /** + * hex = "0x03800302", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_MANUFACTURE_NAME&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_MANUFACTURE_NAME:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_MANUFACTURE_NAME(hex = "0x03800302", type = DataType.NONE), + /** + * hex = "0x03800303", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_DEVICE_NAME&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_DEVICE_NAME:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_DEVICE_NAME(hex = "0x03800303", type = DataType.NONE), + /** + * hex = "0x03800304", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_SERIALCODE&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_SERIALCODE:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_SERIALCODE(hex = "0x03800304", type = DataType.NONE), + /** + * hex = "0x03800305", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_NR_SENSOR&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_NR_SENSOR:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_NR_SENSOR(hex = "0x03800305", type = DataType.NONE), + /** + * hex = "0x03800306", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_STATUS&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_STATUS:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_STATUS(hex = "0x03800306", type = DataType.NONE), + /** + * hex = "0x03800307", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_WARNING&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_WARNING:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_WARNING(hex = "0x03800307", type = DataType.NONE), + /** + * hex = "0x03800308", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_ALARM&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_ALARM:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_ALARM(hex = "0x03800308", type = DataType.NONE), + /** + * hex = "0x03800309", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.DCB_ERROR&labels=documentation&body=Documentation+update+for+enum+BatTag.DCB_ERROR:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + DCB_ERROR(hex = "0x03800309", type = DataType.NONE), + /** + * hex = "0x0380000F", type = DataType.FLOAT32 + * + * Contains the condition of the battery as a percentage, taking into account the effects of ageing + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + ASOC(hex = "0x0380000F", type = DataType.FLOAT32), + /** + * hex = "0x03800012", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.MAX_DCB_CELL_CURRENT&labels=documentation&body=Documentation+update+for+enum+BatTag.MAX_DCB_CELL_CURRENT:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + MAX_DCB_CELL_CURRENT(hex = "0x03800012", type = DataType.INT32), + /** + * hex = "0x0380000E", type = DataType.NONE + * + * You know what the tag means or want to improve the tag description? Create a [Ticket](https://github.com/jnk-cons/easy-rscp/issues/new?title=Documentation+improvement+for+BatTag.RSOC_REAL&labels=documentation&body=Documentation+update+for+enum+BatTag.RSOC_REAL:). + * + * Original E3DC Documentation: + * + * en: + * + * de: + */ + RSOC_REAL(hex = "0x0380000E", type = DataType.FLOAT32), +} + -} diff --git a/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/service/BatteryService.kt b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/service/BatteryService.kt new file mode 100644 index 00000000..8ba7e8d1 --- /dev/null +++ b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/service/BatteryService.kt @@ -0,0 +1,31 @@ +package de.jnkconsulting.e3dc.easyrscp.api.service + +import de.jnkconsulting.e3dc.easyrscp.api.service.model.BatterySpec +import de.jnkconsulting.e3dc.easyrscp.api.service.model.BatteryStatus +import de.jnkconsulting.e3dc.easyrscp.api.service.model.PowerState + +/** + * Service to query the battery specification and status data + * + * @since 2.1 + */ +interface BatteryService { + + /** + * Liest die Batteriespezifikation aus dem E3DC Hauskraftwerk + * + * @return Specification of the battery. As a rule, the list contains only one element. Theoretically, however, a home power station can have several batteries + * + * @since 2.1 + */ + fun readSpecification(): List + + /** + * Reads the current status data of the battery + * + * @return Current monitoring data. As a rule, the list contains only one element. Theoretically, however, a home power station can have several batteries + * + * @since 2.1 + */ + fun readMonitoringData(): List +} diff --git a/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/service/model/Battery.kt b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/service/model/Battery.kt new file mode 100644 index 00000000..23923193 --- /dev/null +++ b/api/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/api/service/model/Battery.kt @@ -0,0 +1,107 @@ +package de.jnkconsulting.e3dc.easyrscp.api.service.model + +/** + * Contains the specification data of the battery + * + * @param index ID of the battery in the E3DC system + * @param name Name of the battery stored in the E3DC system + * @param maxChargingTempCelsius Maximum possible charging temperature in Celsius. fyi: I don't know why the temperature is an Int value for the battery and a float for the DCB module ... BUT, it is like this in the protocol + * @param minChargingTempCelsius Maximum possible discharging temperature in Celsius. fyi: I don't know why the temperature is an Int value for the battery and a float for the DCB module ... BUT, it is like this in the protocol + * @param voltage Voltage for which the battery was specified in volts + * @param capacityAh Capacity in Ah. Supplied by the system and NOT calculated. May therefore deviate slightly from the theoretically calculated value + * @param capacityWh Kapazität in Wh. Supplied by the system and NOT calculated. May therefore deviate slightly from the theoretically calculated value + * @param maxChargeCurrentA Maximum charging current in A + * @param maxDischargeCurrentA Maximum discharging current in A + * @param dcbSpecs List of specifications for the individual modules + * + * @since 2.1 + */ +data class BatterySpec( + val index: Short, + val name: String, + val maxChargingTempCelsius: Int, + val minChargingTempCelsius: Int, + val voltage: Float, + val capacityAh: Float, + val capacityWh: Percentage, + val maxChargeCurrentA: Float, + val maxDischargeCurrentA: Float, + val dcbSpecs: List +) + +/** + * Contains the specification of a battery module + * + * @param index ID of the module in the battery + * @param capacityAh Capacity of the module in Ah. Supplied by the system and NOT calculated. May therefore deviate slightly from the theoretically calculated value + * @param maxChargeCurrentA Maximum charging current in A + * @param maxDischargeCurrentA Maximum discharging current in A + * @param fullChargeCapacityAh Capacity of the module in Ah, from when the system displays 100% charge status + * @param voltage Voltage for which the module was specified in volts + * @param maxChargingTempCelsius Maximum possible charging temperature in Celsius. . fyi: I don't know why the temperature is an Int value for the battery and a float for the DCB module ... BUT, it is like this in the protocol + * @param minChargingTempCelsius Maximum possible discharging temperature in Celsius. . fyi: I don't know why the temperature is an Int value for the battery and a float for the DCB module ... BUT, it is like this in the protocol + * @param serialCells Series-connected cells of the module + * @param parallelCells Cells of the module connected in parallel + * + * @since 2.1 + */ +data class DCBSpec( + val index: Int, + val capacityAh: Float, + val maxChargeCurrentA: Float, + val maxDischargeCurrentA: Float, + val fullChargeCapacityAh: Float, + val voltage: Float, + val maxChargingTempCelsius: Float, + val minChargingTempCelsius: Float, + val serialCells: Int, + val parallelCells: Int, +) + +/** + * Contains information on the current status of the battery + * + * @param index ID of the battery in the E3DC system + * @param trainingModeActive Information on whether the battery is in training mode + * @param connected Information on whether the battery is connected to the system (battery disconnect switch on the home power station) + * @param working Information on whether the battery is working correctly + * @param inService Information on whether the battery is in maintenance mode + * @param asoc Percentage value that includes the condition of the battery taking ageing into account. A new battery theoretically has a value of 1.0 (100%) + * @param realRsoc Current charge level as a percentage of the battery without taking into account the reserve for absolute deep discharge and theoretically possible full charge. The value should therefore never reach completely 0 and never completely 1 + * @param voltage Current battery voltage + * @param dcbStatus Status of the individual battery modules + * + * @since 2.1 + */ +data class BatteryStatus( + val index: Short, + val trainingModeActive: Boolean, + val connected: Boolean, + val working: Boolean, + val inService: Boolean, + val asoc: Float, + val realRsoc: Float, + val voltage: Float, + val dcbStatus: List +) + +/** + * Contains current status information on a battery module + * + * @param index ID of the module in the battery + * @param voltage Current voltage + * @param voltageAVG30s Average voltage of the last 30 seconds + * @param currentA Current amperage in A + * @param currentAVG30s Average current in the last 30 seconds + * @param temperaturesCelsius Current temperature values of the respective sensors in Celsius + * + * @since 2.1 + */ +data class DCBStatus( + val index: Int, + val voltage: Float, + val voltageAVG30s: Float, + val currentA: Float, + val currentAVG30s: Float, + val temperaturesCelsius: List +) diff --git a/service/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/service/DefaultBatteryService.kt b/service/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/service/DefaultBatteryService.kt new file mode 100644 index 00000000..18375caf --- /dev/null +++ b/service/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/service/DefaultBatteryService.kt @@ -0,0 +1,132 @@ +package de.jnkconsulting.e3dc.easyrscp.service + +import de.jnkconsulting.e3dc.easyrscp.api.connection.ConnectionPool +import de.jnkconsulting.e3dc.easyrscp.api.frame.tags.BatTag +import de.jnkconsulting.e3dc.easyrscp.api.service.BatteryService +import de.jnkconsulting.e3dc.easyrscp.api.service.LiveDataService +import de.jnkconsulting.e3dc.easyrscp.api.service.model.* +import de.jnkconsulting.e3dc.easyrscp.frame.DataBuilder +import de.jnkconsulting.e3dc.easyrscp.frame.FrameBuilder +import de.jnkconsulting.e3dc.easyrscp.service.converter.FrameConverter +import de.jnkconsulting.e3dc.easyrscp.service.converter.PowerStateConverter +import de.jnkconsulting.e3dc.easyrscp.service.creator.BatteryInfoRequestCreator +import de.jnkconsulting.e3dc.easyrscp.service.creator.DCBInfoRequestCreator +import de.jnkconsulting.e3dc.easyrscp.service.creator.FrameCreator +import de.jnkconsulting.e3dc.easyrscp.service.creator.RequestLiveDataCreator +import mu.KotlinLogging + +/** + * Implementation to query battery information from the home power plant + * + * Fyi: The information is determined using a request sequence, so this service does not allow you to use your own converters + * + * @param connectionPool Connection pool to be used + * @param batInfoRequestCreator Creator for requesting battery information + * @param dcbInfoRequestCreator Creator for requesting information about a single battery module + * + * @since 2.1 + */ +class DefaultBatteryService( + private val connectionPool: ConnectionPool, + private val batInfoRequestCreator: FrameCreator = BatteryInfoRequestCreator(), + private val dcbInfoRequestCreator: FrameCreator> = DCBInfoRequestCreator() +) : BatteryService { + + private val logger = KotlinLogging.logger {} + override fun readSpecification(): List { + return connectionPool.executeAndRelease { + val result = mutableListOf() + for (batIndex in 0..9) { + val dcbSpecs = mutableListOf() + val batInfoRequest = batInfoRequestCreator.invoke(batIndex) + val batInfoResponse = it.send(batInfoRequest) + if (batInfoResponse.isDataBlockInError(BatTag.DATA)) { + // no more batteries in the HPS + break + } + val dcbCount = batInfoResponse.byteByTag(BatTag.DCB_COUNT, BatTag.DATA) + + for (dcbIndex in 0.. { + return connectionPool.executeAndRelease { + val result = mutableListOf() + for (batIndex in 0..9) { + val dcbStatus = mutableListOf() + val batInfoRequest = batInfoRequestCreator.invoke(batIndex) + val batInfoResponse = it.send(batInfoRequest) + if (batInfoResponse.isDataBlockInError(BatTag.DATA)) { + // no more batteries in the HPS + break + } + val dcbCount = batInfoResponse.byteByTag(BatTag.DCB_COUNT, BatTag.DATA) + + for (dcbIndex in 0.. + data.valueAsFloat()?: 0.0f + } + )) + } + result.add( + BatteryStatus( + index = batIndex.toShort(), + trainingModeActive = batInfoResponse.byteByTag(BatTag.TRAINING_MODE, BatTag.DATA) != 0.toByte(), + connected = batInfoResponse.booleanByTag(BatTag.DEVICE_CONNECTED, BatTag.DATA, BatTag.DEVICE_STATE), + working = batInfoResponse.booleanByTag(BatTag.DEVICE_WORKING, BatTag.DATA, BatTag.DEVICE_STATE), + inService = batInfoResponse.booleanByTag(BatTag.DEVICE_IN_SERVICE, BatTag.DATA, BatTag.DEVICE_STATE), + asoc = batInfoResponse.floatByTag(BatTag.ASOC, BatTag.DATA) / 100.0f, + realRsoc = batInfoResponse.floatByTag(BatTag.RSOC_REAL, BatTag.DATA) / 100.0f, + voltage = batInfoResponse.floatByTag(BatTag.MODULE_VOLTAGE, BatTag.DATA), + dcbStatus = dcbStatus + )) + } + result + } + } + +} diff --git a/service/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/service/creator/BatteryInfoRequestCreator.kt b/service/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/service/creator/BatteryInfoRequestCreator.kt new file mode 100644 index 00000000..53deba07 --- /dev/null +++ b/service/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/service/creator/BatteryInfoRequestCreator.kt @@ -0,0 +1,31 @@ +package de.jnkconsulting.e3dc.easyrscp.service.creator + +import de.jnkconsulting.e3dc.easyrscp.api.frame.tags.BatTag +import de.jnkconsulting.e3dc.easyrscp.frame.DataBuilder +import de.jnkconsulting.e3dc.easyrscp.frame.FrameBuilder + +class BatteryInfoRequestCreator : FrameCreator{ + + override fun invoke(batIndex: Int) = + FrameBuilder() + .addData( + DataBuilder().tag(BatTag.REQ_DATA).container( + DataBuilder().tag(BatTag.INDEX).uint16(batIndex.toShort()).build(), + DataBuilder().tag(BatTag.REQ_DEVICE_NAME).build(), + DataBuilder().tag(BatTag.REQ_CHARGE_HIGH_TEMP).build(), + DataBuilder().tag(BatTag.REQ_CHARGE_LOW_TEMP).build(), + DataBuilder().tag(BatTag.REQ_DESIGN_VOLTAGE).build(), + DataBuilder().tag(BatTag.REQ_DESIGN_CAPACITY).build(), + DataBuilder().tag(BatTag.REQ_SPECIFICATION).build(), + DataBuilder().tag(BatTag.REQ_MAX_CHARGE_CURRENT).build(), + DataBuilder().tag(BatTag.REQ_MAX_DISCHARGE_CURRENT).build(), + DataBuilder().tag(BatTag.REQ_DCB_COUNT).build(), + DataBuilder().tag(BatTag.REQ_TRAINING_MODE).build(), + DataBuilder().tag(BatTag.REQ_DEVICE_STATE).build(), + DataBuilder().tag(BatTag.REQ_ASOC).build(), + DataBuilder().tag(BatTag.REQ_RSOC_REAL).build(), + DataBuilder().tag(BatTag.REQ_MODULE_VOLTAGE).build(), + ).build() + ) + .build() +} diff --git a/service/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/service/creator/DCBInfoRequestCreator.kt b/service/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/service/creator/DCBInfoRequestCreator.kt new file mode 100644 index 00000000..885a59e0 --- /dev/null +++ b/service/src/main/kotlin/de/jnkconsulting/e3dc/easyrscp/service/creator/DCBInfoRequestCreator.kt @@ -0,0 +1,19 @@ +package de.jnkconsulting.e3dc.easyrscp.service.creator + +import de.jnkconsulting.e3dc.easyrscp.api.frame.tags.BatTag +import de.jnkconsulting.e3dc.easyrscp.frame.DataBuilder +import de.jnkconsulting.e3dc.easyrscp.frame.FrameBuilder + +class DCBInfoRequestCreator : FrameCreator>{ + + override fun invoke(indexes: Pair) = + FrameBuilder() + .addData( + DataBuilder().tag(BatTag.REQ_DATA).container( + DataBuilder().tag(BatTag.INDEX).uint16(indexes.first.toShort()).build(), + DataBuilder().tag(BatTag.REQ_DCB_INFO).uint16(indexes.second.toShort()).build(), + DataBuilder().tag(BatTag.REQ_DCB_ALL_CELL_TEMPERATURES).build(), + DataBuilder().tag(BatTag.REQ_DCB_ALL_CELL_VOLTAGES).build(), + ).build() + ).build() +} diff --git a/service/src/test/kotlin/de/jnkconsulting/e3dc/easyrscp/service/DefaultBatteryServiceTest.kt b/service/src/test/kotlin/de/jnkconsulting/e3dc/easyrscp/service/DefaultBatteryServiceTest.kt new file mode 100644 index 00000000..d7effa5f --- /dev/null +++ b/service/src/test/kotlin/de/jnkconsulting/e3dc/easyrscp/service/DefaultBatteryServiceTest.kt @@ -0,0 +1,29 @@ +package de.jnkconsulting.e3dc.easyrscp.service + +import org.junit.jupiter.api.Test +import org.junit.jupiter.api.condition.EnabledIfEnvironmentVariable + +class DefaultBatteryServiceTest: IntegrationTestBase() { + + @Test + @EnabledIfEnvironmentVariable(named = "E3DC_HOST", matches = ".*\\S+.*") + @EnabledIfEnvironmentVariable(named = "E3DC_USER", matches = ".*\\S+.*") + @EnabledIfEnvironmentVariable(named = "RSCP_PASSWORD", matches = ".*\\S+.*") + @EnabledIfEnvironmentVariable(named = "E3DC_PORTAL_PASSWORD", matches = ".*\\S+.*") + fun `read battery spec`() { + val toTest = DefaultBatteryService(connectionPool) + val result = toTest.readSpecification() + println(result) + } + + @Test + @EnabledIfEnvironmentVariable(named = "E3DC_HOST", matches = ".*\\S+.*") + @EnabledIfEnvironmentVariable(named = "E3DC_USER", matches = ".*\\S+.*") + @EnabledIfEnvironmentVariable(named = "RSCP_PASSWORD", matches = ".*\\S+.*") + @EnabledIfEnvironmentVariable(named = "E3DC_PORTAL_PASSWORD", matches = ".*\\S+.*") + fun `read battery status`() { + val toTest = DefaultBatteryService(connectionPool) + val result = toTest.readMonitoringData() + println(result) + } +}