00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
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 }, \
00141 { 13, -42 }, \
00142 { 18, -36 }, \
00143 { 22, -30 }, \
00144 { 27, -24 }, \
00145 { 30, -18 }, \
00146 { 34, -12 }, \
00147 { 38, -6 }, \
00148 { 43, 0 }, \
00149 { 48, 10 }, \
00150 { 55, 20 }, \
00151 { 62, 30 }, \
00152 { 70, 40 }, \
00153 { 78, 48 }, \
00154 { 101, 65 }, \
00155 } }
00156
00157 #undef TT565_TIME
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,
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
00248 .filters = {
00249
00250
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},
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
00299
00300
00302 #define EOM "\015"
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