1 /* 2 * Hamlib Interface - definition of radioamateur frequency band plan. 3 * Copyright (c) 2002 by Stephane Fillod 4 * 5 * 6 * This library is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * This library is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with this library; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 * 20 */ 21 22 #ifndef _BANDPLAN_H 23 #define _BANDPLAN_H 1 24 25 #include <hamlib/rig.h> 26 27 /* 28 * This header file is internal to Hamlib and its backends, 29 * thus not part of the API. 30 * 31 * Note: don't change this file if ITU band plan changes. A lot of existing 32 * rigs are built this way, so leave them alone. 33 * 34 * As a reminder: 35 * struct freq_range_list { 36 * freq_t start; 37 * freq_t end; 38 * rmode_t modes; 39 * int low_power; 40 * int high_power; 41 * vfo_t vfo; 42 * ant_t ant; 43 * }; 44 */ 45 46 47 /* 48 * ITU Region 1: Europe, Africa and Northern Asia 49 */ 50 51 /* MF: 300 kHz - 3 MHz */ 52 #define FRQ_RNG_160m_REGION1(md,lp,hp,v,a) \ 53 { kHz(1810), MHz(2), (md), (lp), (hp), (v), (a), "ITU1" } 54 55 /* HF: 3 MHz - 30 MHz */ 56 #define FRQ_RNG_80m_REGION1(md,lp,hp,v,a) \ 57 { kHz(3500),kHz(3800), (md), (lp), (hp), (v), (a), "ITU1" } 58 59 #define FRQ_RNG_60m_REGION1(md,lp,hp,v,a) \ 60 { kHz(5351.5),kHz(5366.5), (md), (lp), (hp), (v), (a), "ITU1" } 61 62 #define FRQ_RNG_40m_REGION1(md,lp,hp,v,a) \ 63 { MHz(7),kHz(7100), (md), (lp), (hp), (v), (a), "ITU1" } 64 65 #define FRQ_RNG_30m_REGION1(md,lp,hp,v,a) \ 66 { kHz(10100),kHz(10150), (md), (lp), (hp), (v), (a), "ITU1" } 67 68 #define FRQ_RNG_20m_REGION1(md,lp,hp,v,a) \ 69 { MHz(14),kHz(14350), (md), (lp), (hp), (v), (a), "ITU1" } 70 71 #define FRQ_RNG_17m_REGION1(md,lp,hp,v,a) \ 72 { kHz(18068),kHz(18168), (md), (lp), (hp), (v), (a), "ITU1" } 73 74 #define FRQ_RNG_15m_REGION1(md,lp,hp,v,a) \ 75 { MHz(21),kHz(21450), (md), (lp), (hp), (v), (a), "ITU1" } 76 77 #define FRQ_RNG_12m_REGION1(md,lp,hp,v,a) \ 78 { kHz(24890),kHz(24990), (md), (lp), (hp), (v), (a), "ITU1" } 79 80 #define FRQ_RNG_10m_REGION1(md,lp,hp,v,a) \ 81 { MHz(28),kHz(29700), (md), (lp), (hp), (v), (a), "ITU1" } 82 83 /* VHF: 30 MHz - 300 MHz */ 84 #define FRQ_RNG_6m_REGION1(md,lp,hp,v,a) \ 85 { MHz(50),MHz(54), (md), (lp), (hp), (v), (a), "ITU1" } 86 87 #define FRQ_RNG_4m_REGION1(md,lp,hp,v,a) \ 88 { MHz(70),MHz(70.5), (md), (lp), (hp), (v), (a), "ITU1" } 89 90 #define FRQ_RNG_2m_REGION1(md,lp,hp,v,a) \ 91 { MHz(144),MHz(146), (md), (lp), (hp), (v), (a), "ITU1" } 92 93 /* UHF: 300 MHz - 3 GHz */ 94 #define FRQ_RNG_70cm_REGION1(md,lp,hp,v,a) \ 95 { MHz(430),MHz(440), (md), (lp), (hp), (v), (a), "ITU1" } 96 97 #define FRQ_RNG_23cm_REGION1(md,lp,hp,v,a) \ 98 { MHz(1240),MHz(1300), (md), (lp), (hp), (v), (a), "ITU1" } 99 100 #define FRQ_RNG_13cm_REGION1(md,lp,hp,v,a) \ 101 { MHz(2300),MHz(2450), (md), (lp), (hp), (v), (a), "ITU1" } 102 103 104 /* 105 * ITU Region 2: North America, South America and Greenland 106 */ 107 108 /* MF: 300 kHz - 3 MHz */ 109 #define FRQ_RNG_160m_REGION2(md,lp,hp,v,a) \ 110 { kHz(1800),MHz(2), (md), (lp), (hp), (v), (a), "ITU2" } 111 112 /* HF: 3 MHz - 30 MHz */ 113 #define FRQ_RNG_80m_REGION2(md,lp,hp,v,a) \ 114 { kHz(3500),MHz(4), (md), (lp), (hp), (v), (a), "ITU2" } 115 116 #define FRQ_RNG_60m_REGION2(md,lp,hp,v,a) \ 117 { kHz(5351.5),kHz(5366.5), (md), (lp), (hp), (v), (a), "ITU2" } 118 119 #define FRQ_RNG_40m_REGION2(md,lp,hp,v,a) \ 120 { MHz(7),kHz(7300), (md), (lp), (hp), (v), (a), "ITU2" } 121 122 #define FRQ_RNG_30m_REGION2(md,lp,hp,v,a) \ 123 { kHz(10100),kHz(10150), (md), (lp), (hp), (v), (a), "ITU2" } 124 125 #define FRQ_RNG_20m_REGION2(md,lp,hp,v,a) \ 126 { MHz(14),kHz(14350), (md), (lp), (hp), (v), (a), "ITU2" } 127 128 #define FRQ_RNG_17m_REGION2(md,lp,hp,v,a) \ 129 { kHz(18068),kHz(18168), (md), (lp), (hp), (v), (a), "ITU2" } 130 131 #define FRQ_RNG_15m_REGION2(md,lp,hp,v,a) \ 132 { MHz(21),kHz(21450), (md), (lp), (hp), (v), (a), "ITU2" } 133 134 #define FRQ_RNG_12m_REGION2(md,lp,hp,v,a) \ 135 { kHz(24890),kHz(24990), (md), (lp), (hp), (v), (a), "ITU2" } 136 137 #define FRQ_RNG_10m_REGION2(md,lp,hp,v,a) \ 138 { MHz(28),kHz(29700), (md), (lp), (hp), (v), (a), "ITU2" } 139 140 /* VHF: 30 MHz - 300 MHz */ 141 #define FRQ_RNG_6m_REGION2(md,lp,hp,v,a) \ 142 { MHz(50),MHz(54), (md), (lp), (hp), (v), (a), "ITU2" } 143 144 #define FRQ_RNG_4m_REGION2(md,lp,hp,v,a) \ 145 { MHz(70),MHz(70.5), (md), (lp), (hp), (v), (a), "ITU2" } 146 147 #define FRQ_RNG_2m_REGION2(md,lp,hp,v,a) \ 148 { MHz(144),MHz(148), (md), (lp), (hp), (v), (a), "ITU2" } 149 150 /* UHF: 300 MHz - 3 GHz */ 151 #define FRQ_RNG_70cm_REGION2(md,lp,hp,v,a) \ 152 { MHz(430),MHz(450), (md), (lp), (hp), (v), (a), "ITU2" } 153 154 #define FRQ_RNG_23cm_REGION2(md,lp,hp,v,a) \ 155 { MHz(1240),MHz(1300), (md), (lp), (hp), (v), (a), "ITU2" } 156 157 #define FRQ_RNG_13cm_REGION2(md,lp,hp,v,a) \ 158 { MHz(2320),MHz(2450), (md), (lp), (hp), (v), (a), "ITU2" } 159 160 /* 161 * ITU Region 3: South Pacific and Southern Asia 162 * https://web.archive.org/web/20171216012537/http://www.iaru-r3.org/wp-content/files/R3-004%20Band%20Plans%20IARU%20Region%203.docx 163 */ 164 165 /* MF: 300 kHz - 3 MHz */ 166 #define FRQ_RNG_160m_REGION3(md,lp,hp,v,a) \ 167 { kHz(1800),MHz(2), (md), (lp), (hp), (v), (a), "ITU3" } 168 169 /* HF: 3 MHz - 30 MHz */ 170 #define FRQ_RNG_80m_REGION3(md,lp,hp,v,a) \ 171 { kHz(3500),kHz(3900), (md), (lp), (hp), (v), (a), "ITU3" } 172 173 #define FRQ_RNG_60m_REGION3(md,lp,hp,v,a) \ 174 { kHz(5351.5),kHz(5366.5), (md), (lp), (hp), (v), (a), "ITU3" } 175 176 #define FRQ_RNG_40m_REGION3(md,lp,hp,v,a) \ 177 { MHz(7),kHz(7300), (md), (lp), (hp), (v), (a), "ITU3" } 178 179 #define FRQ_RNG_30m_REGION3(md,lp,hp,v,a) \ 180 { kHz(10100),kHz(10150), (md), (lp), (hp), (v), (a), "ITU3" } 181 182 #define FRQ_RNG_20m_REGION3(md,lp,hp,v,a) \ 183 { MHz(14),kHz(14350), (md), (lp), (hp), (v), (a), "ITU3" } 184 185 #define FRQ_RNG_17m_REGION3(md,lp,hp,v,a) \ 186 { kHz(18068),kHz(18168), (md), (lp), (hp), (v), (a), "ITU3" } 187 188 #define FRQ_RNG_15m_REGION3(md,lp,hp,v,a) \ 189 { MHz(21),kHz(21450), (md), (lp), (hp), (v), (a), "ITU3" } 190 191 #define FRQ_RNG_12m_REGION3(md,lp,hp,v,a) \ 192 { kHz(24890),kHz(24990), (md), (lp), (hp), (v), (a), "ITU3" } 193 194 #define FRQ_RNG_10m_REGION3(md,lp,hp,v,a) \ 195 { MHz(28),kHz(29700), (md), (lp), (hp), (v), (a), "ITU3" } 196 197 /* VHF: 30 MHz - 300 MHz */ 198 #define FRQ_RNG_6m_REGION3(md,lp,hp,v,a) \ 199 { MHz(50),MHz(54), (md), (lp), (hp), (v), (a), "ITU3" } 200 201 #define FRQ_RNG_2m_REGION3(md,lp,hp,v,a) \ 202 { MHz(144),MHz(148), (md), (lp), (hp), (v), (a), "ITU3" } 203 204 /* UHF: 300 MHz - 3 GHz */ 205 #define FRQ_RNG_70cm_REGION3(md,lp,hp,v,a) \ 206 { MHz(430),MHz(450), (md), (lp), (hp), (v), (a), "ITU3" } 207 208 #define FRQ_RNG_23cm_REGION3(md,lp,hp,v,a) \ 209 { MHz(1240),MHz(1300), (md), (lp), (hp), (v), (a), "ITU3" } 210 211 #define FRQ_RNG_13cm_REGION3(md,lp,hp,v,a) \ 212 { MHz(2320),MHz(2450), (md), (lp), (hp), (v), (a), "ITU3" } 213 214 215 /* 216 * Now we're done with boring definition 217 * Let's define FRQ_RNG_HF for REGION1, FRQ_RNG_HF_REGION2, 218 * and FRQ_RNG_HF_REGION3 all at once! 219 * NB: FRQ_RNG_HF defines non-AM/AM freq_range for all HF bands, 220 * plus 160m which is not an HF band strictly speaking. 221 */ 222 223 #define FRQ_RNG_HF(r,m,lp,hp,v,a) \ 224 FRQ_RNG_160m_REGION##r((m), (lp), (hp), (v), (a)), \ 225 FRQ_RNG_80m_REGION##r((m), (lp), (hp), (v), (a)), \ 226 FRQ_RNG_40m_REGION##r((m), (lp), (hp), (v), (a)), \ 227 FRQ_RNG_30m_REGION##r((m), (lp), (hp), (v), (a)), \ 228 FRQ_RNG_20m_REGION##r((m), (lp), (hp), (v), (a)), \ 229 FRQ_RNG_17m_REGION##r((m), (lp), (hp), (v), (a)), \ 230 FRQ_RNG_15m_REGION##r((m), (lp), (hp), (v), (a)), \ 231 FRQ_RNG_12m_REGION##r((m), (lp), (hp), (v), (a)), \ 232 FRQ_RNG_10m_REGION##r((m), (lp), (hp), (v), (a)) \ 233 234 #define FRQ_RNG_60m(r,m,lp,hp,v,a) \ 235 FRQ_RNG_60m_REGION##r((m), (lp), (hp), (v), (a)) \ 236 237 #define FRQ_RNG_6m(r,m,lp,hp,v,a) \ 238 FRQ_RNG_6m_REGION##r((m), (lp), (hp), (v), (a)) \ 239 240 #define FRQ_RNG_4m(r,m,lp,hp,v,a) \ 241 FRQ_RNG_4m_REGION##r((m), (lp), (hp), (v), (a)) \ 242 243 #define FRQ_RNG_2m(r,m,lp,hp,v,a) \ 244 FRQ_RNG_2m_REGION##r((m), (lp), (hp), (v), (a)) \ 245 246 #define FRQ_RNG_70cm(r,m,lp,hp,v,a) \ 247 FRQ_RNG_70cm_REGION##r((m), (lp), (hp), (v), (a)) \ 248 249 #define FRQ_RNG_23cm(r,m,lp,hp,v,a) \ 250 FRQ_RNG_23cm_REGION##r((m), (lp), (hp), (v), (a)) \ 251 252 253 #endif /* _BANDPLAN_H */ 254