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
00109 #define TT565_ANTS (RIG_ANT_1|RIG_ANT_2)
00110
00111 #define TT565_RXANTS (TT565_ANTS|RIG_ANT_3)
00112
00114 #define TT565_PARMS (RIG_PARM_NONE)
00115
00119 #define TT565_VFO (RIG_VFO_A|RIG_VFO_B)
00120
00125 #define TT565_VFO_OPS (RIG_OP_UP|RIG_OP_DOWN|\
00126 RIG_OP_TO_VFO|RIG_OP_FROM_VFO| \
00127 RIG_OP_TUNE)
00128
00140 #define TT565_STR_CAL_V1 { 14, { \
00141 { 1, -47 }, \
00142 { 10, -47 }, \
00143 { 13, -42 }, \
00144 { 18, -37 }, \
00145 { 22, -32 }, \
00146 { 27, -27 }, \
00147 { 32, -18 }, \
00148 { 37, -11 }, \
00149 { 42, -4 }, \
00150 { 47, -1 }, \
00151 { 52, 10 }, \
00152 { 57, 20 }, \
00153 { 65, 30 }, \
00154 { 74, 40 }, \
00155 } }
00156
00160 #define TT565_STR_CAL_V2 { 14, { \
00161 { 10., -48. }, \
00162 { 24., -42. }, \
00163 { 38., -36. }, \
00164 { 47., -30. }, \
00165 { 61., -24. }, \
00166 { 70., -18. }, \
00167 { 79., -12. }, \
00168 { 84., -6. }, \
00169 { 94., 0. }, \
00170 { 103., 10. }, \
00171 { 118., 20. }, \
00172 { 134., 30. }, \
00173 { 147., 40. }, \
00174 { 161., 50. }, \
00175 } }
00176
00177 #undef TT565_TIME
00178 #define TT565_ASCII_FREQ
00179
00180
00181
00191 const struct rig_caps tt565_caps = {
00192 .rig_model = RIG_MODEL_TT565,
00193 .model_name = "TT-565 Orion",
00194 .mfg_name = "Ten-Tec",
00195 .version = "0.4",
00196 .copyright = "LGPL",
00197 .status = RIG_STATUS_BETA,
00198 .rig_type = RIG_TYPE_TRANSCEIVER,
00199 .ptt_type = RIG_PTT_RIG,
00200 .dcd_type = RIG_DCD_NONE,
00201 .port_type = RIG_PORT_SERIAL,
00202 .serial_rate_min = 57600,
00203 .serial_rate_max = 57600,
00204 .serial_data_bits = 8,
00205 .serial_stop_bits = 1,
00206 .serial_parity = RIG_PARITY_NONE,
00207 .serial_handshake = RIG_HANDSHAKE_HARDWARE,
00208 .write_delay = 0,
00209 .post_write_delay = 10,
00210 .timeout = 200,
00211 .retry = 4,
00212
00213 .has_get_func = TT565_FUNCS,
00214 .has_set_func = TT565_FUNCS,
00215 .has_get_level = TT565_LEVELS,
00216 .has_set_level = RIG_LEVEL_SET(TT565_LEVELS),
00217 .has_get_parm = TT565_PARMS,
00218 .has_set_parm = TT565_PARMS,
00219
00220 .level_gran = {},
00221 .parm_gran = {},
00222 .ctcss_list = NULL,
00223 .dcs_list = NULL,
00224 .preamp = { 20, RIG_DBLST_END },
00225 .attenuator = { 6, 12, 18, RIG_DBLST_END },
00226 .max_rit = kHz(8),
00227 .max_xit = kHz(8),
00228 .max_ifshift = kHz(8),
00229 .vfo_ops = TT565_VFO_OPS,
00230 .targetable_vfo = RIG_TARGETABLE_ALL,
00231 .transceive = RIG_TRN_OFF,
00232 .bank_qty = 0,
00233 .chan_desc_sz = 0,
00234
00235 .chan_list = {
00236 { 0, 199, RIG_MTYPE_MEM, TT565_MEM_CAP },
00237 },
00238
00239 .rx_range_list1 = {
00240 FRQ_RNG_HF(1,TT565_RXMODES, -1,-1,RIG_VFO_N(0),TT565_RXANTS),
00241 {kHz(500),MHz(30),TT565_RXMODES,-1,-1,RIG_VFO_N(1),TT565_RXANTS},
00242 RIG_FRNG_END,
00243 },
00244 .tx_range_list1 = {
00245 FRQ_RNG_HF(1,TT565_MODES, W(5),W(100),RIG_VFO_N(0),TT565_ANTS),
00246 RIG_FRNG_END,
00247 },
00248
00249 .rx_range_list2 = {
00250 FRQ_RNG_HF(2,TT565_RXMODES, -1,-1,RIG_VFO_N(0),TT565_RXANTS),
00251 {MHz(5.25),MHz(5.40),TT565_RXMODES,-1,-1,RIG_VFO_N(0),TT565_RXANTS},
00252 {kHz(500),MHz(30),TT565_RXMODES,-1,-1,RIG_VFO_N(1),TT565_RXANTS},
00253 RIG_FRNG_END,
00254 },
00255 .tx_range_list2 = {
00256 FRQ_RNG_HF(2,TT565_MODES, W(5),W(100),RIG_VFO_N(0),TT565_ANTS),
00257 {MHz(5.25),MHz(5.40),TT565_MODES,W(5),W(100),RIG_VFO_N(0),TT565_ANTS},
00258 RIG_FRNG_END,
00259 },
00260
00261 .tuning_steps = {
00262 {TT565_RXMODES,1},
00263 {TT565_RXMODES,10},
00264 {TT565_RXMODES,100},
00265 {TT565_RXMODES,kHz(1)},
00266 {TT565_RXMODES,kHz(10)},
00267 {TT565_RXMODES,kHz(100)},
00268 RIG_TS_END,
00269 },
00270
00271 .filters = {
00272
00273
00274 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, kHz(2.4)},
00275 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, 100},
00276 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, kHz(6)},
00277 {RIG_MODE_CW|RIG_MODE_CWR|RIG_MODE_SSB|RIG_MODE_RTTY, 0},
00278 {RIG_MODE_AM, kHz(6)},
00279 {RIG_MODE_AM, kHz(4)},
00280 {RIG_MODE_FM, kHz(15)},
00281 RIG_FLT_END,
00282 },
00283 .priv = (void*)NULL,
00284
00285 .rig_init = tt565_init,
00286 .rig_cleanup = tt565_cleanup,
00287 .rig_open = tt565_open,
00288
00289 .set_freq = tt565_set_freq,
00290 .get_freq = tt565_get_freq,
00291 .set_vfo = tt565_set_vfo,
00292 .get_vfo = tt565_get_vfo,
00293 .set_mode = tt565_set_mode,
00294 .get_mode = tt565_get_mode,
00295 .set_split_vfo = tt565_set_split_vfo,
00296 .get_split_vfo = tt565_get_split_vfo,
00297 .set_level = tt565_set_level,
00298 .get_level = tt565_get_level,
00299 .set_mem = tt565_set_mem,
00300 .get_mem = tt565_get_mem,
00301 .set_ptt = tt565_set_ptt,
00302 .get_ptt = tt565_get_ptt,
00303 .vfo_op = tt565_vfo_op,
00304 .set_ts = tt565_set_ts,
00305 .get_ts = tt565_get_ts,
00306 .set_rit = tt565_set_rit,
00307 .get_rit = tt565_get_rit,
00308 .set_xit = tt565_set_xit,
00309 .get_xit = tt565_get_xit,
00310 .reset = tt565_reset,
00311 .get_info = tt565_get_info,
00312 .send_morse = tt565_send_morse,
00313 .get_func = tt565_get_func,
00314 .set_func = tt565_set_func,
00315 .get_ant = tt565_get_ant,
00316 .set_ant = tt565_set_ant,
00317
00318
00319 .str_cal = TT565_STR_CAL_V2,
00320 };
00321
00322
00323
00324
00325
00327 #define EOM "\015"
00328
00329 #define TT565_USB '0'
00330
00331 #define TT565_LSB '1'
00332
00333 #define TT565_CW '2'
00334
00335 #define TT565_CWR '3'
00336
00337 #define TT565_AM '4'
00338
00339 #define TT565_FM '5'
00340
00341 #define TT565_RTTY '6'
00342
00344 #define TT565_TONE_MIN 300
00345
00346 #define TT565_TONE_MAX 1200
00347
00349 #define TT565_CW_MIN 10
00350
00351 #define TT565_CW_MAX 60
00352