Skip to content

Commit 0d5b1b7

Browse files
authored
Extend EmberStatus -> sl_Status mapping (#707)
* Fix final few uses of EmberStatus * Map out as many EmberStatus -> sl_Status mappings as possible Revert `TABLE_ENTRY_ERASED` change
1 parent 54d003b commit 0d5b1b7

File tree

3 files changed

+66
-5
lines changed

3 files changed

+66
-5
lines changed

bellows/ezsp/__init__.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -748,7 +748,7 @@ async def send_xncp_frame(
748748
LOGGER.debug("Sending XNCP frame: %s", req_frame)
749749
status, data = await self.customFrame(req_frame.serialize())
750750

751-
if status != t.EmberStatus.SUCCESS:
751+
if t.sl_Status.from_ember_status(status) != t.sl_Status.OK:
752752
raise InvalidCommandError("XNCP is not supported")
753753

754754
try:
@@ -763,7 +763,7 @@ async def send_xncp_frame(
763763

764764
LOGGER.debug("Received XNCP frame: %s", rsp_frame)
765765

766-
if rsp_frame.status != t.EmberStatus.SUCCESS:
766+
if t.sl_Status.from_ember_status(rsp_frame.status) != t.sl_Status.OK:
767767
raise InvalidCommandError(f"XNCP response error: {rsp_frame.status}")
768768

769769
return rsp_frame.payload

bellows/types/named.py

Lines changed: 63 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1678,22 +1678,83 @@ def from_ember_status(
16781678
# Ember status
16791679
(EmberStatus.SUCCESS, sl_Status.OK),
16801680
(EmberStatus.ERR_FATAL, sl_Status.FAIL),
1681+
(EmberStatus.BAD_ARGUMENT, sl_Status.INVALID_PARAMETER),
1682+
(EmberStatus.INVALID_ENDPOINT, sl_Status.INVALID_PARAMETER),
16811683
(EmberStatus.NOT_FOUND, sl_Status.NOT_FOUND),
1684+
(EmberStatus.INVALID_CALL, sl_Status.INVALID_STATE),
1685+
(EmberStatus.MESSAGE_TOO_LONG, sl_Status.MESSAGE_TOO_LONG),
16821686
(EmberStatus.TABLE_ENTRY_ERASED, sl_Status.NOT_FOUND),
1687+
(EmberStatus.TABLE_FULL, sl_Status.FULL),
1688+
(EmberStatus.LIBRARY_NOT_PRESENT, sl_Status.NOT_AVAILABLE),
1689+
(EmberStatus.OPERATION_IN_PROGRESS, sl_Status.IN_PROGRESS),
16831690
(EmberStatus.INDEX_OUT_OF_RANGE, sl_Status.INVALID_INDEX),
16841691
(EmberStatus.NOT_JOINED, sl_Status.NOT_JOINED),
1692+
(EmberStatus.JOIN_FAILED, sl_Status.NOT_JOINED),
1693+
(EmberStatus.CANNOT_JOIN_AS_ROUTER, sl_Status.NOT_JOINED),
16851694
(EmberStatus.NETWORK_UP, sl_Status.NETWORK_UP),
16861695
(EmberStatus.NETWORK_DOWN, sl_Status.NETWORK_DOWN),
1696+
(EmberStatus.NO_BEACONS, sl_Status.NO_BEACONS),
1697+
(EmberStatus.MOVE_FAILED, sl_Status.ZIGBEE_MOVE_FAILED),
1698+
(EmberStatus.NODE_ID_CHANGED, sl_Status.ZIGBEE_NODE_ID_CHANGED),
1699+
(EmberStatus.PAN_ID_CHANGED, sl_Status.ZIGBEE_PAN_ID_CHANGED),
1700+
(EmberStatus.CHANNEL_CHANGED, sl_Status.ZIGBEE_CHANNEL_CHANGED),
16871701
(EmberStatus.NETWORK_OPENED, sl_Status.ZIGBEE_NETWORK_OPENED),
16881702
(EmberStatus.NETWORK_CLOSED, sl_Status.ZIGBEE_NETWORK_CLOSED),
1689-
# Network status codes
1703+
# MAC/PHY status codes
1704+
(EmberStatus.MAC_NO_DATA, sl_Status.MAC_NO_DATA),
1705+
(EmberStatus.MAC_NO_ACK_RECEIVED, sl_Status.MAC_NO_ACK_RECEIVED),
16901706
(EmberStatus.MAC_INDIRECT_TIMEOUT, sl_Status.MAC_INDIRECT_TIMEOUT),
1707+
(EmberStatus.PHY_TX_BLOCKED, sl_Status.TRANSMIT_BLOCKED),
1708+
(EmberStatus.PHY_TX_SCHED_FAIL, sl_Status.TRANSMIT_SCHEDULER_FAIL),
1709+
(EmberStatus.PHY_TX_CCA_FAIL, sl_Status.CCA_FAILURE),
16911710
(EmberStatus.SOURCE_ROUTE_FAILURE, sl_Status.ZIGBEE_SOURCE_ROUTE_FAILURE),
16921711
(EmberStatus.MANY_TO_ONE_ROUTE_FAILURE, sl_Status.ZIGBEE_MANY_TO_ONE_ROUTE_FAILURE),
16931712
(EmberStatus.MAX_MESSAGE_LIMIT_REACHED, sl_Status.ZIGBEE_MAX_MESSAGE_LIMIT_REACHED),
16941713
(EmberStatus.NETWORK_BUSY, sl_Status.ZIGBEE_MAX_MESSAGE_LIMIT_REACHED),
16951714
(EmberStatus.DELIVERY_FAILED, sl_Status.ZIGBEE_DELIVERY_FAILED),
1696-
(EmberStatus.NO_BUFFERS, sl_Status.ALLOCATION_FAILED), # TODO: see what the actual mapping is
1715+
(EmberStatus.APS_ENCRYPTION_ERROR, sl_Status.ZIGBEE_APS_ENCRYPTION_ERROR),
1716+
(EmberStatus.RECEIVED_KEY_IN_THE_CLEAR, sl_Status.ZIGBEE_RECEIVED_KEY_IN_THE_CLEAR),
1717+
(EmberStatus.NO_NETWORK_KEY_RECEIVED, sl_Status.ZIGBEE_NO_NETWORK_KEY_RECEIVED),
1718+
(EmberStatus.NO_LINK_KEY_RECEIVED, sl_Status.ZIGBEE_NO_LINK_KEY_RECEIVED),
1719+
(EmberStatus.PRECONFIGURED_KEY_REQUIRED, sl_Status.ZIGBEE_PRECONFIGURED_KEY_REQUIRED),
1720+
(EmberStatus.TRUST_CENTER_EUI_HAS_CHANGED, sl_Status.ZIGBEE_TRUST_CENTER_SWAP_EUI_HAS_CHANGED),
1721+
(EmberStatus.SIGNATURE_VERIFY_FAILURE, sl_Status.ZIGBEE_SIGNATURE_VERIFY_FAILURE),
1722+
(EmberStatus.KEY_INVALID, sl_Status.INVALID_KEY),
1723+
(EmberStatus.BINDING_IS_ACTIVE, sl_Status.ZIGBEE_BINDING_IS_ACTIVE),
1724+
(EmberStatus.ADDRESS_TABLE_ENTRY_IS_ACTIVE, sl_Status.ZIGBEE_ADDRESS_TABLE_ENTRY_IS_ACTIVE),
1725+
(EmberStatus.ADDRESS_TABLE_INDEX_OUT_OF_RANGE, sl_Status.INVALID_RANGE),
1726+
(EmberStatus.INVALID_BINDING_INDEX, sl_Status.INVALID_INDEX),
1727+
(EmberStatus.NO_BUFFERS, sl_Status.ALLOCATION_FAILED),
1728+
(EmberStatus.SECURITY_CONFIGURATION_INVALID, sl_Status.INVALID_CONFIGURATION),
1729+
(EmberStatus.KEY_TABLE_INVALID_ADDRESS, sl_Status.INVALID_PARAMETER),
1730+
(EmberStatus.SECURITY_DATA_INVALID, sl_Status.INVALID_CONFIGURATION),
1731+
(EmberStatus.MAC_SCANNING, sl_Status.MAC_SCANNING),
1732+
(EmberStatus.MAC_INVALID_CHANNEL_MASK, sl_Status.INVALID_CHANNEL_MASK),
1733+
(EmberStatus.PHY_INVALID_CHANNEL, sl_Status.TRANSMIT_INVALID_CHANNEL),
1734+
(EmberStatus.SERIAL_INVALID_PORT, sl_Status.INVALID_PARAMETER),
1735+
(EmberStatus.SERIAL_RX_EMPTY, sl_Status.EMPTY),
1736+
(EmberStatus.INSUFFICIENT_RANDOM_DATA, sl_Status.ZIGBEE_INSUFFICIENT_RANDOM_DATA),
1737+
# Speculative
1738+
(EmberStatus.PACKET_HANDOFF_DROP_PACKET, sl_Status.ZIGBEE_PACKET_HANDOFF_DROPPED),
1739+
(EmberStatus.SECURITY_STATE_NOT_SET, sl_Status.ZIGBEE_SECURITY_STATE_NOT_SET),
1740+
(EmberStatus.KEY_NOT_AUTHORIZED, sl_Status.ZIGBEE_KEY_NOT_AUTHORIZED),
1741+
(EmberStatus.MAC_TRANSMIT_QUEUE_FULL, sl_Status.MAC_TRANSMIT_QUEUE_FULL),
1742+
(EmberStatus.STACK_AND_HARDWARE_MISMATCH, sl_Status.ZIGBEE_STACK_AND_HARDWARE_MISMATCH),
1743+
(EmberStatus.IEEE_ADDRESS_DISCOVERY_IN_PROGRESS, sl_Status.ZIGBEE_IEEE_ADDRESS_DISCOVERY_IN_PROGRESS),
1744+
(EmberStatus.TOO_SOON_FOR_SWITCH_KEY, sl_Status.ZIGBEE_TOO_SOON_FOR_SWITCH_KEY),
1745+
(EmberStatus.BINDING_HAS_CHANGED, sl_Status.ZIGBEE_BINDING_HAS_CHANGED),
1746+
(EmberStatus.INVALID_SECURITY_LEVEL, sl_Status.ZIGBEE_INVALID_SECURITY_LEVEL),
1747+
(EmberStatus.ID_DISCOVERY_FAILED, sl_Status.ZIGBEE_ID_DISCOVERY_FAILED),
1748+
(EmberStatus.NO_APS_ACK, sl_Status.ZIGBEE_NO_APS_ACK),
1749+
(EmberStatus.APS_MESSAGE_CANCELED, sl_Status.ZIGBEE_APS_MESSAGE_CANCELED),
1750+
(EmberStatus.ID_DISCOVERY_NOT_ENABLED, sl_Status.ZIGBEE_ID_DISCOVERY_NOT_ENABLED),
1751+
(EmberStatus.ID_DISCOVERY_UNDERWAY, sl_Status.ZIGBEE_ID_DISCOVERY_UNDERWAY),
1752+
(EmberStatus.SEND_UNICAST_ROUTE_DISCOVERY_UNDERWAY, sl_Status.ZIGBEE_SEND_UNICAST_ROUTE_DISCOVERY_UNDERWAY),
1753+
(EmberStatus.SEND_UNICAST_FAILURE, sl_Status.ZIGBEE_SEND_UNICAST_FAILURE),
1754+
(EmberStatus.SEND_UNICAST_NO_ROUTE, sl_Status.ZIGBEE_SEND_UNICAST_NO_ROUTE),
1755+
(EmberStatus.BROADCAST_TO_SLEEPY_CHILDREN_TIMEOUT, sl_Status.ZIGBEE_BROADCAST_TO_SLEEPY_CHILDREN_TIMEOUT),
1756+
(EmberStatus.BROADCAST_RELAY_FAILED, sl_Status.ZIGBEE_BROADCAST_RELAY_FAILED),
1757+
(EmberStatus.TRANSMIT_INCOMPLETE, sl_Status.TRANSMIT_INCOMPLETE),
16971758
]
16981759
}
16991760
# fmt: on

bellows/zigbee/device.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def model(self) -> str:
6060

6161

6262
class EZSPGroupEndpoint(EZSPEndpoint):
63-
async def add_to_group(self, grp_id: int, name: str = None) -> t.EmberStatus:
63+
async def add_to_group(self, grp_id: int, name: str = None) -> None:
6464
if grp_id in self.member_of:
6565
return
6666

0 commit comments

Comments
 (0)