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_open(RIG *rig);
00051 static int tt565_cleanup(RIG *rig);
00052 static int tt565_set_freq(RIG *rig, vfo_t vfo, freq_t freq);
00053 static int tt565_get_freq(RIG *rig, vfo_t vfo, freq_t *freq);
00054 static int tt565_set_vfo(RIG *rig, vfo_t vfo);
00055 static int tt565_get_vfo(RIG *rig, vfo_t *vfo);
00056 static int tt565_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width);
00057 static int tt565_get_mode(RIG *rig, vfo_t vfo, rmode_t *mode, pbwidth_t *width);
00058 static int tt565_set_split_vfo(RIG *rig, vfo_t vfo, split_t split, vfo_t tx_vfo);
00059 static int tt565_get_split_vfo(RIG *rig, vfo_t vfo, split_t *split, vfo_t *tx_vfo);
00060 static int tt565_set_ptt(RIG *rig, vfo_t vfo, ptt_t ptt);
00061 static int tt565_get_ptt(RIG *rig, vfo_t vfo, ptt_t *ptt);
00062 static int tt565_reset(RIG *rig, reset_t reset);
00063 static int tt565_set_mem(RIG * rig, vfo_t vfo, int ch);
00064 static int tt565_get_mem(RIG * rig, vfo_t vfo, int *ch);
00065 static int tt565_vfo_op(RIG * rig, vfo_t vfo, vfo_op_t op);
00066 static int tt565_set_ts(RIG *rig, vfo_t vfo, shortfreq_t ts);
00067 static int tt565_get_ts(RIG *rig, vfo_t vfo, shortfreq_t *ts);
00068 static int tt565_set_rit(RIG * rig, vfo_t vfo, shortfreq_t rit);
00069 static int tt565_get_rit(RIG * rig, vfo_t vfo, shortfreq_t *rit);
00070 static int tt565_set_xit(RIG * rig, vfo_t vfo, shortfreq_t xit);
00071 static int tt565_get_xit(RIG * rig, vfo_t vfo, shortfreq_t *xit);
00072 static int tt565_set_level(RIG * rig, vfo_t vfo, setting_t level, value_t val);
00073 static int tt565_get_level(RIG * rig, vfo_t vfo, setting_t level, value_t *val);
00074 static const char* tt565_get_info(RIG *rig);
00075 static int tt565_send_morse(RIG *rig, vfo_t vfo, const char *msg);
00076 static int tt565_get_func(RIG *rig, vfo_t vfo, setting_t func, int *status);
00077 static int tt565_set_func(RIG *rig, vfo_t vfo, setting_t func, int status);
00078 static int tt565_set_ant(RIG * rig, vfo_t vfo, ant_t ant);
00079 static int tt565_get_ant(RIG *rig, vfo_t vfo, ant_t *ant);
00080
00082 struct tt565_priv_data {
00083 int ch;
00084 vfo_t vfo_curr;
00085 };
00086
00088 #define TT565_MODES (RIG_MODE_FM|RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|\
00089 RIG_MODE_RTTY|RIG_MODE_AM)
00090
00091 #define TT565_RXMODES (TT565_MODES)
00092
00094 #define TT565_FUNCS (RIG_FUNC_LOCK|RIG_FUNC_TUNER|RIG_FUNC_VOX|RIG_FUNC_NB)
00095
00097 #define TT565_LEVELS (RIG_LEVEL_RAWSTR| \
00098 RIG_LEVEL_CWPITCH| \
00099 RIG_LEVEL_SQL|RIG_LEVEL_IF| \
00100 RIG_LEVEL_RFPOWER|RIG_LEVEL_KEYSPD| \
00101 RIG_LEVEL_RF|RIG_LEVEL_NR| \
00102 RIG_LEVEL_MICGAIN| \
00103 RIG_LEVEL_AF|RIG_LEVEL_AGC| \
00104 RIG_LEVEL_VOXGAIN|RIG_LEVEL_VOX|RIG_LEVEL_ANTIVOX| \
00105 RIG_LEVEL_COMP|RIG_LEVEL_PREAMP| \
00106 RIG_LEVEL_SWR|RIG_LEVEL_ATT)| \
00107 RIG_LEVEL_STRENGTH
00108
00110 #define TT565_ANTS (RIG_ANT_1|RIG_ANT_2)
00111
00112 #define TT565_RXANTS (TT565_ANTS|RIG_ANT_3)
00113
00115 #define TT565_PARMS (RIG_PARM_NONE)
00116
00120 #define TT565_VFO (RIG_VFO_A|RIG_VFO_B)
00121
00126 #define TT565_VFO_OPS (RIG_OP_UP|RIG_OP_DOWN|\
00127 RIG_OP_TO_VFO|RIG_OP_FROM_VFO| \
00128 RIG_OP_TUNE)
00129
00141 #define TT565_STR_CAL_V1 { 14, { \
00142 { 1, -47 }, \
00143 { 10, -47 }, \
00144 { 13, -42 }, \
00145 { 18, -37 }, \
00146 { 22, -32 }, \
00147 { 27, -27 }, \
00148 { 32, -18 }, \
00149 { 37, -11 }, \
00150 { 42, -4 }, \
00151 { 47, -1 }, \
00152 { 52, 10 }, \
00153 { 57, 20 }, \
00154 { 65, 30 }, \
00155 { 74, 40 }, \
00156 } }
00157
00161 #define TT565_STR_CAL_V2 { 14, { \
00162 { 10., -48. }, \
00163 { 24., -42. }, \
00164 { 38., -36. }, \
00165 { 47., -30. }, \
00166 { 61., -24. }, \
00167 { 70., -18. }, \
00168 { 79., -12. }, \
00169 { 84., -6. }, \
00170 { 94., 0. }, \
00171 { 103., 10. }, \
00172 { 118., 20. }, \
00173 { 134., 30. }, \
00174 { 147., 40. }, \
00175 { 161., 50. }, \
00176 } }
00177
00178 #undef TT565_TIME
00179 #define TT565_ASCII_FREQ
00180
00181
00182
00192 const struct rig_caps tt565_caps = {
00193 .rig_model = RIG_MODEL_TT565,
00194 .model_name = "TT-565 Orion",
00195 .mfg_name = "Ten-Tec",
00196 .version = "0.3",
00197 .copyright = "LGPL",
00198 .status = RIG_STATUS_BETA,
00199 .rig_type = RIG_TYPE_TRANSCEIVER,
00200 .ptt_type = RIG_PTT_RIG,
00201 .dcd_type = RIG_DCD_NONE,
00202 .port_type = RIG_PORT_SERIAL,
00203 .serial_rate_min = 57600,
00204 .serial_rate_max = 57600,
00205 .serial_data_bits = 8,
00206 .serial_stop_bits = 1,
00207 .serial_parity = RIG_PARITY_NONE,
00208 .serial_handshake = RIG_HANDSHAKE_HARDWARE,
00209 .write_delay = 0,
00210 .post_write_delay = 10,
00211 .timeout = 200,
00212 .retry = 4,
00213
00214 .has_get_func = TT565_FUNCS,
00215 .has_set_func = TT565_FUNCS,
00216 .has_get_level = TT565_LEVELS,
00217 .has_set_level = RIG_LEVEL_SET(TT565_LEVELS),
00218 .has_get_parm = TT565_PARMS,
00219 .has_set_parm = TT565_PARMS,
00220
00221 .level_gran = {},
00222 .parm_gran = {},
00223 .ctcss_list = NULL,
00224 .dcs_list = NULL,
00225 .preamp = { 20, RIG_DBLST_END },
00226 .attenuator = { 6, 12, 18, RIG_DBLST_END },
00227 .max_rit = kHz(8),
00228 .max_xit = kHz(8),
00229 .max_ifshift = kHz(8),
00230 .vfo_ops = TT565_VFO_OPS,
00231 .targetable_vfo = RIG_TARGETABLE_ALL,
00232 .transceive = RIG_TRN_OFF,
00233 .bank_qty = 0,
00234 .chan_desc_sz = 0,
00235
00236 .chan_list = {
00237 { 0, 199, RIG_MTYPE_MEM, TT565_MEM_CAP },
00238 },
00239
00240 .rx_range_list1 = {
00241 FRQ_RNG_HF(1,TT565_RXMODES, -1,-1,RIG_VFO_N(0),TT565_RXANTS),
00242 {kHz(500),MHz(30),TT565_RXMODES,-1,-1,RIG_VFO_N(1),TT565_RXANTS},
00243 RIG_FRNG_END,
00244 },
00245 .tx_range_list1 = {
00246 FRQ_RNG_HF(1,TT565_MODES, W(5),W(100),RIG_VFO_N(0),TT565_ANTS),
00247 RIG_FRNG_END,
00248 },
00249
00250 .rx_range_list2 = {
00251 FRQ_RNG_HF(2,TT565_RXMODES, -1,-1,RIG_VFO_N(0),TT565_RXANTS),
00252 {MHz(5.25),MHz(5.40),TT565_RXMODES,-1,-1,RIG_VFO_N(0),TT565_RXANTS},
00253 {kHz(500),MHz(30),TT565_RXMODES,-1,-1,RIG_VFO_N(1),TT565_RXANTS},
00254 RIG_FRNG_END,
00255 },
00256 .tx_range_list2 = {
00257 FRQ_RNG_HF(2,TT565_MODES, W(5),W(100),RIG_VFO_N(0),TT565_ANTS),
00258 {MHz(5.25),MHz(5.40),TT565_MODES,W(5),W(100),RIG_VFO_N(0),TT565_ANTS},
00259 RIG_FRNG_END,
00260 },
00261
00262 .tuning_steps = {
00263 {TT565_RXMODES,1},
00264 {TT565_RXMODES,10},
00265 {TT565_RXMODES,100},
00266 {TT565_RXMODES,kHz(1)},
00267 {TT565_RXMODES,kHz(10)},
00268 {TT565_RXMODES,kHz(100)},
00269 RIG_TS_END,
00270 },
00271
00272 .filters = {
00273
00274
00275 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, kHz(2.4)},
00276 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, 100},
00277 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, kHz(6)},
00278 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, 0},
00279 {RIG_MODE_AM, kHz(6)},
00280 {RIG_MODE_AM, kHz(4)},
00281 {RIG_MODE_FM, kHz(15)},
00282 RIG_FLT_END,
00283 },
00284 .priv = (void*)NULL,
00285
00286 .rig_init = tt565_init,
00287 .rig_cleanup = tt565_cleanup,
00288 .rig_open = tt565_open,
00289
00290 .set_freq = tt565_set_freq,
00291 .get_freq = tt565_get_freq,
00292 .set_vfo = tt565_set_vfo,
00293 .get_vfo = tt565_get_vfo,
00294 .set_mode = tt565_set_mode,
00295 .get_mode = tt565_get_mode,
00296 .set_split_vfo = tt565_set_split_vfo,
00297 .get_split_vfo = tt565_get_split_vfo,
00298 .set_level = tt565_set_level,
00299 .get_level = tt565_get_level,
00300 .set_mem = tt565_set_mem,
00301 .get_mem = tt565_get_mem,
00302 .set_ptt = tt565_set_ptt,
00303 .get_ptt = tt565_get_ptt,
00304 .vfo_op = tt565_vfo_op,
00305 .set_ts = tt565_set_ts,
00306 .get_ts = tt565_get_ts,
00307 .set_rit = tt565_set_rit,
00308 .get_rit = tt565_get_rit,
00309 .set_xit = tt565_set_xit,
00310 .get_xit = tt565_get_xit,
00311 .reset = tt565_reset,
00312 .get_info = tt565_get_info,
00313 .send_morse = tt565_send_morse,
00314 .get_func = tt565_get_func,
00315 .set_func = tt565_set_func,
00316 .get_ant = tt565_get_ant,
00317 .set_ant = tt565_set_ant,
00318
00319
00320 .str_cal = TT565_STR_CAL_V2,
00321 };
00322
00323
00324
00325
00326
00328 #define EOM "\015"
00329
00330 #define TT565_USB '0'
00331
00332 #define TT565_LSB '1'
00333
00334 #define TT565_CW '2'
00335
00336 #define TT565_CWR '3'
00337
00338 #define TT565_AM '4'
00339
00340 #define TT565_FM '5'
00341
00342 #define TT565_RTTY '6'
00343
00345 #define TT565_TONE_MIN 300
00346
00347 #define TT565_TONE_MAX 1200
00348
00350 #define TT565_CW_MIN 10
00351
00352 #define TT565_CW_MAX 60
00353