{
    "group": {
        "groups": [
            {
                "count": 0,
                "name": "lithium_ion_string_module",
                "points": [
                    {
                        "desc": "Count of all cells in the module.",
                        "label": "Module Cell Count",
                        "mandatory": "M",
                        "name": "ModNCell",
                        "size": 1,
                        "type": "uint16"
                    },
                    {
                        "desc": "Module state of charge, expressed as a percentage.",
                        "label": "Module SoC",
                        "name": "ModSoC",
                        "sf": "SoC_SF",
                        "size": 1,
                        "type": "uint16",
                        "units": "%"
                    },
                    {
                        "desc": "Module state of health, expressed as a percentage.",
                        "label": "Module SoH",
                        "name": "ModSoH",
                        "sf": "SoH_SF",
                        "size": 1,
                        "type": "uint16",
                        "units": "%"
                    },
                    {
                        "desc": "Maximum voltage for all cells in the module.",
                        "label": "Max Cell Voltage",
                        "mandatory": "M",
                        "name": "ModCellVMax",
                        "sf": "CellV_SF",
                        "size": 1,
                        "type": "uint16",
                        "units": "V"
                    },
                    {
                        "desc": "Cell with maximum voltage.",
                        "label": "Max Cell Voltage Cell",
                        "name": "ModCellVMaxCell",
                        "size": 1,
                        "type": "uint16"
                    },
                    {
                        "desc": "Minimum voltage for all cells in the module.",
                        "label": "Min Cell Voltage",
                        "mandatory": "M",
                        "name": "ModCellVMin",
                        "sf": "CellV_SF",
                        "size": 1,
                        "type": "uint16",
                        "units": "V"
                    },
                    {
                        "desc": "Cell with minimum voltage.",
                        "label": "Min Cell Voltage Cell",
                        "name": "ModCellVMinCell",
                        "sf": "CellV_SF",
                        "size": 1,
                        "type": "uint16",
                        "units": "V"
                    },
                    {
                        "desc": "Average voltage for all cells in the module.",
                        "label": "Average Cell Voltage",
                        "mandatory": "M",
                        "name": "ModCellVAvg",
                        "sf": "CellV_SF",
                        "size": 1,
                        "type": "uint16",
                        "units": "V"
                    },
                    {
                        "desc": "Maximum temperature for all cells in the module.",
                        "label": "Max Cell Temperature",
                        "mandatory": "M",
                        "name": "ModCellTmpMax",
                        "sf": "ModTmp_SF",
                        "size": 1,
                        "type": "int16",
                        "units": "C"
                    },
                    {
                        "desc": "Cell with maximum temperature.",
                        "label": "Max Cell Temperature Cell",
                        "name": "ModCellTmpMaxCell",
                        "size": 1,
                        "type": "uint16"
                    },
                    {
                        "desc": "Minimum temperature for all cells in the module.",
                        "label": "Min Cell Temperature",
                        "mandatory": "M",
                        "name": "ModCellTmpMin",
                        "sf": "ModTmp_SF",
                        "size": 1,
                        "type": "int16",
                        "units": "C"
                    },
                    {
                        "desc": "Cell with minimum temperature.",
                        "label": "Min Cell Temperature Cell",
                        "name": "ModCellTmpMinCell",
                        "size": 1,
                        "type": "uint16"
                    },
                    {
                        "desc": "Average temperature for all cells in the module.",
                        "label": "Average Cell Temperature",
                        "mandatory": "M",
                        "name": "ModCellTmpAvg",
                        "sf": "ModTmp_SF",
                        "size": 1,
                        "type": "int16",
                        "units": "C"
                    },
                    {
                        "desc": "Pad register.",
                        "label": "Pad",
                        "mandatory": "M",
                        "name": "Pad5",
                        "size": 1,
                        "type": "pad"
                    },
                    {
                        "desc": "Pad register.",
                        "label": "Pad",
                        "mandatory": "M",
                        "name": "Pad6",
                        "size": 1,
                        "type": "pad"
                    },
                    {
                        "desc": "Pad register.",
                        "label": "Pad",
                        "mandatory": "M",
                        "name": "Pad7",
                        "size": 1,
                        "type": "pad"
                    }
                ],
                "type": "group"
            }
        ],
        "label": "Lithium-Ion String Model",
        "name": "lithium_ion_string",
        "points": [
            {
                "desc": "Model identifier",
                "label": "Model ID",
                "mandatory": "M",
                "name": "ID",
                "size": 1,
                "static": "S",
                "type": "uint16",
                "value": 804
            },
            {
                "desc": "Model length",
                "label": "Model Length",
                "mandatory": "M",
                "name": "L",
                "size": 1,
                "static": "S",
                "type": "uint16"
            },
            {
                "desc": "Index of the string within the bank.",
                "label": "String Index",
                "mandatory": "M",
                "name": "Idx",
                "size": 1,
                "type": "uint16"
            },
            {
                "desc": "Count of modules in the string.",
                "label": "Module Count",
                "mandatory": "M",
                "name": "NMod",
                "size": 1,
                "type": "uint16"
            },
            {
                "desc": "Current status of the string.",
                "label": "String Status",
                "mandatory": "M",
                "name": "St",
                "size": 2,
                "symbols": [
                    {
                        "name": "STRING_ENABLED",
                        "value": 0
                    },
                    {
                        "name": "CONTACTOR_STATUS",
                        "value": 1
                    }
                ],
                "type": "bitfield32"
            },
            {
                "label": "Connection Failure Reason",
                "name": "ConFail",
                "size": 1,
                "symbols": [
                    {
                        "name": "NO_FAILURE",
                        "value": 0
                    },
                    {
                        "name": "BUTTON_PUSHED",
                        "value": 1
                    },
                    {
                        "name": "STR_GROUND_FAULT",
                        "value": 2
                    },
                    {
                        "name": "OUTSIDE_VOLTAGE_RANGE",
                        "value": 3
                    },
                    {
                        "name": "STRING_NOT_ENABLED",
                        "value": 4
                    },
                    {
                        "name": "FUSE_OPEN",
                        "value": 5
                    },
                    {
                        "name": "CONTACTOR_FAILURE",
                        "value": 6
                    },
                    {
                        "name": "PRECHARGE_FAILURE",
                        "value": 7
                    },
                    {
                        "name": "STRING_FAULT",
                        "value": 8
                    }
                ],
                "type": "enum16"
            },
            {
                "desc": "Number of cells currently being balanced in the string.",
                "label": "String Cell Balancing Count",
                "name": "NCellBal",
                "size": 1,
                "type": "uint16"
            },
            {
                "desc": "Battery string state of charge, expressed as a percentage.",
                "label": "String State of Charge",
                "mandatory": "M",
                "name": "SoC",
                "sf": "SoC_SF",
                "size": 1,
                "type": "uint16",
                "units": "%"
            },
            {
                "desc": "Depth of discharge for the string, expressed as a percentage.",
                "label": "String Depth of Discharge",
                "name": "DoD",
                "sf": "DoD_SF",
                "size": 1,
                "type": "uint16",
                "units": "%"
            },
            {
                "desc": "Number of discharge cycles executed upon the string.",
                "label": "String Cycle Count",
                "name": "NCyc",
                "size": 2,
                "type": "uint32"
            },
            {
                "desc": "Battery string state of health, expressed as a percentage.",
                "label": "String State of Health",
                "name": "SoH",
                "sf": "SoH_SF",
                "size": 1,
                "type": "uint16",
                "units": "%"
            },
            {
                "desc": "String current measurement.",
                "label": "String Current",
                "mandatory": "M",
                "name": "A",
                "sf": "A_SF",
                "size": 1,
                "type": "int16",
                "units": "A"
            },
            {
                "desc": "String voltage measurement.",
                "label": "String Voltage",
                "name": "V",
                "sf": "V_SF",
                "size": 1,
                "type": "uint16",
                "units": "V"
            },
            {
                "desc": "Maximum voltage for all cells in the string.",
                "label": "Max Cell Voltage",
                "mandatory": "M",
                "name": "CellVMax",
                "sf": "CellV_SF",
                "size": 1,
                "type": "uint16",
                "units": "V"
            },
            {
                "desc": "Module containing the cell with maximum cell voltage.",
                "label": "Max Cell Voltage Module",
                "name": "CellVMaxMod",
                "size": 1,
                "type": "uint16"
            },
            {
                "desc": "Minimum voltage for all cells in the string.",
                "label": "Min Cell Voltage",
                "mandatory": "M",
                "name": "CellVMin",
                "sf": "CellV_SF",
                "size": 1,
                "type": "uint16",
                "units": "V"
            },
            {
                "desc": "Module containing the cell with minimum cell voltage.",
                "label": "Min Cell Voltage Module",
                "name": "CellVMinMod",
                "size": 1,
                "type": "uint16"
            },
            {
                "desc": "Average voltage for all cells in the string.",
                "label": "Average Cell Voltage",
                "mandatory": "M",
                "name": "CellVAvg",
                "sf": "CellV_SF",
                "size": 1,
                "type": "uint16",
                "units": "V"
            },
            {
                "desc": "Maximum temperature for all modules in the string.",
                "label": "Max Module Temperature",
                "mandatory": "M",
                "name": "ModTmpMax",
                "sf": "ModTmp_SF",
                "size": 1,
                "type": "int16",
                "units": "C"
            },
            {
                "desc": "Module with the maximum temperature.",
                "label": "Max Module Temperature Module",
                "mandatory": "M",
                "name": "ModTmpMaxMod",
                "size": 1,
                "type": "uint16"
            },
            {
                "desc": "Minimum temperature for all modules in the string.",
                "label": "Min Module Temperature",
                "mandatory": "M",
                "name": "ModTmpMin",
                "sf": "ModTmp_SF",
                "size": 1,
                "type": "int16",
                "units": "C"
            },
            {
                "desc": "Module with the minimum temperature.",
                "label": "Min Module Temperature Module",
                "mandatory": "M",
                "name": "ModTmpMinMod",
                "size": 1,
                "type": "uint16"
            },
            {
                "desc": "Average temperature for all modules in the string.",
                "label": "Average Module Temperature",
                "mandatory": "M",
                "name": "ModTmpAvg",
                "sf": "ModTmp_SF",
                "size": 1,
                "type": "int16",
                "units": "C"
            },
            {
                "desc": "Pad register.",
                "label": "Pad",
                "mandatory": "M",
                "name": "Pad1",
                "size": 1,
                "type": "pad"
            },
            {
                "desc": "Status of the contactor(s) for the string.",
                "label": "Contactor Status",
                "name": "ConSt",
                "size": 2,
                "symbols": [
                    {
                        "name": "CONTACTOR_0",
                        "value": 0
                    },
                    {
                        "name": "CONTACTOR_1",
                        "value": 1
                    },
                    {
                        "name": "CONTACTOR_2",
                        "value": 2
                    },
                    {
                        "name": "CONTACTOR_3",
                        "value": 3
                    },
                    {
                        "name": "CONTACTOR_4",
                        "value": 4
                    },
                    {
                        "name": "CONTACTOR_5",
                        "value": 5
                    },
                    {
                        "name": "CONTACTOR_6",
                        "value": 6
                    },
                    {
                        "name": "CONTACTOR_7",
                        "value": 7
                    },
                    {
                        "name": "CONTACTOR_8",
                        "value": 8
                    },
                    {
                        "name": "CONTACTOR_9",
                        "value": 9
                    },
                    {
                        "name": "CONTACTOR_10",
                        "value": 10
                    },
                    {
                        "name": "CONTACTOR_11",
                        "value": 11
                    },
                    {
                        "name": "CONTACTOR_12",
                        "value": 12
                    },
                    {
                        "name": "CONTACTOR_13",
                        "value": 13
                    },
                    {
                        "name": "CONTACTOR_14",
                        "value": 14
                    },
                    {
                        "name": "CONTACTOR_15",
                        "value": 15
                    },
                    {
                        "name": "CONTACTOR_16",
                        "value": 16
                    },
                    {
                        "name": "CONTACTOR_17",
                        "value": 17
                    },
                    {
                        "name": "CONTACTOR_18",
                        "value": 18
                    },
                    {
                        "name": "CONTACTOR_19",
                        "value": 19
                    },
                    {
                        "name": "CONTACTOR_20",
                        "value": 20
                    },
                    {
                        "name": "CONTACTOR_21",
                        "value": 21
                    },
                    {
                        "name": "CONTACTOR_22",
                        "value": 22
                    },
                    {
                        "name": "CONTACTOR_23",
                        "value": 23
                    },
                    {
                        "name": "CONTACTOR_24",
                        "value": 24
                    },
                    {
                        "name": "CONTACTOR_25",
                        "value": 25
                    },
                    {
                        "name": "CONTACTOR_26",
                        "value": 26
                    },
                    {
                        "name": "CONTACTOR_27",
                        "value": 27
                    },
                    {
                        "name": "CONTACTOR_28",
                        "value": 28
                    },
                    {
                        "name": "CONTACTOR_29",
                        "value": 29
                    },
                    {
                        "name": "CONTACTOR_30",
                        "value": 30
                    }
                ],
                "type": "bitfield32"
            },
            {
                "desc": "Alarms, warnings and status values.  Bit flags.",
                "label": "String Event 1",
                "mandatory": "M",
                "name": "Evt1",
                "size": 2,
                "symbols": [
                    {
                        "name": "COMMUNICATION_ERROR",
                        "value": 0
                    },
                    {
                        "name": "OVER_TEMP_ALARM",
                        "value": 1
                    },
                    {
                        "name": "OVER_TEMP_WARNING",
                        "value": 2
                    },
                    {
                        "name": "UNDER_TEMP_ALARM",
                        "value": 3
                    },
                    {
                        "name": "UNDER_TEMP_WARNING",
                        "value": 4
                    },
                    {
                        "name": "OVER_CHARGE_CURRENT_ALARM",
                        "value": 5
                    },
                    {
                        "name": "OVER_CHARGE_CURRENT_WARNING",
                        "value": 6
                    },
                    {
                        "name": "OVER_DISCHARGE_CURRENT_ALARM",
                        "value": 7
                    },
                    {
                        "name": "OVER_DISCHARGE_CURRENT_WARNING",
                        "value": 8
                    },
                    {
                        "name": "OVER_VOLT_ALARM",
                        "value": 9
                    },
                    {
                        "name": "OVER_VOLT_WARNING",
                        "value": 10
                    },
                    {
                        "name": "UNDER_VOLT_ALARM",
                        "value": 11
                    },
                    {
                        "name": "UNDER_VOLT_WARNING",
                        "value": 12
                    },
                    {
                        "name": "UNDER_SOC_MIN_ALARM",
                        "value": 13
                    },
                    {
                        "name": "UNDER_SOC_MIN_WARNING",
                        "value": 14
                    },
                    {
                        "name": "OVER_SOC_MAX_ALARM",
                        "value": 15
                    },
                    {
                        "name": "OVER_SOC_MAX_WARNING",
                        "value": 16
                    },
                    {
                        "name": "VOLTAGE_IMBALANCE_WARNING",
                        "value": 17
                    },
                    {
                        "name": "TEMPERATURE_IMBALANCE_ALARM",
                        "value": 18
                    },
                    {
                        "name": "TEMPERATURE_IMBALANCE_WARNING",
                        "value": 19
                    },
                    {
                        "name": "CONTACTOR_ERROR",
                        "value": 20
                    },
                    {
                        "name": "FAN_ERROR",
                        "value": 21
                    },
                    {
                        "name": "GROUND_FAULT",
                        "value": 22
                    },
                    {
                        "name": "OPEN_DOOR_ERROR",
                        "value": 23
                    },
                    {
                        "name": "RESERVED_1",
                        "value": 24
                    },
                    {
                        "name": "OTHER_ALARM",
                        "value": 25
                    },
                    {
                        "name": "OTHER_WARNING",
                        "value": 26
                    },
                    {
                        "name": "RESERVED_2",
                        "value": 27
                    },
                    {
                        "name": "CONFIGURATION_ALARM",
                        "value": 28
                    },
                    {
                        "name": "CONFIGURATION_WARNING",
                        "value": 29
                    }
                ],
                "type": "bitfield32"
            },
            {
                "desc": "Alarms, warnings and status values.  Bit flags.",
                "label": "String Event 2",
                "name": "Evt2",
                "size": 2,
                "type": "bitfield32"
            },
            {
                "desc": "Vendor defined events.",
                "label": "Vendor Event Bitfield 1",
                "name": "EvtVnd1",
                "size": 2,
                "type": "bitfield32"
            },
            {
                "desc": "Vendor defined events.",
                "label": "Vendor Event Bitfield 2",
                "name": "EvtVnd2",
                "size": 2,
                "type": "bitfield32"
            },
            {
                "access": "RW",
                "desc": "Enables and disables the string.  Should reset to 0 upon completion.",
                "label": "Enable/Disable String",
                "name": "SetEna",
                "size": 1,
                "type": "enum16"
            },
            {
                "access": "RW",
                "desc": "Connects and disconnects the string.",
                "label": "Connect/Disconnect String",
                "name": "SetCon",
                "size": 1,
                "symbols": [
                    {
                        "name": "CONNECT_STRING",
                        "value": 1
                    },
                    {
                        "name": "DISCONNECT_STRING",
                        "value": 2
                    }
                ],
                "type": "enum16"
            },
            {
                "desc": "Scale factor for string state of charge.",
                "mandatory": "M",
                "name": "SoC_SF",
                "size": 1,
                "type": "sunssf"
            },
            {
                "desc": "Scale factor for string state of health.",
                "name": "SoH_SF",
                "size": 1,
                "type": "sunssf"
            },
            {
                "desc": "Scale factor for string depth of discharge.",
                "name": "DoD_SF",
                "size": 1,
                "type": "sunssf"
            },
            {
                "desc": "Scale factor for string current.",
                "mandatory": "M",
                "name": "A_SF",
                "size": 1,
                "type": "sunssf"
            },
            {
                "desc": "Scale factor for string voltage.",
                "name": "V_SF",
                "size": 1,
                "type": "sunssf"
            },
            {
                "desc": "Scale factor for cell voltage.",
                "mandatory": "M",
                "name": "CellV_SF",
                "size": 1,
                "type": "sunssf"
            },
            {
                "desc": "Scale factor for module temperature.",
                "mandatory": "M",
                "name": "ModTmp_SF",
                "size": 1,
                "type": "sunssf"
            },
            {
                "desc": "Pad register.",
                "label": "Pad2",
                "mandatory": "M",
                "name": "Pad2",
                "size": 1,
                "type": "pad"
            },
            {
                "desc": "Pad register.",
                "label": "Pad3",
                "mandatory": "M",
                "name": "Pad3",
                "size": 1,
                "type": "pad"
            },
            {
                "desc": "Pad register.",
                "label": "Pad4",
                "mandatory": "M",
                "name": "Pad4",
                "size": 1,
                "type": "pad"
            }
        ],
        "type": "group"
    },
    "id": 804
}
