sunspec 0.9.0

SunSpec 1.1 compliant library with tokio support
Documentation
{
    "group": {
        "desc": "DER DC measurement.",
        "groups": [
            {
                "comments": [
                    "DC Port"
                ],
                "count": "NPrt",
                "name": "Prt",
                "points": [
                    {
                        "desc": "Port type.",
                        "label": "Port Type",
                        "name": "PrtTyp",
                        "size": 1,
                        "symbols": [
                            {
                                "label": "Photovoltaic",
                                "name": "PV",
                                "value": 0
                            },
                            {
                                "label": "Energy Storage System",
                                "name": "ESS",
                                "value": 1
                            },
                            {
                                "label": "Electric Vehicle",
                                "name": "EV",
                                "value": 2
                            },
                            {
                                "label": "Generic Injecting",
                                "name": "INJ",
                                "value": 3
                            },
                            {
                                "label": "Generic Absorbing",
                                "name": "ABS",
                                "value": 4
                            },
                            {
                                "label": "Generic Bidirectional",
                                "name": "BIDIR",
                                "value": 5
                            },
                            {
                                "label": "DC to DC",
                                "name": "DC_DC",
                                "value": 6
                            }
                        ],
                        "type": "enum16"
                    },
                    {
                        "desc": "Port ID.",
                        "label": "Port ID",
                        "name": "ID",
                        "size": 1,
                        "type": "uint16"
                    },
                    {
                        "desc": "Port ID string.",
                        "label": "Port ID String",
                        "name": "IDStr",
                        "size": 8,
                        "type": "string"
                    },
                    {
                        "desc": "DC current for the port.",
                        "label": "DC Current",
                        "name": "DCA",
                        "sf": "DCA_SF",
                        "size": 1,
                        "type": "int16",
                        "units": "A"
                    },
                    {
                        "desc": "DC voltage for the port.",
                        "label": "DC Voltage",
                        "name": "DCV",
                        "sf": "DCV_SF",
                        "size": 1,
                        "type": "uint16",
                        "units": "V"
                    },
                    {
                        "desc": "DC power for the port.",
                        "label": "DC Power",
                        "name": "DCW",
                        "sf": "DCW_SF",
                        "size": 1,
                        "type": "int16",
                        "units": "W"
                    },
                    {
                        "desc": "Total cumulative DC energy injected for the port.",
                        "label": "DC Energy Injected",
                        "name": "DCWhInj",
                        "sf": "DCWH_SF",
                        "size": 4,
                        "type": "uint64",
                        "units": "Wh"
                    },
                    {
                        "desc": "Total cumulative DC energy absorbed for the port.",
                        "label": "DC Energy Absorbed",
                        "name": "DCWhAbs",
                        "sf": "DCWH_SF",
                        "size": 4,
                        "type": "uint64",
                        "units": "Wh"
                    },
                    {
                        "desc": "DC port temperature.",
                        "label": "DC Port Temperature",
                        "name": "Tmp",
                        "sf": "Tmp_SF",
                        "size": 1,
                        "type": "int16",
                        "units": "C"
                    },
                    {
                        "desc": "DC port status.",
                        "label": "DC Port Status",
                        "name": "DCSta",
                        "size": 1,
                        "symbols": [
                            {
                                "label": "Off",
                                "name": "OFF",
                                "value": 0
                            },
                            {
                                "label": "On",
                                "name": "ON",
                                "value": 1
                            },
                            {
                                "label": "Warning",
                                "name": "WARNING",
                                "value": 2
                            },
                            {
                                "label": "Error",
                                "name": "ERROR",
                                "value": 3
                            }
                        ],
                        "type": "enum16"
                    },
                    {
                        "desc": "DC port alarm.",
                        "label": "DC Port Alarm",
                        "name": "DCAlrm",
                        "size": 2,
                        "symbols": [
                            {
                                "label": "Ground Fault",
                                "name": "GROUND_FAULT",
                                "value": 0
                            },
                            {
                                "label": "Input Over Voltage",
                                "name": "INPUT_OVER_VOLTAGE",
                                "value": 1
                            },
                            {
                                "label": "DC Disconnect",
                                "name": "DC_DISCONNECT",
                                "value": 3
                            },
                            {
                                "label": "Cabinet Open",
                                "name": "CABINET_OPEN",
                                "value": 5
                            },
                            {
                                "label": "Manual Shutdown",
                                "name": "MANUAL_SHUTDOWN",
                                "value": 6
                            },
                            {
                                "label": "Over Temperature",
                                "name": "OVER_TEMP",
                                "value": 7
                            },
                            {
                                "label": "Blown Fuse",
                                "name": "BLOWN_FUSE",
                                "value": 12
                            },
                            {
                                "label": "Under Temperature",
                                "name": "UNDER_TEMP",
                                "value": 13
                            },
                            {
                                "label": "Memory Loss",
                                "name": "MEMORY_LOSS",
                                "value": 14
                            },
                            {
                                "label": "Arc Detection",
                                "name": "ARC_DETECTION",
                                "value": 15
                            },
                            {
                                "label": "Reserved",
                                "name": "RESERVED",
                                "value": 19
                            },
                            {
                                "label": "Test Failed",
                                "name": "TEST_FAILED",
                                "value": 20
                            },
                            {
                                "label": "Under Voltage",
                                "name": "INPUT_UNDER_VOLTAGE",
                                "value": 21
                            },
                            {
                                "label": "Over Current",
                                "name": "INPUT_OVER_CURRENT",
                                "value": 22
                            }
                        ],
                        "type": "bitfield32"
                    }
                ],
                "type": "group"
            }
        ],
        "label": "DER DC Measurement",
        "name": "DERMeasureDC",
        "points": [
            {
                "desc": "DER DC measurement model ID.",
                "label": "Model ID",
                "mandatory": "M",
                "name": "ID",
                "size": 1,
                "static": "S",
                "type": "uint16",
                "value": 714
            },
            {
                "desc": "DER DC measurement model length.",
                "label": "Model Length",
                "mandatory": "M",
                "name": "L",
                "size": 1,
                "static": "S",
                "type": "uint16"
            },
            {
                "comments": [
                    "DC General"
                ],
                "desc": "Bitfield of ports with active alarms. Bit is 1 if port has an active alarm. Bit 0 is first port.",
                "label": "Port Alarms",
                "name": "PrtAlrms",
                "size": 2,
                "type": "bitfield32"
            },
            {
                "desc": "Number of DC ports.",
                "label": "Number Of Ports",
                "name": "NPrt",
                "size": 1,
                "static": "S",
                "type": "uint16"
            },
            {
                "desc": "Total DC current for all ports.",
                "label": "DC Current",
                "name": "DCA",
                "sf": "DCA_SF",
                "size": 1,
                "type": "int16",
                "units": "A"
            },
            {
                "desc": "Total DC power for all ports.",
                "label": "DC Power",
                "name": "DCW",
                "sf": "DCW_SF",
                "size": 1,
                "type": "int16",
                "units": "W"
            },
            {
                "desc": "Total cumulative DC energy injected for all ports.",
                "label": "DC Energy Injected",
                "name": "DCWhInj",
                "sf": "DCWH_SF",
                "size": 4,
                "type": "uint64",
                "units": "Wh"
            },
            {
                "desc": "Total cumulative DC energy absorbed for all ports.",
                "label": "DC Energy Absorbed",
                "name": "DCWhAbs",
                "sf": "DCWH_SF",
                "size": 4,
                "type": "uint64",
                "units": "Wh"
            },
            {
                "desc": "DC current scale factor.",
                "label": "DC Current Scale Factor",
                "name": "DCA_SF",
                "size": 1,
                "static": "S",
                "type": "sunssf"
            },
            {
                "desc": "DC voltage scale factor.",
                "label": "DC Voltage Scale Factor",
                "name": "DCV_SF",
                "size": 1,
                "static": "S",
                "type": "sunssf"
            },
            {
                "desc": "DC power scale factor.",
                "label": "DC Power Scale Factor",
                "name": "DCW_SF",
                "size": 1,
                "static": "S",
                "type": "sunssf"
            },
            {
                "desc": "DC energy scale factor.",
                "label": "DC Energy Scale Factor",
                "name": "DCWH_SF",
                "size": 1,
                "static": "S",
                "type": "sunssf"
            },
            {
                "desc": "Temperature Scale Factor.",
                "label": "Temperature Scale Factor",
                "name": "Tmp_SF",
                "size": 1,
                "static": "S",
                "type": "sunssf"
            }
        ],
        "type": "group"
    },
    "id": 714
}