From: <fi...@us...> - 2008-01-05 17:07:57
|
Update of /cvsroot/hamlib/hamlib/kit In directory sc8-pr-cvs17.sourceforge.net:/tmp/cvs-serv11400 Modified Files: elektor507.c Log Message: fix ATT, added get_ant Index: elektor507.c =================================================================== RCS file: /cvsroot/hamlib/hamlib/kit/elektor507.c,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** elektor507.c 7 Nov 2007 19:26:39 -0000 1.2 --- elektor507.c 5 Jan 2008 17:07:51 -0000 1.3 *************** *** 52,56 **** --- 52,58 ---- static int elektor507_get_freq(RIG *rig, vfo_t vfo, freq_t *freq); static int elektor507_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val); + static int elektor507_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val); static int elektor507_set_ant(RIG * rig, vfo_t vfo, ant_t ant); + static int elektor507_get_ant(RIG * rig, vfo_t vfo, ant_t *ant); static int elektor507_set_conf(RIG *rig, token_t token, const char *val); static int elektor507_get_conf(RIG *rig, token_t token, char *val); *************** *** 525,529 **** .dcs_list = NULL, .preamp = { RIG_DBLST_END }, ! .attenuator = { 0, 10, 20 }, .max_rit = Hz(0), .max_xit = Hz(0), --- 527,531 ---- .dcs_list = NULL, .preamp = { RIG_DBLST_END }, ! .attenuator = { 10, 20, RIG_DBLST_END }, .max_rit = Hz(0), .max_xit = Hz(0), *************** *** 567,571 **** --- 569,575 ---- .get_freq = elektor507_get_freq, .set_level = elektor507_set_level, + .get_level = elektor507_get_level, .set_ant = elektor507_set_ant, + .get_ant = elektor507_get_ant, .get_info = elektor507_get_info, *************** *** 895,898 **** --- 899,903 ---- struct elektor507_priv_data *priv = (struct elektor507_priv_data *)rig->state.priv; int ret=0; + int att=0; switch(level) { *************** *** 901,909 **** /* FTDI: DSR, DCD */ ! if (val.i != 0 && val.i != 1 && val.i != 2) ! return -RIG_EINVAL; priv->FT_port &= 0x1f; ! priv->FT_port |= (val.i&0x3) << 5; ret = elektor507_ftdi_write_data(rig, &priv->FT_port, 1); --- 906,918 ---- /* FTDI: DSR, DCD */ ! switch (val.i) { ! case 0: att = 0; break; ! case 10: att = 1; break; ! case 20: att = 2; break; ! default: return -RIG_EINVAL; ! } priv->FT_port &= 0x1f; ! priv->FT_port |= (att&0x3) << 5; ret = elektor507_ftdi_write_data(rig, &priv->FT_port, 1); *************** *** 918,921 **** --- 927,955 ---- } + int elektor507_get_level(RIG *rig, vfo_t vfo, setting_t level, value_t *val) + { + struct elektor507_priv_data *priv = (struct elektor507_priv_data *)rig->state.priv; + int ret=0; + + switch(level) { + case RIG_LEVEL_ATT: + + switch ((priv->FT_port >> 5) & 3) { + case 0: val->i = 0; break; + case 1: val->i = 10; break; + case 2: val->i = 20; break; + default: + ret = -RIG_EINVAL; + } + + break; + + default: + return -RIG_EINVAL; + } + + return (ret != 0) ? -RIG_EIO : RIG_OK; + } + int elektor507_set_ant(RIG * rig, vfo_t vfo, ant_t ant) *************** *** 956,959 **** --- 990,1002 ---- } + int elektor507_get_ant(RIG * rig, vfo_t vfo, ant_t *ant) + { + struct elektor507_priv_data *priv = (struct elektor507_priv_data *)rig->state.priv; + + *ant = priv->ant; + + return RIG_OK; + } + /* |