sunspec 0.9.0

SunSpec 1.1 compliant library with tokio support
Documentation
{
    "group": {
        "desc": "Interface counters",
        "label": "Interface Counters Model",
        "name": "model_15",
        "points": [
            {
                "desc": "Model identifier",
                "label": "Model ID",
                "mandatory": "M",
                "name": "ID",
                "size": 1,
                "static": "S",
                "type": "uint16",
                "value": 15
            },
            {
                "desc": "Model length",
                "label": "Model Length",
                "mandatory": "M",
                "name": "L",
                "size": 1,
                "static": "S",
                "type": "uint16"
            },
            {
                "access": "RW",
                "desc": "Write a \"1\" to clear all counters",
                "label": "Clear",
                "name": "Clr",
                "size": 1,
                "type": "uint16"
            },
            {
                "desc": "Number of bytes received",
                "label": "Input Count",
                "name": "InCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Number of Unicast packets received",
                "label": "Input Unicast Count",
                "name": "InUcCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Number of non-Unicast packets received",
                "label": "Input Non-Unicast Count",
                "name": "InNUcCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Number of inbound packets received on the interface but discarded",
                "label": "Input Discarded Count",
                "name": "InDscCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Number of inbound packets that contain errors (excluding discards)",
                "label": "Input Error Count",
                "name": "InErrCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Number of inbound packets with unknown protocol",
                "label": "Input Unknown Count",
                "name": "InUnkCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Total number of bytes transmitted on this interface",
                "label": "Output Count",
                "name": "OutCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Number of Unicast packets transmitted",
                "label": "Output Unicast Count",
                "name": "OutUcCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Number of Non-Unicast packets transmitted",
                "label": "Output Non-Unicast Count",
                "name": "OutNUcCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Number of Discarded output packets",
                "label": "Output Discarded Count",
                "name": "OutDscCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "desc": "Number of outbound error packets",
                "label": "Output Error Count",
                "name": "OutErrCnt",
                "size": 2,
                "type": "acc32"
            },
            {
                "name": "Pad",
                "size": 1,
                "type": "pad"
            }
        ],
        "type": "group"
    },
    "id": 15
}