| from dataclasses import dataclass |
| |
| Channel = int |
| Bandwidth = int |
| # TODO(http://b/281728764): Add device requirements to each frequency e.g. |
| # "MUST be used indoors only" or "MUST be used with DFS". |
| ChannelBandwidthMap = dict[Channel, list[Bandwidth]] |
| |
| |
| @dataclass |
| class CountryChannels: |
| country_code: str |
| allowed_channels: ChannelBandwidthMap |
| |
| |
| # All antlion-supported channels and frequencies for use in regulatory testing. |
| TEST_CHANNELS: ChannelBandwidthMap = { |
| 1: [20], |
| 2: [20], |
| 3: [20], |
| 4: [20], |
| 5: [20], |
| 6: [20], |
| 7: [20], |
| 8: [20], |
| 9: [20], |
| 10: [20], |
| 11: [20], |
| 12: [20], |
| 13: [20], |
| 14: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| 149: [20, 40, 80], |
| 153: [20, 40, 80], |
| 157: [20, 40, 80], |
| 161: [20, 40, 80], |
| 165: [20], |
| } |
| |
| # All universally accepted 2.4GHz channels and frequencies. |
| WORLD_WIDE_2G_CHANNELS: ChannelBandwidthMap = { |
| 1: [20], |
| 2: [20], |
| 3: [20], |
| 4: [20], |
| 5: [20], |
| 6: [20], |
| 7: [20], |
| 8: [20], |
| 9: [20], |
| 10: [20], |
| 11: [20], |
| } |
| |
| # List of supported channels and frequencies by country. |
| # |
| # Please keep this alphabetically ordered. Thanks! |
| # |
| # TODO: Add missing countries: Russia, Israel, Korea, Turkey, South Africa, |
| # Brazil, Bahrain, Vietnam |
| COUNTRY_CHANNELS = { |
| "Australia": CountryChannels( |
| country_code="AU", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| 149: [20, 40, 80], |
| 153: [20, 40, 80], |
| 157: [20, 40, 80], |
| 161: [20, 40, 80], |
| 165: [20], |
| }, |
| ), |
| "Austria": CountryChannels( |
| country_code="AT", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "Belgium": CountryChannels( |
| country_code="BE", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "Canada": CountryChannels( |
| country_code="CA", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| 149: [20, 40, 80], |
| 153: [20, 40, 80], |
| 157: [20, 40, 80], |
| 161: [20, 40, 80], |
| 165: [20], |
| }, |
| ), |
| "China": CountryChannels( |
| country_code="CH", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "Denmark": CountryChannels( |
| country_code="DK", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "France": CountryChannels( |
| country_code="FR", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "Germany": CountryChannels( |
| country_code="DE", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "India": CountryChannels( |
| country_code="IN", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| 149: [20, 40, 80], |
| 153: [20, 40, 80], |
| 157: [20, 40, 80], |
| 161: [20, 40, 80], |
| 165: [20], |
| }, |
| ), |
| "Ireland": CountryChannels( |
| country_code="IE", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "Italy": CountryChannels( |
| country_code="IT", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "Japan": CountryChannels( |
| country_code="JP", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| }, |
| ), |
| "Mexico": CountryChannels( |
| country_code="MX", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| 149: [20, 40, 80], |
| 153: [20, 40, 80], |
| 157: [20, 40, 80], |
| 161: [20, 40, 80], |
| 165: [20], |
| }, |
| ), |
| "Netherlands": CountryChannels( |
| country_code="NL", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "New Zealand": CountryChannels( |
| country_code="NZ", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| 149: [20, 40, 80], |
| 153: [20, 40, 80], |
| 157: [20, 40, 80], |
| 161: [20, 40, 80], |
| 165: [20], |
| }, |
| ), |
| "Norway": CountryChannels( |
| country_code="NO", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "Singapore": CountryChannels( |
| country_code="SG", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| 149: [20, 40, 80], |
| 153: [20, 40, 80], |
| 157: [20, 40, 80], |
| 161: [20, 40, 80], |
| 165: [20], |
| }, |
| ), |
| "Spain": CountryChannels( |
| country_code="ES", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "Sweden": CountryChannels( |
| country_code="SE", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "Taiwan": CountryChannels( |
| country_code="TW", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| 149: [20, 40, 80], |
| 153: [20, 40, 80], |
| 157: [20, 40, 80], |
| 161: [20, 40, 80], |
| 165: [20], |
| }, |
| ), |
| "United Kingdom of Great Britain": CountryChannels( |
| country_code="GB", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 11: [20], |
| 12: [20], |
| 13: [20], |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| }, |
| ), |
| "United States of America": CountryChannels( |
| country_code="US", |
| allowed_channels=WORLD_WIDE_2G_CHANNELS |
| | { |
| 36: [20, 40, 80], |
| 40: [20, 40, 80], |
| 44: [20, 40, 80], |
| 48: [20, 40, 80], |
| 52: [20, 40, 80], |
| 56: [20, 40, 80], |
| 60: [20, 40, 80], |
| 64: [20, 40, 80], |
| 100: [20, 40, 80], |
| 104: [20, 40, 80], |
| 108: [20, 40, 80], |
| 112: [20, 40, 80], |
| 116: [20, 40, 80], |
| 120: [20, 40, 80], |
| 124: [20, 40, 80], |
| 128: [20, 40, 80], |
| 132: [20, 40, 80], |
| 136: [20, 40, 80], |
| 140: [20, 40, 80], |
| 144: [20, 40, 80], |
| 149: [20, 40, 80], |
| 153: [20, 40, 80], |
| 157: [20, 40, 80], |
| 161: [20, 40, 80], |
| 165: [20], |
| }, |
| ), |
| } |