zigpy / bellows

A Python 3 project to implement EZSP for EmberZNet devices
GNU General Public License v3.0
177 stars 86 forks source link

EmberGpAddress incorrect? #591

Closed konistehrad closed 7 months ago

konistehrad commented 8 months ago

I might be way off base here but I don't think we're treating EmberGpAddress correctly unless there's some kind of fancy deserialization routine that consumes application ID. For reference, the current definition looks like this:

class EmberGpAddress(EzspStruct):
    # A GP address structure.
    # 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

But the spec looks like there's a generic uint64_t that could contain either an IEEE address or a short 32-bit GDP ID, but not both:

image

Please let me know if I'm off base here, it's totally possible I'm wicked wrong.

konistehrad commented 7 months ago

Closing as I'm starting to speculate the EZSP documentation isn't exactly trustworthy.