FTdx101MP

* add FTdx101MP class based off of FTdx101D
  * add auto on/off to both FTdx101D and FTdx101MP
This commit is contained in:
David Freese 2020-03-03 15:58:00 -06:00
parent e7e7e2d976
commit 67bfab3da0
4 changed files with 341 additions and 250 deletions

View file

@ -30,112 +30,127 @@ private:
// void update_bandwidths();
public:
RIG_FTdx101D();
~RIG_FTdx101D(){}
~RIG_FTdx101D() {}
void initialize();
virtual void initialize();
bool check();
virtual bool check();
long get_vfoA();
void set_vfoA(long);
virtual long get_vfoA();
virtual void set_vfoA(long);
long get_vfoB();
void set_vfoB(long);
virtual long get_vfoB();
virtual void set_vfoB(long);
bool twovfos();
void selectA();
void selectB();
void A2B();
bool can_split();
void set_split(bool val);
int get_split();
virtual bool twovfos();
virtual void selectA();
virtual void selectB();
virtual void A2B();
virtual bool can_split();
virtual void set_split(bool val);
virtual int get_split();
void swapAB();
bool canswap() { return true; }
virtual void swapAB();
virtual bool canswap() { return true; }
void set_modeA(int val);
int get_modeA();
int get_modetype(int n);
virtual void set_modeA(int val);
virtual int get_modeA();
virtual int get_modetype(int n);
void set_modeB(int val);
int get_modeB();
virtual void set_modeB(int val);
virtual int get_modeB();
void set_bwA(int val);
int get_bwA();
virtual void set_bwA(int val);
virtual int get_bwA();
void set_bwB(int val);
int get_bwB();
virtual void set_bwB(int val);
virtual int get_bwB();
int adjust_bandwidth(int val);
int def_bandwidth(int val);
virtual int adjust_bandwidth(int val);
virtual int def_bandwidth(int val);
void set_BANDWIDTHS(std::string s);
std::string get_BANDWIDTHS();
virtual void set_BANDWIDTHS(std::string s);
virtual std::string get_BANDWIDTHS();
int get_smeter();
int get_swr();
int get_alc();
int get_power_out();
int get_power_control();
void set_volume_control(int val);
void set_power_control(double val);
void get_pc_min_max_step(double &min, double &max, double &step) {
virtual int get_smeter();
virtual int get_swr();
virtual int get_alc();
virtual int get_power_out();
virtual int get_power_control();
virtual void set_power_control(double val);
virtual void get_pc_min_max_step(double &min, double &max, double &step) {
min = 5; max = 100; step = 1; }
int get_volume_control();
void set_PTT_control(int val);
int get_PTT();
void tune_rig(int);
int get_tune();
int next_attenuator();
void set_attenuator(int val);
int get_attenuator();
int next_preamp();
void set_preamp(int val);
int get_preamp();
virtual void set_volume_control(int val);
virtual int get_volume_control();
virtual void set_PTT_control(int val);
virtual int get_PTT();
virtual void tune_rig(int);
virtual int get_tune();
virtual int next_attenuator();
virtual void set_attenuator(int val);
virtual int get_attenuator();
virtual int next_preamp();
virtual void set_preamp(int val);
virtual int get_preamp();
void set_if_shift(int val);
bool get_if_shift(int &val);
void get_if_min_max_step(int &min, int &max, int &step);
virtual void set_if_shift(int val);
virtual bool get_if_shift(int &val);
virtual void get_if_min_max_step(int &min, int &max, int &step);
void set_notch(bool on, int val);
bool get_notch(int &val);
void get_notch_min_max_step(int &min, int &max, int &step);
virtual void set_notch(bool on, int val);
virtual bool get_notch(int &val);
virtual void get_notch_min_max_step(int &min, int &max, int &step);
void set_auto_notch(int v);
int get_auto_notch();
virtual void set_auto_notch(int v);
virtual int get_auto_notch();
void set_noise(bool b);
int get_noise();
virtual void set_noise(bool b);
virtual int get_noise();
void set_mic_gain(int val);
int get_mic_gain();
void get_mic_min_max_step(int &min, int &max, int &step);
virtual void set_mic_gain(int val);
virtual int get_mic_gain();
virtual void get_mic_min_max_step(int &min, int &max, int &step);
void set_rf_gain(int val);
int get_rf_gain();
void get_rf_min_max_step(int &min, int &max, int &step);
const char **bwtable(int);
virtual void set_rf_gain(int val);
virtual int get_rf_gain();
virtual void get_rf_min_max_step(int &min, int &max, int &step);
virtual const char **bwtable(int);
void set_vox_onoff();
void set_vox_gain();
void set_vox_anti();
void set_vox_hang();
void set_vox_on_dataport();
virtual void set_vox_onoff();
virtual void set_vox_gain();
virtual void set_vox_anti();
virtual void set_vox_hang();
virtual void set_vox_on_dataport();
void get_cw_wpm_min_max(int &min, int &max) {
virtual void get_cw_wpm_min_max(int &min, int &max) {
min = 4; max = 60; }
void set_cw_weight();
void set_cw_wpm();
void enable_keyer();
void set_cw_qsk();
// void set_cw_vol();
bool set_cw_spot();
// void set_cw_spot_tone();
virtual void set_cw_weight();
virtual void set_cw_wpm();
virtual void enable_keyer();
virtual void set_cw_qsk();
// virtual void set_cw_vol();
virtual bool set_cw_spot();
// virtual void set_cw_spot_tone();
virtual void get_band_selection(int v);
void set_xcvr_auto_on();
void set_xcvr_auto_off();
void get_band_selection(int v);
};
class RIG_FTdx101MP : public RIG_FTdx101D {
public:
RIG_FTdx101MP();
~RIG_FTdx101MP() {}
void get_pc_min_max_step(double &min, double &max, double &step) {
min = 5; max = 200; step = 1; }
int get_power_out();
int get_power_control();
void set_power_control(double val);
};
#endif

View file

@ -124,63 +124,64 @@ extern RIG_FT1000 rig_FT1000; // 19
extern RIG_FT1000MP rig_FT1000MP; // 20
extern RIG_FT2000 rig_FT2000; // 21
extern RIG_FTdx101D rig_FTdx101D; // 22
extern RIG_FTdx1200 rig_FTdx1200; // 23
extern RIG_FTdx3000 rig_FTdx3000; // 24
extern RIG_FT5000 rig_FT5000; // 25
extern RIG_FTdx9000 rig_FTdx9000; // 26
extern RIG_IC703 rig_IC703; // 27
extern RIG_IC706MKIIG rig_IC706MKIIG; // 28
extern RIG_IC718 rig_IC718; // 29
extern RIG_IC728 rig_IC728; // 30
extern RIG_IC735 rig_IC735; // 31
extern RIG_IC746 rig_IC746; // 32
extern RIG_IC746PRO rig_IC746PRO; // 33
extern RIG_IC756 rig_IC756; // 34
extern RIG_IC756PRO rig_IC756PRO; // 35
extern RIG_IC756PRO2 rig_IC756PRO2; // 36
extern RIG_IC756PRO3 rig_IC756PRO3; // 37
extern RIG_IC7000 rig_IC7000; // 38
extern RIG_IC7100 rig_IC7100; // 39
extern RIG_IC7200 rig_IC7200; // 40
extern RIG_IC7300 rig_IC7300; // 41
extern RIG_IC7410 rig_IC7410; // 42
extern RIG_IC7600 rig_IC7600; // 43
extern RIG_IC7610 rig_IC7610; // 44
extern RIG_IC7700 rig_IC7700; // 45
extern RIG_IC7800 rig_IC7800; // 46
extern RIG_IC7851 rig_IC7851; // 47
extern RIG_IC9100 rig_IC9100; // 48
extern RIG_IC9700 rig_IC9700; // 49
extern RIG_IC910H rig_IC910H; // 50
extern RIG_ICF8101 rig_ICF8101; // 51
extern RIG_K2 rig_K2; // 52
extern RIG_K3 rig_K3; // 53
extern RIG_KX3 rig_KX3; // 54
extern RIG_PCR1000 rig_PCR1000; // 55
extern RIG_RAY152 rig_RAY152; // 56
extern RIG_TS140 rig_TS140; // 57
extern RIG_TS450S rig_TS450S; // 58
extern RIG_TS480HX rig_TS480HX; // 59
extern RIG_TS480SAT rig_TS480SAT; // 60
extern RIG_TS570 rig_TS570; // 61
extern RIG_TS590S rig_TS590S; // 62
extern RIG_TS590SG rig_TS590SG; // 63
extern RIG_TS790 rig_TS790; // 64
extern RIG_TS850 rig_TS850; // 65
extern RIG_TS870S rig_TS870S; // 66 wbx
extern RIG_TS890S rig_TS890S; // 67
extern RIG_TS940S rig_TS940S; // 68
extern RIG_TS950 rig_TS950; // 69
extern RIG_TS990 rig_TS990; // 70 G0HIX
extern RIG_TS2000 rig_TS2000; // 71
extern RIG_TT516 rig_TT516; // 72
extern RIG_TT535 rig_TT535; // 73
extern RIG_TT538 rig_TT538; // 74
extern RIG_TT550 rig_TT550; // 75
extern RIG_TT563 rig_TT563; // 76
extern RIG_TT566 rig_TT566; // 77
extern RIG_TT588 rig_TT588; // 78
extern RIG_TT599 rig_TT599; // 79
extern RIG_AOR5K rig_AOR5K; // 80
extern RIG_FTdx101MP rig_FTdx101MP; // 23
extern RIG_FTdx1200 rig_FTdx1200; // 24
extern RIG_FTdx3000 rig_FTdx3000; // 25
extern RIG_FT5000 rig_FT5000; // 26
extern RIG_FTdx9000 rig_FTdx9000; // 27
extern RIG_IC703 rig_IC703; // 28
extern RIG_IC706MKIIG rig_IC706MKIIG; // 29
extern RIG_IC718 rig_IC718; // 30
extern RIG_IC728 rig_IC728; // 31
extern RIG_IC735 rig_IC735; // 32
extern RIG_IC746 rig_IC746; // 33
extern RIG_IC746PRO rig_IC746PRO; // 34
extern RIG_IC756 rig_IC756; // 35
extern RIG_IC756PRO rig_IC756PRO; // 36
extern RIG_IC756PRO2 rig_IC756PRO2; // 37
extern RIG_IC756PRO3 rig_IC756PRO3; // 38
extern RIG_IC7000 rig_IC7000; // 39
extern RIG_IC7100 rig_IC7100; // 40
extern RIG_IC7200 rig_IC7200; // 41
extern RIG_IC7300 rig_IC7300; // 42
extern RIG_IC7410 rig_IC7410; // 43
extern RIG_IC7600 rig_IC7600; // 44
extern RIG_IC7610 rig_IC7610; // 45
extern RIG_IC7700 rig_IC7700; // 46
extern RIG_IC7800 rig_IC7800; // 47
extern RIG_IC7851 rig_IC7851; // 48
extern RIG_IC9100 rig_IC9100; // 49
extern RIG_IC9700 rig_IC9700; // 50
extern RIG_IC910H rig_IC910H; // 51
extern RIG_ICF8101 rig_ICF8101; // 52
extern RIG_K2 rig_K2; // 53
extern RIG_K3 rig_K3; // 54
extern RIG_KX3 rig_KX3; // 55
extern RIG_PCR1000 rig_PCR1000; // 56
extern RIG_RAY152 rig_RAY152; // 57
extern RIG_TS140 rig_TS140; // 58
extern RIG_TS450S rig_TS450S; // 59
extern RIG_TS480HX rig_TS480HX; // 60
extern RIG_TS480SAT rig_TS480SAT; // 61
extern RIG_TS570 rig_TS570; // 62
extern RIG_TS590S rig_TS590S; // 63
extern RIG_TS590SG rig_TS590SG; // 64
extern RIG_TS790 rig_TS790; // 65
extern RIG_TS850 rig_TS850; // 66
extern RIG_TS870S rig_TS870S; // 67 wbx
extern RIG_TS890S rig_TS890S; // 68
extern RIG_TS940S rig_TS940S; // 69
extern RIG_TS950 rig_TS950; // 70
extern RIG_TS990 rig_TS990; // 71 G0HIX
extern RIG_TS2000 rig_TS2000; // 72
extern RIG_TT516 rig_TT516; // 73
extern RIG_TT535 rig_TT535; // 74
extern RIG_TT538 rig_TT538; // 75
extern RIG_TT550 rig_TT550; // 76
extern RIG_TT563 rig_TT563; // 77
extern RIG_TT566 rig_TT566; // 78
extern RIG_TT588 rig_TT588; // 79
extern RIG_TT599 rig_TT599; // 80
extern RIG_AOR5K rig_AOR5K; // 81
#endif

View file

@ -57,14 +57,14 @@ static const char FTdx101D_mode_chr[] = { '1', '2', '3', '4', '5', '6', '7', '8
static const char FTdx101D_mode_type[] = { 'L', 'U', 'U', 'U', 'U', 'L', 'L', 'L', 'U', 'U', 'U', 'U', 'U', 'U', 'U' };
static const char *FTdx101D_widths_SSB[] = {
"200", "400", "600", "850", "1100",
"1350", "1500", "1650", "1800", "1950",
"300", "400", "600", "850", "1100",
"1200", "1500", "1650", "1800", "1950",
"2100", "2200", "2300", "2400", "2500",
"2600", "2700", "2800", "2900", "3000",
"3200", NULL };
"3200", "3500", "4000", NULL };
static int FTdx101D_wvals_SSB[] = {
1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21, WVALS_LIMIT};
1,2,3,4,5,6,7,8,9,10,11,12,13,15,16,17,18,19,20,21,22,23 WVALS_LIMIT};
static const char *FTdx101D_widths_CW[] = {
"50", "100", "150", "200", "250",
@ -84,7 +84,7 @@ static const char *FTdx101D_widths_RTTY[] = {
static int FTdx101D_wvals_RTTY[] = {
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18, WVALS_LIMIT };
static const char *FTdx101D_widths_PSK[] = {
static const char *FTdx101D_widths_DATA[] = {
"50", "100", "150", "200", "250",
"300", "350", "400", "450", "500",
"600", "800", "1200", "1400", "1700",
@ -95,11 +95,12 @@ static int FTdx101D_wvals_PSK[] = {
static const int FTdx101D_wvals_AMFM[] = { 0, WVALS_LIMIT };
static const char *FTdx101D_widths_AMwide[] = { "AM-bw", NULL };
static const char *FTdx101D_widths_AMnar[] = { "AM-nar", NULL };
static const char *FTdx101D_widths_FMnar[] = { "FM-nar", NULL };
static const char *FTdx101D_widths_FMwide[] = { "FM-wid", NULL };
static const char *FTdx101D_widths_FMpkt[] = { "FM-pkt", NULL };
static const char *FTdx101D_widths_AMwide[] = { "9000", NULL };
static const char *FTdx101D_widths_AMnar[] = { "6000", NULL };
static const char *FTdx101D_widths_FMnar[] = { "9000", NULL };
static const char *FTdx101D_widths_FMwide[] = { "16000", NULL };
static const char *FTdx101D_widths_DATA_FM[] = { "16000", NULL };
static const char *FTdx101D_widths_DATA_FMN[] = { "9000", NULL };
static const char *FTdx101D_US_60m[] = {NULL, "126", "127", "128", "130", NULL};
// US has 5 60M presets. Using dummy numbers for all.
@ -207,7 +208,8 @@ RIG_FTdx101D::RIG_FTdx101D() {
has_preamp_control =
has_ifshift_control =
has_ptt_control =
has_tune_control = true;
has_tune_control =
has_xcvr_auto_on_off = true;
// derived specific
atten_level = 0;
@ -220,6 +222,27 @@ RIG_FTdx101D::RIG_FTdx101D() {
}
void RIG_FTdx101D::set_xcvr_auto_on()
{
// send dummy data request for ID (see pg 12 CAT reference book)
cmd = "ID;";
sendCommand(cmd);
// wait 1 to 2 seconds
MilliSleep(1500);
cmd = "PS1;";
sendCommand(cmd);
// wait for power on status
cmd = "PS;";
waitN(4, 500, "Xcvr ON?", ASC);
}
void RIG_FTdx101D::set_xcvr_auto_off()
{
cmd = "PS0;";
sendCommand(cmd);
sett("set_xcvr_auto_off");
}
void RIG_FTdx101D::get_band_selection(int v)
{
int inc_60m = false;
@ -720,13 +743,14 @@ int RIG_FTdx101D::adjust_bandwidth(int val)
else if (val == mAM) bandwidths_ = FTdx101D_widths_AMwide;
else if (val == mAM_N) bandwidths_ = FTdx101D_widths_AMnar;
else if (val == mFM_N) bandwidths_ = FTdx101D_widths_FMnar;
else if (val == mDATA_FM) bandwidths_ = FTdx101D_widths_FMpkt;
else if (val == mDATA_FM) bandwidths_ = FTdx101D_widths_DATA_FM;
else if (val == mDATA_FMN) bandwidths_ = FTdx101D_widths_DATA_FMN;
bw_vals_ = FTdx101D_wvals_AMFM;
} else if (val == mRTTY_L || val == mRTTY_U) { // RTTY
bandwidths_ = FTdx101D_widths_RTTY;
bw_vals_ = FTdx101D_wvals_RTTY;
} else if (val == mDATA_L || val == mDATA_U) { // PSK
bandwidths_ = FTdx101D_widths_PSK;
bandwidths_ = FTdx101D_widths_DATA;
bw_vals_ = FTdx101D_wvals_PSK;
} else {
bandwidths_ = FTdx101D_widths_SSB;
@ -768,11 +792,11 @@ const char ** RIG_FTdx101D::bwtable(int n)
case mRTTY_L: case mRTTY_U:
return FTdx101D_widths_RTTY;
case mDATA_L: case mDATA_U:
return FTdx101D_widths_PSK;
return FTdx101D_widths_DATA;
case mFM_N:
return FTdx101D_widths_FMnar;
return FTdx101D_widths_DATA_FMN;
case mDATA_FM:
return FTdx101D_widths_FMpkt;
return FTdx101D_widths_DATA_FM;
default: ;
}
return FTdx101D_widths_SSB;
@ -787,20 +811,8 @@ void RIG_FTdx101D::set_modeA(int val)
sendCommand(cmd);
showresp(WARN, ASC, "SET mode A", cmd, replystr);
adjust_bandwidth(modeA);
// if (val == mCW_U || val == mCW_L) return;
// if (progStatus.spot_onoff) {
// progStatus.spot_onoff = false;
// set_spot_onoff();
// cmd = "CS0;";
// sendCommand(cmd);
// showresp(WARN, ASC, "SET spot off", cmd, replystr);
// btnSpot->value(0);
// }
}
//static string Amode = "MD03;";
//static string Bmode = "MD19;";
int RIG_FTdx101D::get_modeA()
{
cmd = rsp = "MD0";
@ -809,8 +821,6 @@ int RIG_FTdx101D::get_modeA()
gett("get_modeA()");
//replystr = Amode;
size_t p = replystr.rfind(rsp);
if (p != string::npos) {
if (p + 3 < replystr.length()) {
@ -835,15 +845,6 @@ void RIG_FTdx101D::set_modeB(int val)
sendCommand(cmd);
showresp(WARN, ASC, "SET mode B", cmd, replystr);
adjust_bandwidth(modeA);
// if (val == mCW_U || val == mCW_L) return;
// if (progStatus.spot_onoff) {
// progStatus.spot_onoff = false;
// set_spot_onoff();
// cmd = "CS0;";
// sendCommand(cmd);
// showresp(WARN, ASC, "SET spot off", cmd, replystr);
// btnSpot->value(0);
// }
}
int RIG_FTdx101D::get_modeB()
@ -853,7 +854,6 @@ int RIG_FTdx101D::get_modeB()
wait_char(';', 5, 100, "get mode B", ASC);
gett("get_modeB()");
//replystr = Bmode;
size_t p = replystr.rfind(rsp);
if (p != string::npos) {
@ -870,9 +870,6 @@ int RIG_FTdx101D::get_modeB()
return modeB;
}
//static string Abw = "SH0000;";
//static string Bbw = "SH1013;";
void RIG_FTdx101D::set_bwA(int val)
{
int bw_indx = bw_vals_[val];
@ -908,7 +905,7 @@ int RIG_FTdx101D::get_bwA()
wait_char(';', 7, 100, "get bw A", ASC);
gett("get_bwA()");
//replystr = Abw;
size_t p = replystr.rfind(rsp);
if (p == string::npos) return bwA;
@ -918,7 +915,7 @@ int RIG_FTdx101D::get_bwA()
cmd = rsp = "NA0";
cmd += ';';
wait_char(';', 5, 100, "get narrow", ASC);
//replystr = "NA00;";
p = replystr.rfind(rsp);
if (p == std::string::npos)
return mode_bwA[modeA] = bwA;
@ -976,7 +973,7 @@ int RIG_FTdx101D::get_bwB()
wait_char(';', 7, 100, "get bw B", ASC);
gett("get_bwB()");
//replystr = Bbw;
size_t p = replystr.rfind(rsp);
if (p == string::npos) return bwB;
@ -987,7 +984,7 @@ int RIG_FTdx101D::get_bwB()
cmd = rsp = "NA1";
cmd += ';';
wait_char(';', 5, 100, "get narrow", ASC);
//replystr = "NA11;";
p = replystr.rfind(rsp);
if (p == std::string::npos)
return mode_bwB[modeB] = bwB;
@ -1038,9 +1035,9 @@ int RIG_FTdx101D::get_modetype(int n)
void RIG_FTdx101D::set_if_shift(int val)
{
if (useB)
cmd = "IS00+0000;";
else
cmd = "IS10+0000;";
else
cmd = "IS00+0000;";
if (val != 0) progStatus.shift = true;
else progStatus.shift = false;
if (val < 0) cmd[4] = '-';
@ -1056,9 +1053,9 @@ void RIG_FTdx101D::set_if_shift(int val)
bool RIG_FTdx101D::get_if_shift(int &val)
{
if (useB)
cmd = rsp = "IS10";
cmd = rsp = "IS1";
else
cmd = rsp = "IS00";
cmd = rsp = "IS0";
cmd += ';';
wait_char(';', 10, 100, "get if shift", ASC);
@ -1317,10 +1314,6 @@ void RIG_FTdx101D::set_vox_gain()
void RIG_FTdx101D::set_vox_anti()
{
// cmd = "EX346";
// cmd.append(to_decimal(progStatus.vox_anti, 3)).append(";");
// sendCommand(cmd);
// showresp(WARN, ASC, "SET anti-vox", cmd, replystr);
}
void RIG_FTdx101D::set_vox_hang()
@ -1386,3 +1379,83 @@ void RIG_FTdx101D::set_cw_qsk()
showresp(WARN, ASC, "SET cw qsk", cmd, replystr);
}
//======================================================================
// FTdx101MP
//======================================================================
static const char FTdx101MPname_[] = "FTdx101MP";
RIG_FTdx101MP::RIG_FTdx101MP() {
// base class values
IDstr = "ID";
name_ = FTdx101MPname_;
}
int RIG_FTdx101MP::get_power_out()
{
static pwrpair pwrtbl[] = {
{ 32, 10.0 },
{ 53, 20.0 },
{ 80, 40.0 },
{ 97, 60.0 },
{119, 80.0 },
{137, 100.0 },
{154, 120.0 },
{167, 140.0 },
{177, 160.0 },
{188, 180.0 },
{197, 200.0 },
};
cmd = rsp = "RM5";
sendCommand(cmd.append(";"));
wait_char(';', 7, 100, "get pout", ASC);
gett("get_power_out()");
size_t p = replystr.rfind(rsp);
if (p == string::npos) return 0;
if (p + 6 >= replystr.length()) return 0;
int mtr = atoi(&replystr[p+3]);
size_t i = 0;
for (i = 0; i < sizeof(pwrtbl) / sizeof(pwrpair) - 1; i++)
if (mtr >= pwrtbl[i].mtr && mtr < pwrtbl[i+1].mtr)
break;
if (mtr < 0) mtr = 0;
if (mtr > 197) mtr = 197;
int pwr = (int)ceil(pwrtbl[i].pwr +
(pwrtbl[i+1].pwr - pwrtbl[i].pwr)*(mtr - pwrtbl[i].mtr) / (pwrtbl[i+1].mtr - pwrtbl[i].mtr));
if (pwr > 200) pwr = 200;
return (int)pwr;
}
int RIG_FTdx101MP::get_power_control()
{
cmd = rsp = "PC";
cmd += ';';
wait_char(';', 6, 100, "get power", ASC);
gett("get_power_control()");
size_t p = replystr.rfind(rsp);
if (p == string::npos) return progStatus.power_level;
if (p + 5 >= replystr.length()) return progStatus.power_level;
int mtr = atoi(&replystr[p+2]);
return mtr;
}
void RIG_FTdx101MP::set_power_control(double val)
{
int ival = (int)val;
cmd = "PC000;";
for (int i = 4; i > 1; i--) {
cmd[i] += ival % 10;
ival /= 10;
}
sendCommand(cmd);
showresp(WARN, ASC, "SET power", cmd, replystr);
}

View file

@ -51,6 +51,7 @@ RIG_FT1000 rig_FT1000;
RIG_FT1000MP rig_FT1000MP;
RIG_FT2000 rig_FT2000;
RIG_FTdx101D rig_FTdx101D;
RIG_FTdx101MP rig_FTdx101MP;
RIG_FTdx1200 rig_FTdx1200;
RIG_FTdx3000 rig_FTdx3000;
RIG_FT5000 rig_FT5000;
@ -138,64 +139,65 @@ rigbase *rigs[] = {
&rig_FT1000MP, // 20
&rig_FT2000, // 21
&rig_FTdx101D, // 22
&rig_FTdx1200, // 23
&rig_FTdx3000, // 24
&rig_FT5000, // 25
&rig_FTdx9000, // 26
&rig_IC703, // 27
&rig_IC706MKIIG,// 28
&rig_IC718, // 29
&rig_IC728, // 30
&rig_IC735, // 31
&rig_IC746, // 32
&rig_IC746PRO, // 33
&rig_IC756, // 34
&rig_IC756PRO, // 35
&rig_IC756PRO2, // 36
&rig_IC756PRO3, // 37
&rig_IC7000, // 38
&rig_IC7100, // 39
&rig_IC7200, // 40
&rig_IC7300, // 41
&rig_IC7410, // 42
&rig_IC7600, // 43
&rig_IC7610, // 44
&rig_IC7700, // 45
&rig_IC7800, // 46
&rig_IC7851, // 47
&rig_IC9100, // 48
&rig_IC9700, // 49
&rig_IC910H, // 50
&rig_ICF8101, // 51
&rig_K2, // 52
&rig_K3, // 53
&rig_KX3, // 54
&rig_PCR1000, // 55
&rig_RAY152, // 56
&rig_TS140, // 57
&rig_TS450S, // 58
&rig_TS480HX, // 59
&rig_TS480SAT, // 60
&rig_TS570, // 61
&rig_TS590S, // 62
&rig_TS590SG, // 63
&rig_TS790, // 64
&rig_TS850, // 65
&rig_TS870S, // 66 wbx
&rig_TS890S, // 67
&rig_TS940S, // 68
&rig_TS950, // 69
&rig_TS990, // 70
&rig_TS2000, // 71
&rig_TT516, // 72
&rig_TT535, // 73
&rig_TT538, // 74
&rig_TT550, // 75
&rig_TT563, // 76
&rig_TT566, // 77
&rig_TT588, // 78
&rig_TT599, // 79
&rig_AOR5K, // 80
&rig_FTdx101MP, // 23
&rig_FTdx1200, // 24
&rig_FTdx3000, // 25
&rig_FT5000, // 26
&rig_FTdx9000, // 27
&rig_IC703, // 28
&rig_IC706MKIIG,// 29
&rig_IC718, // 30
&rig_IC728, // 31
&rig_IC735, // 32
&rig_IC746, // 33
&rig_IC746PRO, // 34
&rig_IC756, // 35
&rig_IC756PRO, // 36
&rig_IC756PRO2, // 37
&rig_IC756PRO3, // 38
&rig_IC7000, // 39
&rig_IC7100, // 40
&rig_IC7200, // 41
&rig_IC7300, // 42
&rig_IC7410, // 43
&rig_IC7600, // 44
&rig_IC7610, // 45
&rig_IC7700, // 46
&rig_IC7800, // 47
&rig_IC7851, // 48
&rig_IC9100, // 49
&rig_IC9700, // 50
&rig_IC910H, // 51
&rig_ICF8101, // 52
&rig_K2, // 53
&rig_K3, // 54
&rig_KX3, // 55
&rig_PCR1000, // 56
&rig_RAY152, // 57
&rig_TS140, // 58
&rig_TS450S, // 59
&rig_TS480HX, // 60
&rig_TS480SAT, // 61
&rig_TS570, // 62
&rig_TS590S, // 63
&rig_TS590SG, // 64
&rig_TS790, // 65
&rig_TS850, // 66
&rig_TS870S, // 67 wbx
&rig_TS890S, // 68
&rig_TS940S, // 69
&rig_TS950, // 70
&rig_TS990, // 71
&rig_TS2000, // 72
&rig_TT516, // 73
&rig_TT535, // 74
&rig_TT538, // 75
&rig_TT550, // 76
&rig_TT563, // 77
&rig_TT566, // 78
&rig_TT588, // 79
&rig_TT599, // 80
&rig_AOR5K, // 81
NULL
};