orion.h

Go to the documentation of this file.
00001 /*
00002  *  Hamlib TenTenc backend - TT-565 headers
00003  *  Copyright (c) 2004-2006 by Stephane Fillod & Martin Ewing
00004  *
00005  *
00006  *   This library is free software; you can redistribute it and/or modify
00007  *   it under the terms of the GNU Library General Public License as
00008  *   published by the Free Software Foundation; either version 2 of
00009  *   the License, or (at your option) any later version.
00010  *
00011  *   This program is distributed in the hope that it will be useful,
00012  *   but WITHOUT ANY WARRANTY; without even the implied warranty of
00013  *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00014  *   GNU Library General Public License for more details.
00015  *
00016  *   You should have received a copy of the GNU Library General Public
00017  *   License along with this library; if not, write to the Free Software
00018  *   Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
00019  *
00020  */
00021 
00034 #define TT565_BUFSIZE 16
00035 
00043 #define TT565_MEM_CAP {        \
00044         .freq = 1,      \
00045         .mode = 1,      \
00046         .width = 1,     \
00047 }
00048 
00049 static int tt565_init(RIG *rig);
00050 static int tt565_cleanup(RIG *rig);
00051 static int tt565_set_freq(RIG *rig, vfo_t vfo, freq_t freq);
00052 static int tt565_get_freq(RIG *rig, vfo_t vfo, freq_t *freq);
00053 static int tt565_set_vfo(RIG *rig, vfo_t vfo);
00054 static int tt565_get_vfo(RIG *rig, vfo_t *vfo);
00055 static int tt565_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
00056 static int tt565_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
00057 static int tt565_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo);
00058 static int tt565_get_split_vfo(RIG *rig, vfo_t vfo, split_t *split, vfo_t *tx_vfo);
00059 static int tt565_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt);
00060 static int tt565_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt);
00061 static int tt565_reset(RIG *rig, reset_t reset);
00062 static int tt565_set_mem(RIG * rig, vfo_t vfo, int ch);
00063 static int tt565_get_mem(RIG * rig, vfo_t vfo, int *ch);
00064 static int tt565_vfo_op(RIG * rig, vfo_t vfo, vfo_op_t op);
00065 static int tt565_set_ts(RIG *rig, vfo_t vfo, shortfreq_t ts);
00066 static int tt565_get_ts(RIG *rig, vfo_t vfo, shortfreq_t *ts);
00067 static int tt565_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit);
00068 static int tt565_get_rit(RIG * rig, vfo_t vfo, shortfreq_t *rit);
00069 static int tt565_set_xit(RIG * rig, vfo_t vfo, shortfreq_t xit);
00070 static int tt565_get_xit(RIG * rig, vfo_t vfo, shortfreq_t *xit);
00071 static int tt565_set_level(RIG * rig, vfo_t vfo, setting_t level, value_t val);
00072 static int tt565_get_level(RIG * rig, vfo_t vfo, setting_t level, value_t *val);
00073 static const char* tt565_get_info(RIG *rig);
00074 static int tt565_send_morse(RIG *rig, vfo_t vfo, const char *msg);
00075 static int tt565_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status);
00076 static int tt565_set_func(RIG *rig, vfo_t vfo, setting_t func, int status);
00077 static int tt565_set_ant(RIG * rig, vfo_t vfo, ant_t ant);
00078 static int tt565_get_ant(RIG *rig, vfo_t vfo, ant_t *ant);
00079 
00081 struct tt565_priv_data {
00082         int ch;         
00083         vfo_t vfo_curr; 
00084 };
00085 
00087 #define TT565_MODES (RIG_MODE_FM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|\
00088                         RIG_MODE_RTTY|RIG_MODE_AM)
00089 
00090 #define TT565_RXMODES (TT565_MODES)
00091 
00093 #define TT565_FUNCS (RIG_FUNC_LOCK|RIG_FUNC_TUNER|RIG_FUNC_VOX|RIG_FUNC_NB)
00094 
00096 #define TT565_LEVELS (RIG_LEVEL_RAWSTR| \
00097                                 RIG_LEVEL_CWPITCH| \
00098                                 RIG_LEVEL_SQL|RIG_LEVEL_IF| \
00099                                 RIG_LEVEL_RFPOWER|RIG_LEVEL_KEYSPD| \
00100                                 RIG_LEVEL_RF|RIG_LEVEL_NR| \
00101                                 RIG_LEVEL_MICGAIN| \
00102                                 RIG_LEVEL_AF|RIG_LEVEL_AGC| \
00103                                 RIG_LEVEL_VOXGAIN|RIG_LEVEL_VOX|RIG_LEVEL_ANTIVOX| \
00104                                 RIG_LEVEL_COMP|RIG_LEVEL_PREAMP| \
00105                                 RIG_LEVEL_SWR|RIG_LEVEL_ATT)
00106 
00108 #define TT565_ANTS (RIG_ANT_1|RIG_ANT_2) 
00109 
00110 #define TT565_RXANTS (TT565_ANTS|RIG_ANT_3) 
00111 
00113 #define TT565_PARMS (RIG_PARM_NONE)
00114 
00118 #define TT565_VFO (RIG_VFO_A|RIG_VFO_B)
00119 
00124 #define TT565_VFO_OPS (RIG_OP_UP|RIG_OP_DOWN|\
00125                 RIG_OP_TO_VFO|RIG_OP_FROM_VFO| \
00126                 RIG_OP_TUNE)
00127 
00139 #define TT565_STR_CAL { 15,  { \
00140                 {  10, -45 }, /* S 1.5 min meter indication */ \
00141                 {  13, -42 }, \
00142                 {  18, -36 }, \
00143                 {  22, -30 }, \
00144                 {  27, -24 }, \
00145                 {  30, -18 }, \
00146                 {  34, -12 }, \
00147                 {  38,  -6 }, \
00148                 {  43,   0 }, /* S9 */ \
00149                 {  48,  10 }, \
00150                 {  55,  20 }, \
00151                 {  62,  30 }, \
00152                 {  70,  40 }, \
00153                 {  78,  48 }, /* severe dsp quantization error */ \
00154                 { 101,  65 }, /* at high end of scale */ \
00155         } }
00156 
00157 #undef TT565_TIME               /* Define to enable time checks */
00158 
00168 const struct rig_caps tt565_caps = {
00169 .rig_model =  RIG_MODEL_TT565,
00170 .model_name = "TT-565 Orion",
00171 .mfg_name =  "Ten-Tec",
00172 .version =  "0.3",
00173 .copyright =  "LGPL",
00174 .status =  RIG_STATUS_BETA,
00175 .rig_type =  RIG_TYPE_TRANSCEIVER,
00176 .ptt_type =  RIG_PTT_RIG,
00177 .dcd_type =  RIG_DCD_NONE,
00178 .port_type =  RIG_PORT_SERIAL,
00179 .serial_rate_min =  57600,
00180 .serial_rate_max =  57600,
00181 .serial_data_bits =  8,
00182 .serial_stop_bits =  1,
00183 .serial_parity =  RIG_PARITY_NONE,
00184 .serial_handshake =  RIG_HANDSHAKE_HARDWARE,
00185 .write_delay =  0,
00186 .post_write_delay =  10,        /* Needed for CW send + ?? */
00187 .timeout =  400,
00188 .retry =  3,
00189 
00190 .has_get_func =  TT565_FUNCS,
00191 .has_set_func =  TT565_FUNCS,
00192 .has_get_level =  TT565_LEVELS,
00193 .has_set_level =  RIG_LEVEL_SET(TT565_LEVELS),
00194 .has_get_parm =  TT565_PARMS,
00195 .has_set_parm =  TT565_PARMS,
00196 
00197 .level_gran = {}, 
00198 .parm_gran =  {},
00199 .ctcss_list =  NULL,
00200 .dcs_list =  NULL,
00201 .preamp =   { 20, RIG_DBLST_END },
00202 .attenuator =   { 6, 12, 18, RIG_DBLST_END },
00203 .max_rit =  kHz(8),
00204 .max_xit =  kHz(8),
00205 .max_ifshift =  kHz(8),
00206 .vfo_ops = TT565_VFO_OPS,
00207 .targetable_vfo =  RIG_TARGETABLE_ALL,
00208 .transceive =  RIG_TRN_OFF,
00209 .bank_qty =   0,
00210 .chan_desc_sz =  0,
00211 
00212 .chan_list =  {
00213                 {   0, 199, RIG_MTYPE_MEM, TT565_MEM_CAP },
00214                 },
00215 
00216 .rx_range_list1 =  {
00217         FRQ_RNG_HF(1,TT565_RXMODES, -1,-1,RIG_VFO_N(0),TT565_RXANTS),
00218         {kHz(500),MHz(30),TT565_RXMODES,-1,-1,RIG_VFO_N(1),TT565_RXANTS},
00219         RIG_FRNG_END,
00220   },
00221 .tx_range_list1 =  {
00222         FRQ_RNG_HF(1,TT565_MODES, W(5),W(100),RIG_VFO_N(0),TT565_ANTS),
00223         RIG_FRNG_END,
00224   },
00225 
00226 .rx_range_list2 =  {
00227         FRQ_RNG_HF(2,TT565_RXMODES, -1,-1,RIG_VFO_N(0),TT565_RXANTS),
00228         {MHz(5.25),MHz(5.40),TT565_RXMODES,-1,-1,RIG_VFO_N(0),TT565_RXANTS},
00229         {kHz(500),MHz(30),TT565_RXMODES,-1,-1,RIG_VFO_N(1),TT565_RXANTS},
00230         RIG_FRNG_END,
00231   },
00232 .tx_range_list2 =  {
00233         FRQ_RNG_HF(2,TT565_MODES, W(5),W(100),RIG_VFO_N(0),TT565_ANTS),
00234         {MHz(5.25),MHz(5.40),TT565_MODES,W(5),W(100),RIG_VFO_N(0),TT565_ANTS},
00235         RIG_FRNG_END,
00236   },
00237 
00238 .tuning_steps =  {
00239          {TT565_RXMODES,1},
00240          {TT565_RXMODES,10},
00241          {TT565_RXMODES,100},
00242          {TT565_RXMODES,kHz(1)},
00243          {TT565_RXMODES,kHz(10)},
00244          {TT565_RXMODES,kHz(100)},
00245          RIG_TS_END,
00246         },
00247         /* mode/filter list, remember: order matters! */
00248 .filters =  {
00249         /* 9MHz IF filters: 15kHz, 6kHz, 2.4kHz, 1.0kHz */
00250         /* opt: 1.8kHz, 500Hz, 250Hz */
00251                 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, kHz(2.4)},
00252                 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, 100},
00253                 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, kHz(6)},
00254                 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, 0}, /* 590 filters */
00255                 {RIG_MODE_AM, kHz(6)},
00256                 {RIG_MODE_AM, kHz(4)},
00257                 {RIG_MODE_FM, kHz(15)},
00258                 RIG_FLT_END,
00259         },
00260 .priv =  (void*)NULL,
00261 
00262 .rig_init =  tt565_init,
00263 .rig_cleanup =  tt565_cleanup,
00264 
00265 .set_freq =  tt565_set_freq,
00266 .get_freq =  tt565_get_freq,
00267 .set_vfo =  tt565_set_vfo,
00268 .get_vfo =  tt565_get_vfo,
00269 .set_mode =  tt565_set_mode,
00270 .get_mode =  tt565_get_mode,
00271 .set_split_vfo =  tt565_set_split_vfo,
00272 .get_split_vfo =  tt565_get_split_vfo,
00273 .set_level =  tt565_set_level,
00274 .get_level =  tt565_get_level,
00275 .set_mem =  tt565_set_mem,
00276 .get_mem =  tt565_get_mem,
00277 .set_ptt =  tt565_set_ptt,
00278 .get_ptt =  tt565_get_ptt,
00279 .vfo_op =  tt565_vfo_op,
00280 .set_ts =  tt565_set_ts,
00281 .get_ts =  tt565_get_ts,
00282 .set_rit =  tt565_set_rit,
00283 .get_rit =  tt565_get_rit,
00284 .set_xit =  tt565_set_xit,
00285 .get_xit =  tt565_get_xit,
00286 .reset =  tt565_reset,
00287 .get_info =  tt565_get_info,
00288 .send_morse = tt565_send_morse,
00289 .get_func = tt565_get_func,
00290 .set_func = tt565_set_func,
00291 .get_ant = tt565_get_ant,
00292 .set_ant = tt565_set_ant,
00293 
00294 .str_cal = TT565_STR_CAL,
00295 };
00296 
00297 /*
00298  * Function definitions below
00299  */
00300 
00302 #define EOM "\015"      /* CR */
00303 
00304 #define TT565_USB '0'
00305 
00306 #define TT565_LSB '1'
00307 
00308 #define TT565_CW  '2'
00309 
00310 #define TT565_CWR '3'
00311 
00312 #define TT565_AM  '4'
00313 
00314 #define TT565_FM  '5'
00315 
00316 #define TT565_RTTY '6'
00317 
00319 #define TT565_TONE_MIN 300
00320 
00321 #define TT565_TONE_MAX 1200
00322 
00324 #define TT565_CW_MIN 10
00325 
00326 #define TT565_CW_MAX 60
00327 

Generated on Thu May 24 22:54:21 2007 for Hamlib by  doxygen 1.5.2