1 /* 2 * Hamlib WiNRADiO backend - WR1000 description 3 * Copyright (c) 2001-2004 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 #include <stdlib.h> 23 24 #include <hamlib/rig.h> 25 #include "winradio.h" 26 27 28 #ifdef WINRADIO_IOCTL 29 30 /* 31 * Winradio rigs capabilities. 32 */ 33 34 #define WR1000_FUNC 0 35 #define WR1000_SET_LEVEL (RIG_LEVEL_ATT | RIG_LEVEL_AF) 36 #define WR1000_LEVEL (WR1000_SET_LEVEL | RIG_LEVEL_STRENGTH) 37 38 #define WR1000_MODES (RIG_MODE_AM | \ 39 RIG_MODE_USB | RIG_MODE_LSB | RIG_MODE_FM) 40 41 const struct rig_caps wr1000_caps = 42 { 43 RIG_MODEL(RIG_MODEL_WR1000), 44 .model_name = "WR-1000", 45 .mfg_name = "Winradio", 46 .version = BACKEND_VER ".0", 47 .copyright = "LGPL", 48 .status = RIG_STATUS_UNTESTED, 49 .rig_type = RIG_TYPE_PCRECEIVER, 50 .port_type = RIG_PORT_DEVICE, 51 .targetable_vfo = 0, 52 .ptt_type = RIG_PTT_NONE, 53 .dcd_type = RIG_DCD_NONE, 54 .has_get_func = WR1000_FUNC, 55 .has_set_func = WR1000_FUNC, 56 .has_get_level = WR1000_LEVEL, 57 .has_set_level = WR1000_SET_LEVEL, 58 .has_get_parm = RIG_PARM_NONE, 59 .has_set_parm = RIG_PARM_NONE, 60 .ctcss_list = NULL, 61 .dcs_list = NULL, 62 .chan_list = { RIG_CHAN_END, }, 63 .transceive = RIG_TRN_OFF, 64 .attenuator = { 20, RIG_DBLST_END, }, 65 .rx_range_list1 = { { 66 .startf = kHz(500), .endf = MHz(1300), .modes = WR1000_MODES, 67 .low_power = -1, .high_power = -1, .vfo = RIG_VFO_A 68 }, 69 { 70 .startf = MHz(30), .endf = MHz(1300), .modes = RIG_MODE_WFM, 71 .low_power = -1, .high_power = -1, .vfo = RIG_VFO_A 72 }, 73 RIG_FRNG_END, 74 }, 75 .rx_range_list2 = { { 76 .startf = kHz(500), .endf = MHz(824), .modes = WR1000_MODES, 77 .low_power = -1, .high_power = -1, .vfo = RIG_VFO_A 78 }, 79 { 80 .startf = MHz(30), .endf = MHz(824), .modes = RIG_MODE_WFM, 81 .low_power = -1, .high_power = -1, .vfo = RIG_VFO_A 82 }, 83 { 84 .startf = MHz(849), .endf = MHz(869), 85 .modes = WR1000_MODES | RIG_MODE_WFM, 86 .low_power = -1, .high_power = -1, .vfo = RIG_VFO_A 87 }, 88 { 89 .startf = MHz(894), .endf = MHz(1300), 90 .modes = WR1000_MODES | RIG_MODE_WFM, 91 .low_power = -1, .high_power = -1, .vfo = RIG_VFO_A 92 }, 93 RIG_FRNG_END, 94 }, 95 96 .tx_range_list2 = { RIG_FRNG_END, }, 97 98 .tuning_steps = { {WR1000_MODES | RIG_MODE_WFM, 100}, 99 RIG_TS_END, 100 }, 101 102 .filters = { {RIG_MODE_SSB | RIG_MODE_AM, kHz(6)}, 103 {RIG_MODE_FM, kHz(17)}, 104 {RIG_MODE_WFM, kHz(230)}, 105 RIG_FLT_END, 106 }, 107 108 .priv = NULL, /* priv */ 109 110 .rig_init = wr_rig_init, 111 112 .set_freq = wr_set_freq, 113 .get_freq = wr_get_freq, 114 .set_mode = wr_set_mode, 115 .get_mode = wr_get_mode, 116 117 .set_powerstat = wr_set_powerstat, 118 .get_powerstat = wr_get_powerstat, 119 .set_level = wr_set_level, 120 .get_level = wr_get_level, 121 .set_func = NULL, 122 .get_func = NULL, 123 124 .get_info = wr_get_info, 125 }; 126 127 #endif /* WINRADIO_IOCTL */ 128