How to use the bellows.types.struct.EzspStruct function in bellows

To help you get started, we’ve selected a few bellows examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github zigpy / bellows / bellows / types / struct.py View on Github external
# The implicit certificate used in CBKE.
    _fields = [
        # The certificate data.
        ("contents", basic.fixed_list(48, basic.uint8_t))
    ]


class EmberPublicKeyData(EzspStruct):
    # The public key data used in CBKE.
    _fields = [
        # The public key data.
        ("contents", basic.fixed_list(22, basic.uint8_t))
    ]


class EmberPrivateKeyData(EzspStruct):
    # The private key data used in CBKE.
    _fields = [
        # The private key data.
        ("contents", basic.fixed_list(21, basic.uint8_t))
    ]


class EmberTransientKeyData(EzspStruct):
    # The transient key data structure
    _fields = [
        # The IEEE address paired with the transient link key.
        ("eui64", named.EmberEUI64),
        # The key data structure matching the transient key.
        ("keyData", named.EmberKeyData),
        # The incoming frame counter associated with this key.
        ("incomingFrameCounter", basic.uint32_t),
github zigpy / bellows / bellows / types / struct.py View on Github external
("preconfiguredTrustCenterEui64", named.EmberEUI64),
    ]


class EmberCurrentSecurityState(EzspStruct):
    # The security options and information currently used by the stack.
    _fields = [
        # A bitmask indicating the security options currently in use by a
        # device joined in the network.
        ("bitmask", named.EmberCurrentSecurityBitmask),
        # The IEEE Address of the Trust Center device.
        ("trustCenterLongAddress", named.EmberEUI64),
    ]


class EmberKeyStruct(EzspStruct):
    # A structure containing a key and its associated data.
    _fields = [
        # A bitmask indicating the presence of data within the various fields
        # in the structure.
        ("bitmask", named.EmberKeyStructBitmask),
        # The type of the key.
        ("type", named.EmberKeyType),
        # The actual key data.
        ("key", named.EmberKeyData),
        # The outgoing frame counter associated with the key.
        ("outgoingFrameCounter", basic.uint32_t),
        # The frame counter of the partner device associated with the key.
        ("incomingFrameCounter", basic.uint32_t),
        # The sequence number associated with the key.
        ("sequenceNumber", basic.uint8_t),
        # The IEEE address of the partner device also in possession of the key.
github zigpy / bellows / bellows / types / struct.py View on Github external
# The node id.
        ("nodeId", named.EmberNodeId),
        # The ZLL state.
        ("state", named.EmberZllState),
        # The node type.
        ("nodeType", named.EmberNodeType),
        # The number of sub devices.
        ("numberSubDevices", basic.uint8_t),
        # The total number of group identifiers.
        ("totalGroupIdentifiers", basic.uint8_t),
        # RSSI correction value.
        ("rssiCorrection", basic.uint8_t),
    ]


class EmberZllInitialSecurityState(EzspStruct):
    # Describes the initial security features and requirements that will be
    # used when forming or joining ZLL networks.
    _fields = [
        # Unused bitmask; reserved for future use.
        ("bitmask", basic.uint32_t),
        # The key encryption algorithm advertised by the application.
        ("keyIndex", named.EmberZllKeyIndex),
        # The encryption key for use by algorithms that require it.
        ("encryptionKey", named.EmberKeyData),
        # The pre-configured link key used during classical ZigBee
        # commissioning.
        ("preconfiguredKey", named.EmberKeyData),
    ]


class EmberZllDeviceInfoRecord(EzspStruct):
github zigpy / bellows / bellows / types / struct.py View on Github external
# The type of the key.
        ("type", named.EmberKeyType),
        # The actual key data.
        ("key", named.EmberKeyData),
        # The outgoing frame counter associated with the key.
        ("outgoingFrameCounter", basic.uint32_t),
        # The frame counter of the partner device associated with the key.
        ("incomingFrameCounter", basic.uint32_t),
        # The sequence number associated with the key.
        ("sequenceNumber", basic.uint8_t),
        # The IEEE address of the partner device also in possession of the key.
        ("partnerEUI64", named.EmberEUI64),
    ]


class EmberNetworkInitStruct(EzspStruct):
    # Network Initialization parameters.
    _fields = [
        # Configuration options for network init.
        ("bitmask", named.EmberNetworkInitBitmask)
    ]


class EmberZllSecurityAlgorithmData(EzspStruct):
    # Data associated with the ZLL security algorithm.
    _fields = [
        # Transaction identifier.
        ("transactionId", basic.uint32_t),
        # Response identifier.
        ("responseId", basic.uint32_t),
        # Bitmask.
        ("bitmask", basic.uint16_t),
github zigpy / bellows / bellows / types / struct.py View on Github external
("inCost", basic.uint8_t),
        # The outgoing cost for this neighbor, obtained from the most recently
        # received neighbor exchange message from the neighbor. A value of zero
        # means that a neighbor exchange message from the neighbor has not been
        # received recently enough, or that our id was not present in the most
        # recently received one.
        ("outCost", basic.uint8_t),
        # The number of aging periods elapsed since a link status message was
        # last received from this neighbor. The aging period is 16 seconds.
        ("age", basic.uint8_t),
        # The 8 byte EUI64 of the neighbor.
        ("longId", named.EmberEUI64),
    ]


class EmberRouteTableEntry(EzspStruct):
    # A route table entry stores information about the next hop along the route
    # to the destination.
    _fields = [
        # The short id of the destination. A value of 0xFFFF indicates the
        # entry is unused.
        ("destination", basic.uint16_t),
        # The short id of the next hop to this destination.
        ("nextHop", basic.uint16_t),
        # Indicates whether this entry is active (0), being discovered (1)),
        # unused (3), or validating (4).
        ("status", basic.uint8_t),
        # The number of seconds since this route entry was last used to send a
        # packet.
        ("age", basic.uint8_t),
        # Indicates whether this destination is a High RAM Concentrator (2), a
        # Low RAM Concentrator (1), or not a concentrator (0).
github zigpy / bellows / bellows / types / struct.py View on Github external
# The sequence number associated with the key.
        ("sequenceNumber", basic.uint8_t),
        # The IEEE address of the partner device also in possession of the key.
        ("partnerEUI64", named.EmberEUI64),
    ]


class EmberNetworkInitStruct(EzspStruct):
    # Network Initialization parameters.
    _fields = [
        # Configuration options for network init.
        ("bitmask", named.EmberNetworkInitBitmask)
    ]


class EmberZllSecurityAlgorithmData(EzspStruct):
    # Data associated with the ZLL security algorithm.
    _fields = [
        # Transaction identifier.
        ("transactionId", basic.uint32_t),
        # Response identifier.
        ("responseId", basic.uint32_t),
        # Bitmask.
        ("bitmask", basic.uint16_t),
    ]


class EmberZllNetwork(EzspStruct):
    # The parameters of a ZLL network.
    _fields = [
        # The parameters of a ZigBee network.
        ("zigbeeNetwork", EmberZigbeeNetwork),
github zigpy / bellows / bellows / types / struct.py View on Github external
# An ECDSA signature
    _fields = [
        # The 283k1 signature data.
        ("contents", basic.fixed_list(72, basic.uint8_t))
    ]


class EmberMessageDigest(EzspStruct):
    # The calculated digest of a message
    _fields = [
        # The calculated digest of a message.
        ("contents", basic.fixed_list(16, basic.uint8_t))
    ]


class EmberAesMmoHashContext(EzspStruct):
    # The hash context for an ongoing hash operation.
    _fields = [
        # The result of ongoing the hash operation.
        ("result", basic.fixed_list(16, basic.uint8_t)),
        # The total length of the data that has been hashed so far.
        ("length", basic.uint32_t),
    ]


class EmberNeighborTableEntry(EzspStruct):
    # A neighbor table entry stores information about the reliability of RF
    # links to and from neighboring nodes.
    _fields = [
        # The neighbor's two byte network id
        ("shortId", basic.uint16_t),
        # An exponentially weighted moving average of the link quality values
github zigpy / bellows / bellows / types / struct.py View on Github external
# Minimum free node id.
        ("freeNodeIdMin", named.EmberNodeId),
        # Maximum free node id.
        ("freeNodeIdMax", named.EmberNodeId),
        # Minimum group id.
        ("groupIdMin", named.EmberMulticastId),
        # Maximum group id.
        ("groupIdMax", named.EmberMulticastId),
        # Minimum free group id.
        ("freeGroupIdMin", named.EmberMulticastId),
        # Maximum free group id.
        ("freeGroupIdMax", named.EmberMulticastId),
    ]


class EmberTokTypeStackZllData(EzspStruct):
    # Public API for ZLL stack data token.
    _fields = [
        # Token bitmask.
        ("bitmask", basic.uint32_t),
        # Minimum free node id.
        ("freeNodeIdMin", basic.uint16_t),
        # Maximum free node id.
        ("freeNodeIdMax", basic.uint16_t),
        # Local minimum group id.
        ("myGroupIdMin", basic.uint16_t),
        # Minimum free group id.
        ("freeGroupIdMin", basic.uint16_t),
        # Maximum free group id.
        ("freeGroupIdMax", basic.uint16_t),
        # RSSI correction value.
        ("rssiCorrection", basic.uint8_t),
github zigpy / bellows / bellows / types / struct.py View on Github external
# The list of profiles supported by the destination device.
        ("destProfileIdList", basic.fixed_list(7, basic.uint8_t)),
        # The length of the list of supported profiles.
        ("destProfileIdListLength", basic.uint8_t),
        # Info byte.
        ("info", basic.uint8_t),
        # The expected channel of the destination device.
        ("channel", basic.uint8_t),
        # The node capabilities of the recipient node.
        ("capabilities", basic.uint8_t),
        # Last MAC sequence number seen on this pairing link.
        ("lastSeqn", basic.uint8_t),
    ]


class EmberGpAddress(EzspStruct):
    # A GP address structure.
    _fields = [
        # The GPD's EUI64.
        ("gpdIeeeAddress", named.EmberEUI64),
        # The GPD's source ID.
        ("sourceId", basic.uint32_t),
        # The GPD Application ID.
        ("applicationId", basic.uint8_t),
        # The GPD endpoint.
        ("endpoint", basic.uint8_t),
    ]


class EmberGpSinkListEntry(EzspStruct):
    # A sink list entry
    _fields = [
github zigpy / bellows / bellows / types / struct.py View on Github external
# EUI64 associated with the device.
        ("ieeeAddress", named.EmberEUI64),
        # Endpoint id.
        ("endpointId", basic.uint8_t),
        # Profile id.
        ("profileId", basic.uint16_t),
        # Device id.
        ("deviceId", basic.uint16_t),
        # Associated version.
        ("version", basic.uint8_t),
        # Number of relevant group ids.
        ("groupIdCount", basic.uint8_t),
    ]


class EmberZllAddressAssignment(EzspStruct):
    # ZLL address assignment data.
    _fields = [
        # Relevant node id.
        ("nodeId", named.EmberNodeId),
        # Minimum free node id.
        ("freeNodeIdMin", named.EmberNodeId),
        # Maximum free node id.
        ("freeNodeIdMax", named.EmberNodeId),
        # Minimum group id.
        ("groupIdMin", named.EmberMulticastId),
        # Maximum group id.
        ("groupIdMax", named.EmberMulticastId),
        # Minimum free group id.
        ("freeGroupIdMin", named.EmberMulticastId),
        # Maximum free group id.
        ("freeGroupIdMax", named.EmberMulticastId),