/* * rx340_set_level * Assumes rig!=NULL * cannot support PREAMP and ATT both at same time (make sense though) */ int rx340_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) { struct rig_state *rs = &rig->state; int cmd_len, retval=RIG_OK; char cmdbuf[32]; switch (level) { case RIG_LEVEL_ATT: cmd_len = sprintf(cmdbuf, "K%c" EOM, val.i ? '3' : '1'); break; case RIG_LEVEL_PREAMP: cmd_len = sprintf(cmdbuf, "K%c" EOM, val.i ? '2' : '1'); break; case RIG_LEVEL_AGC: /* default to MEDIUM */ cmd_len = sprintf(cmdbuf, "M%c" EOM, val.i==RIG_AGC_SLOW ? '3' : ( val.i==RIG_AGC_FAST ? '1' : '2' ) ); break; case RIG_LEVEL_RF: cmd_len = sprintf(cmdbuf, "A%d" EOM, 120-(int)(val.f*120)); break; case RIG_LEVEL_SQL: cmd_len = sprintf(cmdbuf, "Q%d" EOM, 150-(int)(val.f*150)); break; case RIG_LEVEL_NOTCHF: cmd_len = num_sprintf(cmdbuf, "N%f" EOM, ((float)val.i)/1e3); break; case RIG_LEVEL_IF: cmd_len = num_sprintf(cmdbuf, "P%f" EOM, ((float)val.i)/1e3); break; case RIG_LEVEL_CWPITCH: /* only in CW mode */ cmd_len = num_sprintf(cmdbuf, "B%f" EOM, ((float)val.i)/1e3); break; default: rig_debug(RIG_DEBUG_ERR,"%s: Unsupported set_level %d\n", __func__, level); return -RIG_EINVAL; } retval = write_block(&rs->rigport, cmdbuf, cmd_len); return retval; }
int rs_set_level(RIG *rig, vfo_t vfo, setting_t level, value_t val) { char buf[32]; int len, retval; switch (level) { case RIG_LEVEL_ATT: len = sprintf(buf, BOM "INP:ATT:STAT %s" EOM, val.i ? "ON" : "OFF"); break; case RIG_LEVEL_SQL: /* dBuV */ len = sprintf(buf, BOM "OUTP:SQU:THR %d" EOM, (int) (20 + val.f*20)); break; case RIG_LEVEL_AF: len = num_sprintf(buf, BOM "SYST:AUD:VOL %.1f" EOM, val.f); break; case RIG_LEVEL_AGC: case RIG_LEVEL_RF: return -RIG_ENIMPL; default: return -RIG_EINVAL; } retval = rs_transaction(rig, buf, len, NULL, NULL); return retval; }
/* * rx340_set_mode * Assumes rig!=NULL */ int rx340_set_mode(RIG *rig, vfo_t vfo, rmode_t mode, pbwidth_t width) { struct rig_state *rs = &rig->state; char dmode; int mdbuf_len, retval; char mdbuf[32]; switch (mode) { case RIG_MODE_USB: dmode = RX340_USB; break; case RIG_MODE_LSB: dmode = RX340_LSB; break; case RIG_MODE_CW: dmode = RX340_CW; break; case RIG_MODE_FM: dmode = RX340_FM; break; case RIG_MODE_AM: dmode = RX340_AM; break; case RIG_MODE_AMS: dmode = RX340_SAM; break; case RIG_MODE_DSB: dmode = RX340_ISB; break; default: rig_debug(RIG_DEBUG_ERR, "%s: unsupported mode %d\n", __func__, mode); return -RIG_EINVAL; } if (width != RIG_PASSBAND_NOCHANGE) { if (width == RIG_PASSBAND_NORMAL) width = rig_passband_normal(rig, mode); /* * Set DETECTION MODE and IF FILTER */ mdbuf_len = num_sprintf(mdbuf, "D%cI%.02f" EOM, dmode, (float)width/1e3); } else { /* * Set DETECTION MODE */ mdbuf_len = num_sprintf(mdbuf, "D%c" EOM, dmode); } retval = write_block(&rs->rigport, mdbuf, mdbuf_len); return retval; }
/* * rx340_set_freq */ int rx340_set_freq(RIG *rig, vfo_t vfo, freq_t freq) { struct rig_state *rs = &rig->state; int freq_len, retval; char freqbuf[16]; freq_len = num_sprintf(freqbuf, "F%.6f" EOM, freq/1e6); retval = write_block(&rs->rigport, freqbuf, freq_len); return retval; }