1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130
|
from __future__ import annotations
import dataclasses
import typing
import bellows.types as t
@dataclasses.dataclass(frozen=True)
class RuntimeConfig:
config_id: t.enum8
value: int
minimum: bool = False
@dataclasses.dataclass(frozen=True)
class ValueConfig:
value_id: t.enum8
value: typing.Any
DEFAULT_CONFIG_COMMON = [
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_INDIRECT_TRANSMISSION_TIMEOUT,
value=7680,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_STACK_PROFILE,
value=2,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_SUPPORTED_NETWORKS,
value=1,
minimum=True,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_MULTICAST_TABLE_SIZE,
value=16,
minimum=True,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_TRUST_CENTER_ADDRESS_CACHE_SIZE,
value=2,
minimum=True,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_SECURITY_LEVEL,
value=5,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_ADDRESS_TABLE_SIZE,
value=16,
minimum=True,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_PAN_ID_CONFLICT_REPORT_THRESHOLD,
value=2,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_KEY_TABLE_SIZE,
value=4,
minimum=True,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_MAX_END_DEVICE_CHILDREN,
value=32,
minimum=True,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_APPLICATION_ZDO_FLAGS,
value=(
t.EmberZdoConfigurationFlags.APP_RECEIVES_SUPPORTED_ZDO_REQUESTS
| t.EmberZdoConfigurationFlags.APP_HANDLES_UNSUPPORTED_ZDO_REQUESTS
),
),
# Must be set last
RuntimeConfig(t.EzspConfigId.CONFIG_PACKET_BUFFER_COUNT, value=0xFF),
]
DEFAULT_CONFIG_LEGACY = [
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_SOURCE_ROUTE_TABLE_SIZE,
value=16,
minimum=True,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_END_DEVICE_POLL_TIMEOUT,
value=60,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_END_DEVICE_POLL_TIMEOUT_SHIFT,
value=8,
),
] + DEFAULT_CONFIG_COMMON
DEFAULT_CONFIG_NEW = [
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_SOURCE_ROUTE_TABLE_SIZE,
value=200,
minimum=True,
),
RuntimeConfig(
config_id=t.EzspConfigId.CONFIG_END_DEVICE_POLL_TIMEOUT,
value=8,
),
RuntimeConfig(
config_id=(t.EzspConfigId.CONFIG_TC_REJOINS_USING_WELL_KNOWN_KEY_TIMEOUT_S),
value=90,
),
ValueConfig(
value_id=t.EzspValueId.VALUE_FORCE_TX_AFTER_FAILED_CCA_ATTEMPTS,
value=t.uint8_t(1),
),
] + DEFAULT_CONFIG_COMMON
DEFAULT_CONFIG = {
4: DEFAULT_CONFIG_LEGACY,
5: DEFAULT_CONFIG_LEGACY,
6: DEFAULT_CONFIG_LEGACY,
7: DEFAULT_CONFIG_NEW,
8: DEFAULT_CONFIG_NEW,
9: DEFAULT_CONFIG_NEW,
10: DEFAULT_CONFIG_NEW,
11: DEFAULT_CONFIG_NEW,
12: DEFAULT_CONFIG_NEW,
13: DEFAULT_CONFIG_NEW,
14: DEFAULT_CONFIG_NEW,
}
|