From e40ca60a025769c92442ec48cf6649870b5f5a1e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Fillod=2C=20F8CFE?= Date: Sat, 26 Feb 2005 23:13:12 +0000 Subject: [PATCH] cloned FT1000MP entries git-svn-id: https://hamlib.svn.sourceforge.net/svnroot/hamlib/trunk@1936 7ae35d74-ebe9-4afe-98af-79ac388436b8 --- yaesu/ft1000mp.c | 259 ++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 257 insertions(+), 2 deletions(-) diff --git a/yaesu/ft1000mp.c b/yaesu/ft1000mp.c index 02cfff130..a8187137f 100644 --- a/yaesu/ft1000mp.c +++ b/yaesu/ft1000mp.c @@ -4,7 +4,7 @@ * This shared library provides an API for communicating * via serial interface to an FT-1000MP using the "CAT" interface * - * $Id: ft1000mp.c,v 1.5 2005-01-25 00:21:58 fillods Exp $ + * $Id: ft1000mp.c,v 1.6 2005-02-26 23:13:12 fillods Exp $ * * This library is free software; you can redistribute it and/or modify * it under the terms of the GNU Library General Public License as @@ -48,6 +48,11 @@ #include "yaesu.h" #include "ft1000mp.h" +/* + * Differences between FT1000MP: + * The FT1000MP MARK-V Field appears to be identical to FT1000MP, + * whereas the FT1000MP MARK-V is a FT1000MP with 200W. TBC. + */ /* Private helper function prototypes */ @@ -140,7 +145,7 @@ static const yaesu_cmd_set_t ncmd[] = { /** * 33 CTCSS sub-audible tones */ -const tone_t ft1000mp_ctcss_list[] = { +static const tone_t ft1000mp_ctcss_list[] = { 670, 719, 770, 825, 885, 948, 1000, 1035, 1072, 1109, 1148, 1188, 1230, 1273, 1318, 1365, 1413, 1462, 1514, 1567, 1598, 1622, 1679, @@ -200,6 +205,131 @@ struct ft1000mp_priv_data { const struct rig_caps ft1000mp_caps = { .rig_model = RIG_MODEL_FT1000MP, + .model_name = "FT-1000MP", + .mfg_name = "Yaesu", + .version = "0.0.5", + .copyright = "LGPL", + .status = RIG_STATUS_ALPHA, + .rig_type = RIG_TYPE_TRANSCEIVER, + .ptt_type = RIG_PTT_RIG, + .dcd_type = RIG_DCD_RIG, + .port_type = RIG_PORT_SERIAL, + .serial_rate_min = 4800, + .serial_rate_max = 4800, + .serial_data_bits = 8, + .serial_stop_bits = 2, + .serial_parity = RIG_PARITY_NONE, + .serial_handshake = RIG_HANDSHAKE_NONE, + .write_delay = FT1000MP_WRITE_DELAY, + .post_write_delay = FT1000MP_POST_WRITE_DELAY, + .timeout = 2000, + .retry = 0, + .has_get_func = FT1000MP_FUNC_ALL, + .has_set_func = FT1000MP_FUNC_ALL, + .has_get_level = FT1000MP_LEVEL_GET, + .has_set_level = RIG_LEVEL_NONE, /* as strange as it could be */ + .has_get_parm = RIG_PARM_NONE, + .has_set_parm = RIG_PARM_NONE, + .ctcss_list = ft1000mp_ctcss_list, + .dcs_list = NULL, + .vfo_ops = FT1000MP_VFO_OPS, + .preamp = { RIG_DBLST_END, }, + .attenuator = { RIG_DBLST_END, }, + .max_rit = Hz(9999), + .max_xit = Hz(9999), + .max_ifshift = kHz(1.12), + .targetable_vfo = RIG_TARGETABLE_FREQ, + .transceive = RIG_TRN_OFF, + .bank_qty = 0, + .chan_desc_sz = 0, + .chan_list = { + { 1, 99, RIG_MTYPE_MEM, FT1000MP_MEM_CAP }, + { 100, 108, RIG_MTYPE_EDGE }, /* P1 .. P9 */ + { 109, 113, RIG_MTYPE_MEMOPAD }, /* Q1 .. Q5 */ + RIG_CHAN_END, + }, + .rx_range_list1 = { + {kHz(100), MHz(30), FT1000MP_ALL_RX_MODES, -1, -1, FT1000MP_VFOS, FT1000MP_ANTS }, /* General coverage + ham */ + RIG_FRNG_END, + }, /* Region 1 rx ranges */ + + .tx_range_list1 = { + FRQ_RNG_HF(1,FT1000MP_OTHER_TX_MODES, W(5),W(100),FT1000MP_VFOS,FT1000MP_ANTS), + FRQ_RNG_HF(1,FT1000MP_AM_TX_MODES, W(2),W(25),FT1000MP_VFOS,FT1000MP_ANTS), /* AM class */ + RIG_FRNG_END, + }, /* region 1 TX ranges */ + + .rx_range_list2 = { + {kHz(100), MHz(30), FT1000MP_ALL_RX_MODES, -1, -1, FT1000MP_VFOS, FT1000MP_ANTS }, /* General coverage + ham */ + RIG_FRNG_END, + }, /* Region 2 rx ranges */ + + .tx_range_list2 = { + FRQ_RNG_HF(1,FT1000MP_OTHER_TX_MODES, W(5),W(100),FT1000MP_VFOS,FT1000MP_ANTS), + FRQ_RNG_HF(1,FT1000MP_AM_TX_MODES, W(2),W(25),FT1000MP_VFOS,FT1000MP_ANTS), /* AM class */ + RIG_FRNG_END, + }, /* region 2 TX ranges */ + + .tuning_steps = { + {RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_RTTY, Hz(10)}, /* Normal */ + {RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_RTTY, Hz(100)}, /* Fast */ + + {RIG_MODE_AM, Hz(100)}, /* Normal */ + {RIG_MODE_AM, kHz(1)}, /* Fast */ + + {RIG_MODE_FM, Hz(100)}, /* Normal */ + {RIG_MODE_FM, kHz(1)}, /* Fast */ + + RIG_TS_END, + + /* + * The FT-1000MP has a Fine tuning step which increments in 1 Hz steps + * for SSB_CW_RX_MODES, and 10 Hz steps for AM_RX_MODES and + * FM_RX_MODES. It doesn't appear that anything finer than 10 Hz + * is available through the CAT interface, however. -N0NB + * + */ + }, + + /* mode/filter list, .remember = order matters! */ + .filters = { + {RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY|RIG_MODE_AM, kHz(2.4)}, + {RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY, kHz(2.0)}, + {RIG_MODE_CW|RIG_MODE_RTTY, Hz(500)}, + {RIG_MODE_CW|RIG_MODE_RTTY, Hz(250)}, + {RIG_MODE_AM, kHz(5)}, /* wide */ + {RIG_MODE_FM, kHz(8)}, /* FM */ + + RIG_FLT_END, + }, + .str_cal = FT1000MP_STR_CAL, + + .priv = NULL, /* private data */ + + .rig_init = ft1000mp_init, + .rig_cleanup = ft1000mp_cleanup, + .rig_open = ft1000mp_open, /* port opened */ + + .set_freq = ft1000mp_set_freq, /* set freq */ + .get_freq = ft1000mp_get_freq, /* get freq */ + .set_mode = ft1000mp_set_mode, /* set mode */ + .get_mode = ft1000mp_get_mode, /* get mode */ + .set_vfo = ft1000mp_set_vfo, /* set vfo */ + .get_vfo = ft1000mp_get_vfo, /* get vfo */ + + .get_rit = ft1000mp_get_rit, + .set_rit = ft1000mp_set_rit, + .get_xit = ft1000mp_get_xit, + .set_xit = ft1000mp_set_xit, + + .get_level = ft1000mp_get_level, + .set_ptt = ft1000mp_set_ptt, + + /* TODO: the remaining ... */ +}; + +const struct rig_caps ft1000mpmkv_caps = { + .rig_model = RIG_MODEL_FT1000MPMKV, .model_name = "MARK-V FT-1000MP", .mfg_name = "Yaesu", .version = "0.0.5", @@ -248,6 +378,131 @@ const struct rig_caps ft1000mp_caps = { RIG_FRNG_END, }, /* Region 1 rx ranges */ + .tx_range_list1 = { + FRQ_RNG_HF(1,FT1000MP_OTHER_TX_MODES, W(5),W(200),FT1000MP_VFOS,FT1000MP_ANTS), + FRQ_RNG_HF(1,FT1000MP_AM_TX_MODES, W(2),W(50),FT1000MP_VFOS,FT1000MP_ANTS), /* AM class */ + RIG_FRNG_END, + }, /* region 1 TX ranges */ + + .rx_range_list2 = { + {kHz(100), MHz(30), FT1000MP_ALL_RX_MODES, -1, -1, FT1000MP_VFOS, FT1000MP_ANTS }, /* General coverage + ham */ + RIG_FRNG_END, + }, /* Region 2 rx ranges */ + + .tx_range_list2 = { + FRQ_RNG_HF(1,FT1000MP_OTHER_TX_MODES, W(5),W(200),FT1000MP_VFOS,FT1000MP_ANTS), + FRQ_RNG_HF(1,FT1000MP_AM_TX_MODES, W(2),W(50),FT1000MP_VFOS,FT1000MP_ANTS), /* AM class */ + RIG_FRNG_END, + }, /* region 2 TX ranges */ + + .tuning_steps = { + {RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_RTTY, Hz(10)}, /* Normal */ + {RIG_MODE_CW|RIG_MODE_SSB|RIG_MODE_RTTY, Hz(100)}, /* Fast */ + + {RIG_MODE_AM, Hz(100)}, /* Normal */ + {RIG_MODE_AM, kHz(1)}, /* Fast */ + + {RIG_MODE_FM, Hz(100)}, /* Normal */ + {RIG_MODE_FM, kHz(1)}, /* Fast */ + + RIG_TS_END, + + /* + * The FT-1000MP has a Fine tuning step which increments in 1 Hz steps + * for SSB_CW_RX_MODES, and 10 Hz steps for AM_RX_MODES and + * FM_RX_MODES. It doesn't appear that anything finer than 10 Hz + * is available through the CAT interface, however. -N0NB + * + */ + }, + + /* mode/filter list, .remember = order matters! */ + .filters = { + {RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY|RIG_MODE_AM, kHz(2.4)}, + {RIG_MODE_SSB|RIG_MODE_CW|RIG_MODE_RTTY, kHz(2.0)}, + {RIG_MODE_CW|RIG_MODE_RTTY, Hz(500)}, + {RIG_MODE_CW|RIG_MODE_RTTY, Hz(250)}, + {RIG_MODE_AM, kHz(5)}, /* wide */ + {RIG_MODE_FM, kHz(8)}, /* FM */ + + RIG_FLT_END, + }, + .str_cal = FT1000MP_STR_CAL, + + .priv = NULL, /* private data */ + + .rig_init = ft1000mp_init, + .rig_cleanup = ft1000mp_cleanup, + .rig_open = ft1000mp_open, /* port opened */ + + .set_freq = ft1000mp_set_freq, /* set freq */ + .get_freq = ft1000mp_get_freq, /* get freq */ + .set_mode = ft1000mp_set_mode, /* set mode */ + .get_mode = ft1000mp_get_mode, /* get mode */ + .set_vfo = ft1000mp_set_vfo, /* set vfo */ + .get_vfo = ft1000mp_get_vfo, /* get vfo */ + + .get_rit = ft1000mp_get_rit, + .set_rit = ft1000mp_set_rit, + .get_xit = ft1000mp_get_xit, + .set_xit = ft1000mp_set_xit, + + .get_level = ft1000mp_get_level, + .set_ptt = ft1000mp_set_ptt, + + /* TODO: the remaining ... */ +}; + +const struct rig_caps ft1000mpmkvfld_caps = { + .rig_model = RIG_MODEL_FT1000MPMKVFLD, + .model_name = "MARK-V Field FT-1000MP", + .mfg_name = "Yaesu", + .version = "0.0.5", + .copyright = "LGPL", + .status = RIG_STATUS_ALPHA, + .rig_type = RIG_TYPE_TRANSCEIVER, + .ptt_type = RIG_PTT_RIG, + .dcd_type = RIG_DCD_RIG, + .port_type = RIG_PORT_SERIAL, + .serial_rate_min = 4800, + .serial_rate_max = 4800, + .serial_data_bits = 8, + .serial_stop_bits = 2, + .serial_parity = RIG_PARITY_NONE, + .serial_handshake = RIG_HANDSHAKE_NONE, + .write_delay = FT1000MP_WRITE_DELAY, + .post_write_delay = FT1000MP_POST_WRITE_DELAY, + .timeout = 2000, + .retry = 0, + .has_get_func = FT1000MP_FUNC_ALL, + .has_set_func = FT1000MP_FUNC_ALL, + .has_get_level = FT1000MP_LEVEL_GET, + .has_set_level = RIG_LEVEL_NONE, /* as strange as it could be */ + .has_get_parm = RIG_PARM_NONE, + .has_set_parm = RIG_PARM_NONE, + .ctcss_list = ft1000mp_ctcss_list, + .dcs_list = NULL, + .vfo_ops = FT1000MP_VFO_OPS, + .preamp = { RIG_DBLST_END, }, + .attenuator = { RIG_DBLST_END, }, + .max_rit = Hz(9999), + .max_xit = Hz(9999), + .max_ifshift = kHz(1.12), + .targetable_vfo = RIG_TARGETABLE_FREQ, + .transceive = RIG_TRN_OFF, + .bank_qty = 0, + .chan_desc_sz = 0, + .chan_list = { + { 1, 99, RIG_MTYPE_MEM, FT1000MP_MEM_CAP }, + { 100, 108, RIG_MTYPE_EDGE }, /* P1 .. P9 */ + { 109, 113, RIG_MTYPE_MEMOPAD }, /* Q1 .. Q5 */ + RIG_CHAN_END, + }, + .rx_range_list1 = { + {kHz(100), MHz(30), FT1000MP_ALL_RX_MODES, -1, -1, FT1000MP_VFOS, FT1000MP_ANTS }, /* General coverage + ham */ + RIG_FRNG_END, + }, /* Region 1 rx ranges */ + .tx_range_list1 = { FRQ_RNG_HF(1,FT1000MP_OTHER_TX_MODES, W(5),W(100),FT1000MP_VFOS,FT1000MP_ANTS), FRQ_RNG_HF(1,FT1000MP_AM_TX_MODES, W(2),W(25),FT1000MP_VFOS,FT1000MP_ANTS), /* AM class */