From: Alexandru C. <cs...@us...> - 2008-01-05 15:29:00
|
Update of /cvsroot/hamlib/hamlib/yaesu In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv5347 Modified Files: ft817.c Log Message: Fixed S-meter reading to use calibration table since frontend always uses RAWSTR. Index: ft817.c =================================================================== RCS file: /cvsroot/hamlib/hamlib/yaesu/ft817.c,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -r1.14 -r1.15 *** ft817.c 7 Oct 2006 15:51:38 -0000 1.14 --- ft817.c 5 Jan 2008 15:28:57 -0000 1.15 *************** *** 146,191 **** #define FT817_ANTS 0 const struct rig_caps ft817_caps = { ! .rig_model = RIG_MODEL_FT817, ! .model_name = "FT-817", ! .mfg_name = "Yaesu", ! .version = "0.3", ! .copyright = "LGPL", ! .status = RIG_STATUS_BETA, ! .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 = 38400, ! .serial_data_bits = 8, ! .serial_stop_bits = 2, ! .serial_parity = RIG_PARITY_NONE, ! .serial_handshake = RIG_HANDSHAKE_NONE, ! .write_delay = FT817_WRITE_DELAY, ! .post_write_delay = FT817_POST_WRITE_DELAY, ! .timeout = FT817_TIMEOUT, ! .retry = 0, ! .has_get_func = RIG_FUNC_NONE, ! .has_set_func = RIG_FUNC_LOCK | RIG_FUNC_TONE | RIG_FUNC_TSQL, ! .has_get_level = RIG_LEVEL_STRENGTH | RIG_LEVEL_RAWSTR | RIG_LEVEL_RFPOWER, ! .has_set_level = RIG_LEVEL_NONE, ! .has_get_parm = RIG_PARM_NONE, ! .has_set_parm = RIG_PARM_NONE, ! .level_gran = {}, /* granularity */ ! .parm_gran = {}, ! .ctcss_list = static_common_ctcss_list, ! .dcs_list = static_ft817_dcs_list, /* only 104 out of 106 supported */ ! .preamp = { RIG_DBLST_END, }, ! .attenuator = { RIG_DBLST_END, }, ! .max_rit = Hz(9990), ! .max_xit = Hz(0), ! .max_ifshift = Hz(0), ! .vfo_ops = RIG_OP_TOGGLE, ! .targetable_vfo = 0, ! .transceive = RIG_TRN_OFF, ! .bank_qty = 0, ! .chan_desc_sz = 0, ! .chan_list = { RIG_CHAN_END, }, .rx_range_list1 = { --- 146,211 ---- #define FT817_ANTS 0 + #define FT817_STR_CAL { 16, \ + { \ + { 0x00, -54 }, /* S0 */ \ + { 0x01, -48 }, \ + { 0x02, -42 }, \ + { 0x03, -36 }, \ + { 0x04, -30 }, \ + { 0x05, -24 }, \ + { 0x06, -18 }, \ + { 0x07, -12 }, \ + { 0x08, -6 }, \ + { 0x09, 0 }, /* S9 */ \ + { 0x0A, 10 }, /* +10 */ \ + { 0x0B, 20 }, /* +20 */ \ + { 0x0C, 30 }, /* +30 */ \ + { 0x0D, 40 }, /* +40 */ \ + { 0x0E, 50 }, /* +50 */ \ + { 0x0F, 60 } /* +60 */ \ + } } + const struct rig_caps ft817_caps = { ! .rig_model = RIG_MODEL_FT817, ! .model_name = "FT-817", ! .mfg_name = "Yaesu", ! .version = "0.4", ! .copyright = "LGPL", ! .status = RIG_STATUS_STABLE, ! .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 = 38400, ! .serial_data_bits = 8, ! .serial_stop_bits = 2, ! .serial_parity = RIG_PARITY_NONE, ! .serial_handshake = RIG_HANDSHAKE_NONE, ! .write_delay = FT817_WRITE_DELAY, ! .post_write_delay = FT817_POST_WRITE_DELAY, ! .timeout = FT817_TIMEOUT, ! .retry = 0, ! .has_get_func = RIG_FUNC_NONE, ! .has_set_func = RIG_FUNC_LOCK | RIG_FUNC_TONE | RIG_FUNC_TSQL, ! .has_get_level = RIG_LEVEL_STRENGTH | RIG_LEVEL_RAWSTR | RIG_LEVEL_RFPOWER, ! .has_set_level = RIG_LEVEL_NONE, ! .has_get_parm = RIG_PARM_NONE, ! .has_set_parm = RIG_PARM_NONE, ! .level_gran = {}, /* granularity */ ! .parm_gran = {}, ! .ctcss_list = static_common_ctcss_list, ! .dcs_list = static_ft817_dcs_list, /* only 104 out of 106 supported */ ! .preamp = { RIG_DBLST_END, }, ! .attenuator = { RIG_DBLST_END, }, ! .max_rit = Hz(9990), ! .max_xit = Hz(0), ! .max_ifshift = Hz(0), ! .vfo_ops = RIG_OP_TOGGLE, ! .targetable_vfo = 0, ! .transceive = RIG_TRN_OFF, ! .bank_qty = 0, ! .chan_desc_sz = 0, ! .chan_list = { RIG_CHAN_END, }, .rx_range_list1 = { *************** *** 253,256 **** --- 273,278 ---- }, + .str_cal = FT817_STR_CAL, + .priv = NULL, .rig_init = ft817_init, *************** *** 579,582 **** --- 601,606 ---- } + #if 0 + /* frontend will always use RAWSTR+cal_table */ static int ft817_get_smeter_level(RIG *rig, value_t *val) { *************** *** 588,597 **** return n; ! n = (p->rx_status & 0x0F) - 9; ! val->i = n * ((n > 0) ? 10 : 6); return RIG_OK; } static int ft817_get_raw_smeter_level(RIG *rig, value_t *val) --- 612,640 ---- return n; ! //n = (p->rx_status & 0x0F) - 9; ! //val->i = n * ((n > 0) ? 10 : 6); ! ! /* S-meter value is returned in the lower 4 bits. ! 0x00 = S0 (-54dB) ! 0x01 = S1 ! 0x02 = S2 ! ... ! 0x09 = S9 (0dB) ! 0x0A = S9+10 (10dB) ! 0x0B = S9+20 and so on ! */ ! n = (p->rx_status & 0x0F); ! ! if (n < 0x0A) { ! n = (6*n)-54; ! } ! else { ! val->i = 10*(n-9); ! } return RIG_OK; } + #endif static int ft817_get_raw_smeter_level(RIG *rig, value_t *val) *************** *** 618,622 **** --- 661,667 ---- case RIG_LEVEL_STRENGTH: + /* The front-end will always call for RAWSTR and use the cal_table return ft817_get_smeter_level(rig, val); + */ case RIG_LEVEL_RAWSTR: |