From be1c1d0f54232876c9a3c46db9fb441e31cb99e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Fillod=2C=20F8CFE?= <fillods@users.sourceforge.net> Date: Sat, 16 Nov 2002 14:05:17 +0000 Subject: [PATCH] bandplan.h gathers couple handy macros to declare freq_range's in model capabilities git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1287 7ae35d74-ebe9-4afe-98af-79ac388436b8 --- include/Makefile.am | 2 +- include/bandplan.h | 229 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 230 insertions(+), 1 deletion(-) create mode 100644 include/bandplan.h diff --git a/include/Makefile.am b/include/Makefile.am index aceb6d373..9a79596e1 100644 --- a/include/Makefile.am +++ b/include/Makefile.am @@ -1,4 +1,4 @@ -noinst_HEADERS = config.h +noinst_HEADERS = config.h bandplan.h includedir = @includedir@/hamlib diff --git a/include/bandplan.h b/include/bandplan.h new file mode 100644 index 000000000..f2e18fec9 --- /dev/null +++ b/include/bandplan.h @@ -0,0 +1,229 @@ +/* + * Hamlib Interface - definition of radioamateur frequency band plan. + * Copyright (c) 2002 by Stephane Fillod + * + * $Id: bandplan.h,v 1.1 2002-11-16 14:05:16 fillods Exp $ + * + * This library is free software; you can redistribute it and/or modify + * it under the terms of the GNU Library General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + * + */ + +#ifndef _BANDPLAN_H +#define _BANDPLAN_H 1 + +#include <hamlib/rig.h> + +/* + * This header file is internal to Hamlib and its backends, + * thus not part of the API. + * + * Note: don't change this file if ITU band plan changes. A lot of existing + * rigs are built this way, so leave them alone. + * + * As a reminder: + * struct freq_range_list { + * freq_t start; + * freq_t end; + * rmode_t modes; + * int low_power; + * int high_power; + * vfo_t vfo; + * ant_t ant; + * }; + */ + + +/* + * ITU Region 1: Europe, Africa and Northern Asia + */ + +/* MF: 300 kHz - 3 MHz */ +#define FRQ_RNG_160m_REGION1(md,lp,hp,v,a) \ + { kHz(1810), MHz(2), (md), (lp), (hp), (v), (a) } + +/* HF: 3 MHz - 30 MHz */ +#define FRQ_RNG_80m_REGION1(md,lp,hp,v,a) \ + { kHz(3500),kHz(3800), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_40m_REGION1(md,lp,hp,v,a) \ + { MHz(7),kHz(7100), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_30m_REGION1(md,lp,hp,v,a) \ + { kHz(10100),kHz(10150), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_20m_REGION1(md,lp,hp,v,a) \ + { MHz(14),kHz(14350), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_17m_REGION1(md,lp,hp,v,a) \ + { kHz(18068),kHz(18168), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_15m_REGION1(md,lp,hp,v,a) \ + { MHz(21),kHz(21450), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_12m_REGION1(md,lp,hp,v,a) \ + { kHz(24890),kHz(24990), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_10m_REGION1(md,lp,hp,v,a) \ + { MHz(28),kHz(29700), (md), (lp), (hp), (v), (a) } + +/* VHF: 30 MHz - 300 MHz */ +#define FRQ_RNG_6m_REGION1(md,lp,hp,v,a) \ + { kHz(50200),kHz(51200), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_2m_REGION1(md,lp,hp,v,a) \ + { MHz(144),MHz(146), (md), (lp), (hp), (v), (a) } + +/* UHF: 300 MHz - 3 GHz */ +#define FRQ_RNG_70cm_REGION1(md,lp,hp,v,a) \ + { MHz(430),MHz(440), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_23cm_REGION1(md,lp,hp,v,a) \ + { MHz(1240),MHz(1300), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_13cm_REGION1(md,lp,hp,v,a) \ + { MHz(2300),MHz(2450), (md), (lp), (hp), (v), (a) } + + +/* + * ITU Region 2: North America, South America and Greenland + */ + +/* MF: 300 kHz - 3 MHz */ +#define FRQ_RNG_160m_REGION2(md,lp,hp,v,a) \ + { kHz(1800),MHz(2), (md), (lp), (hp), (v), (a) } + +/* HF: 3 MHz - 30 MHz */ +#define FRQ_RNG_80m_REGION2(md,lp,hp,v,a) \ + { kHz(3500),MHz(4), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_40m_REGION2(md,lp,hp,v,a) \ + { MHz(7),kHz(7300), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_30m_REGION2(md,lp,hp,v,a) \ + { kHz(10100),kHz(10150), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_20m_REGION2(md,lp,hp,v,a) \ + { MHz(14),kHz(14350), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_17m_REGION2(md,lp,hp,v,a) \ + { kHz(18068),kHz(18168), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_15m_REGION2(md,lp,hp,v,a) \ + { MHz(21),kHz(21450), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_12m_REGION2(md,lp,hp,v,a) \ + { kHz(24890),kHz(24990), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_10m_REGION2(md,lp,hp,v,a) \ + { MHz(28),kHz(29700), (md), (lp), (hp), (v), (a) } + +/* VHF: 30 MHz - 300 MHz */ +#define FRQ_RNG_6m_REGION2(md,lp,hp,v,a) \ + { MHz(50),MHz(54), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_2m_REGION2(md,lp,hp,v,a) \ + { MHz(144),MHz(148), (md), (lp), (hp), (v), (a) } + +/* UHF: 300 MHz - 3 GHz */ +#define FRQ_RNG_70cm_REGION2(md,lp,hp,v,a) \ + { MHz(430),MHz(440), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_23cm_REGION2(md,lp,hp,v,a) \ + { MHz(1240),MHz(1300), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_13cm_REGION2(md,lp,hp,v,a) \ + { MHz(2320),MHz(2450), (md), (lp), (hp), (v), (a) } + +/* + * ITU Region 3: South Pacific and Southern Asia + */ + +/* MF: 300 kHz - 3 MHz */ +#define FRQ_RNG_160m_REGION3(md,lp,hp,v,a) \ + { kHz(1810),MHz(2), (md), (lp), (hp), (v), (a) } + +/* HF: 3 MHz - 30 MHz */ +#define FRQ_RNG_80m_REGION3(md,lp,hp,v,a) \ + { kHz(3500),kHz(3900), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_40m_REGION3(md,lp,hp,v,a) \ + { MHz(7),kHz(7100), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_30m_REGION3(md,lp,hp,v,a) \ + { kHz(10100),kHz(10150), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_20m_REGION3(md,lp,hp,v,a) \ + { MHz(14),kHz(14350), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_17m_REGION3(md,lp,hp,v,a) \ + { kHz(18068),kHz(18168), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_15m_REGION3(md,lp,hp,v,a) \ + { MHz(21),kHz(21450), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_12m_REGION3(md,lp,hp,v,a) \ + { kHz(24890),kHz(24990), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_10m_REGION3(md,lp,hp,v,a) \ + { MHz(28),kHz(29700), (md), (lp), (hp), (v), (a) } + +/* VHF: 30 MHz - 300 MHz */ +#define FRQ_RNG_6m_REGION3(md,lp,hp,v,a) \ + { MHz(50),MHz(54), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_2m_REGION3(md,lp,hp,v,a) \ + { MHz(144),MHz(148), (md), (lp), (hp), (v), (a) } + +/* UHF: 300 MHz - 3 GHz */ +#define FRQ_RNG_70cm_REGION3(md,lp,hp,v,a) \ + { MHz(430),MHz(440), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_23cm_REGION3(md,lp,hp,v,a) \ + { MHz(1240),MHz(1300), (md), (lp), (hp), (v), (a) } + +#define FRQ_RNG_13cm_REGION3(md,lp,hp,v,a) \ + { MHz(2320),MHz(2450), (md), (lp), (hp), (v), (a) } + + +/* + * Now we're done with boring definition + * Let's define FRQ_RNG_HF for REGION1, FRQ_RNG_HF_REGION2, + * and FRQ_RNG_HF_REGION3 all at once! + * NB: FRQ_RNG_HF defines non-AM/AM freq_range for all HF bands, + * plus 160m which is not an HF band strictly speaking. + */ + +#define FRQ_RNG_HF(r,m,lp,hp,v,a) \ + FRQ_RNG_160m_REGION##r((m), (lp), (hp), (v), (a)), \ + FRQ_RNG_80m_REGION##r((m), (lp), (hp), (v), (a)), \ + FRQ_RNG_40m_REGION##r((m), (lp), (hp), (v), (a)), \ + FRQ_RNG_30m_REGION##r((m), (lp), (hp), (v), (a)), \ + FRQ_RNG_20m_REGION##r((m), (lp), (hp), (v), (a)), \ + FRQ_RNG_17m_REGION##r((m), (lp), (hp), (v), (a)), \ + FRQ_RNG_15m_REGION##r((m), (lp), (hp), (v), (a)), \ + FRQ_RNG_12m_REGION##r((m), (lp), (hp), (v), (a)), \ + FRQ_RNG_10m_REGION##r((m), (lp), (hp), (v), (a)) \ + +#define FRQ_RNG_6m(r,m,lp,hp,v,a) \ + FRQ_RNG_6m_REGION##r((m), (lp), (hp), (v), (a)) \ + +#define FRQ_RNG_2m(r,m,lp,hp,v,a) \ + FRQ_RNG_2m_REGION##r((m), (lp), (hp), (v), (a)) \ + +#define FRQ_RNG_70cm(r,m,lp,hp,v,a) \ + FRQ_RNG_70cm_REGION##r((m), (lp), (hp), (v), (a)) \ + + +#endif /* _BANDPLAN_H */