From eaeb72120aa2ddaa92e3f7604147b264bb1624b9 Mon Sep 17 00:00:00 2001 From: David Freese Date: Tue, 15 Dec 2020 15:39:00 -0600 Subject: [PATCH] Pmax * return maximum available power to rig.get_pwrmax --- src/include/FT450.h | 2 +- src/include/FT450D.h | 2 +- src/include/FT5000.h | 2 +- src/include/FT891.h | 2 +- src/include/FT950.h | 2 +- src/include/FT991.h | 2 +- src/include/FT991A.h | 2 +- src/include/FTdx101D.h | 4 ++-- src/include/FTdx1200.h | 2 +- src/include/FTdx3000.h | 2 +- src/include/FTdx9000.h | 2 +- src/include/IC7800.h | 2 +- src/include/ICF8101.h | 2 +- src/include/TS2000.h | 2 +- src/include/TS480SAT.h | 2 +- src/include/TS990.h | 2 +- src/include/TT550.h | 2 +- src/include/rigbase.h | 10 ++++++++-- src/rigs/IC7100.cxx | 2 +- src/rigs/IC7300.cxx | 2 +- src/rigs/IC7600.cxx | 2 +- src/rigs/IC7610.cxx | 2 +- src/rigs/IC7851.cxx | 2 +- src/rigs/IC9100.cxx | 2 +- src/server/xml_server.cxx | 16 ++++++++++++---- 25 files changed, 44 insertions(+), 30 deletions(-) diff --git a/src/include/FT450.h b/src/include/FT450.h index db2e83d9..df896406 100644 --- a/src/include/FT450.h +++ b/src/include/FT450.h @@ -71,7 +71,7 @@ public: int get_power_out(); int get_power_control(); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } void set_volume_control(int val); int get_volume_control(); void get_vol_min_max_step(int &min, int &max, int &step); diff --git a/src/include/FT450D.h b/src/include/FT450D.h index 03a0a450..0e56ed5a 100644 --- a/src/include/FT450D.h +++ b/src/include/FT450D.h @@ -73,7 +73,7 @@ public: int get_power_out(); int get_power_control(); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } void set_volume_control(int val); int get_volume_control(); void get_vol_min_max_step(int &min, int &max, int &step); diff --git a/src/include/FT5000.h b/src/include/FT5000.h index e6cc60e3..759f6d50 100644 --- a/src/include/FT5000.h +++ b/src/include/FT5000.h @@ -79,7 +79,7 @@ public: void set_volume_control(int val); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 10; max = 200; step = 1; } + min = 10; pmax = max = 200; step = 1; } int get_volume_control(); void set_PTT_control(int val); diff --git a/src/include/FT891.h b/src/include/FT891.h index 65938653..b6121f6a 100644 --- a/src/include/FT891.h +++ b/src/include/FT891.h @@ -86,7 +86,7 @@ public: void set_volume_control(int val); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } int get_volume_control(); void set_PTT_control(int val); diff --git a/src/include/FT950.h b/src/include/FT950.h index 85a0bc66..6f2a66bc 100644 --- a/src/include/FT950.h +++ b/src/include/FT950.h @@ -79,7 +79,7 @@ public: void set_volume_control(int val); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } int get_volume_control(); void set_PTT_control(int val); diff --git a/src/include/FT991.h b/src/include/FT991.h index f25c2e26..9742d2b4 100644 --- a/src/include/FT991.h +++ b/src/include/FT991.h @@ -78,7 +78,7 @@ public: void set_volume_control(int val); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } int get_volume_control(); void set_PTT_control(int val); diff --git a/src/include/FT991A.h b/src/include/FT991A.h index aa0de710..3a59c1b9 100644 --- a/src/include/FT991A.h +++ b/src/include/FT991A.h @@ -78,7 +78,7 @@ public: void set_volume_control(int val); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } int get_volume_control(); void set_PTT_control(int val); diff --git a/src/include/FTdx101D.h b/src/include/FTdx101D.h index aba23f4b..a156f48e 100644 --- a/src/include/FTdx101D.h +++ b/src/include/FTdx101D.h @@ -79,7 +79,7 @@ public: 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; } + min = 5; pmax = max = 100; step = 1; } virtual void set_volume_control(int val); virtual int get_volume_control(); @@ -147,7 +147,7 @@ public: ~RIG_FTdx101MP() {} void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 200; step = 1; } + min = 5; pmax = max = 200; step = 1; } int get_power_out(); int get_power_control(); void set_power_control(double val); diff --git a/src/include/FTdx1200.h b/src/include/FTdx1200.h index 4224115f..244db09f 100644 --- a/src/include/FTdx1200.h +++ b/src/include/FTdx1200.h @@ -78,7 +78,7 @@ public: void set_volume_control(int val); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } int get_volume_control(); void set_PTT_control(int val); diff --git a/src/include/FTdx3000.h b/src/include/FTdx3000.h index 2a259580..fbb2dd07 100644 --- a/src/include/FTdx3000.h +++ b/src/include/FTdx3000.h @@ -77,7 +77,7 @@ public: void set_volume_control(int val); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 200; step = 1; } + min = 5; pmax = max = 200; step = 1; } int get_volume_control(); void set_PTT_control(int val); diff --git a/src/include/FTdx9000.h b/src/include/FTdx9000.h index 9063bf9f..23a67d16 100644 --- a/src/include/FTdx9000.h +++ b/src/include/FTdx9000.h @@ -76,7 +76,7 @@ public: void set_volume_control(int val); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 200; step = 1; } + min = 5; pmax = max = 200; step = 1; } int get_volume_control(); void set_PTT_control(int val); diff --git a/src/include/IC7800.h b/src/include/IC7800.h index 8213ae20..d186eff9 100644 --- a/src/include/IC7800.h +++ b/src/include/IC7800.h @@ -98,7 +98,7 @@ public: const char **bwtable(int m); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 200; step = 1; } + min = 5; pmax = max = 200; step = 1; } void set_PTT_control(int val); int get_PTT(); diff --git a/src/include/ICF8101.h b/src/include/ICF8101.h index 444a7caf..297cde87 100644 --- a/src/include/ICF8101.h +++ b/src/include/ICF8101.h @@ -78,7 +78,7 @@ public: void set_power_control(double val); int get_power_control(); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 0; max = 2; step = 1; } + min = 0; pmax = max = 2; step = 1; } void set_mic_gain(int val); int get_mic_gain(); diff --git a/src/include/TS2000.h b/src/include/TS2000.h index fb33eb0e..46f0076e 100644 --- a/src/include/TS2000.h +++ b/src/include/TS2000.h @@ -77,7 +77,7 @@ enum TS2000MODES { LSB, USB, CW, FM, AM, FSK, CWR, FSKR, DIGI }; // int get_volume_control(); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } // void tune_rig(); void set_attenuator(int val); diff --git a/src/include/TS480SAT.h b/src/include/TS480SAT.h index aad0d006..89ea4a0d 100644 --- a/src/include/TS480SAT.h +++ b/src/include/TS480SAT.h @@ -78,7 +78,7 @@ public: void set_power_control(double val); int get_power_control(); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } void set_if_shift(int val); bool get_if_shift(int &val); diff --git a/src/include/TS990.h b/src/include/TS990.h index e283f805..9979b08c 100644 --- a/src/include/TS990.h +++ b/src/include/TS990.h @@ -138,7 +138,7 @@ public: void set_power_control(double val); int get_power_control(void); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 0; max = 200; step = 1; } + min = 0; pmax = max = 200; step = 1; } int get_power_out(); void set_PTT_control(int val); diff --git a/src/include/TT550.h b/src/include/TT550.h index 6bc547d1..a9ea14e6 100644 --- a/src/include/TT550.h +++ b/src/include/TT550.h @@ -117,7 +117,7 @@ public: int get_power_control(); void set_power_control(double val); void get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 100; step = 1; } + min = 5; pmax = max = 100; step = 1; } void set_volume_control(int val); int get_volume_control(); diff --git a/src/include/rigbase.h b/src/include/rigbase.h index 904c3f67..d10baf94 100644 --- a/src/include/rigbase.h +++ b/src/include/rigbase.h @@ -397,10 +397,11 @@ public: virtual int get_power_out(void) {return -1;} int po_, po_val; +int pmax; virtual int get_power_control(void) {return po_;} virtual void set_power_control(double val) {po_ = val;} virtual void get_pc_min_max_step(double &min, double &max, double &step) { - min = 0; max = 100; step = 1; } + min = 0; pmax = max = 100; step = 1; } int vl_; virtual void set_volume_control(int val) {vl_ = val;} @@ -649,7 +650,12 @@ int vfo_; // KX3 power scale int powerScale; - virtual int power_scale() { return 1; } + virtual int power_scale() { + return 1; + } + virtual int power_max() { + return pmax; + } }; extern rigbase *rigs[]; diff --git a/src/rigs/IC7100.cxx b/src/rigs/IC7100.cxx index 019907fc..7c7b4107 100644 --- a/src/rigs/IC7100.cxx +++ b/src/rigs/IC7100.cxx @@ -1126,7 +1126,7 @@ int RIG_IC7100::get_power_control() void RIG_IC7100::get_pc_min_max_step(double &min, double &max, double &step) { - min = 0; max = 100; step = 1; + min = 0; pmax = max = 100; step = 1; } void RIG_IC7100::set_rf_gain(int val) diff --git a/src/rigs/IC7300.cxx b/src/rigs/IC7300.cxx index 6ba2df66..396f66f2 100644 --- a/src/rigs/IC7300.cxx +++ b/src/rigs/IC7300.cxx @@ -1248,7 +1248,7 @@ int RIG_IC7300::get_power_control() void RIG_IC7300::get_pc_min_max_step(double &min, double &max, double &step) { - min = 0; max = 100; step = 1; + min = 0; pmax = max = 100; step = 1; } int RIG_IC7300::get_smeter() diff --git a/src/rigs/IC7600.cxx b/src/rigs/IC7600.cxx index 355d0426..148f99fb 100644 --- a/src/rigs/IC7600.cxx +++ b/src/rigs/IC7600.cxx @@ -873,7 +873,7 @@ int RIG_IC7600::get_power_control() void RIG_IC7600::get_pc_min_max_step(double &min, double &max, double &step) { - min = 2; max = 100; step = 1; + min = 2; pmax = max = 100; step = 1; } int RIG_IC7600::get_smeter() diff --git a/src/rigs/IC7610.cxx b/src/rigs/IC7610.cxx index 3980e819..24186fa9 100644 --- a/src/rigs/IC7610.cxx +++ b/src/rigs/IC7610.cxx @@ -1281,7 +1281,7 @@ int RIG_IC7610::get_power_control() void RIG_IC7610::get_pc_min_max_step(double &min, double &max, double &step) { - min = 2; max = 100; step = 1; + min = 2; pmax = max = 100; step = 1; } int RIG_IC7610::get_smeter() diff --git a/src/rigs/IC7851.cxx b/src/rigs/IC7851.cxx index 252357fa..f0c37bc3 100644 --- a/src/rigs/IC7851.cxx +++ b/src/rigs/IC7851.cxx @@ -822,7 +822,7 @@ int RIG_IC7851::get_PTT() void RIG_IC7851::get_pc_min_max_step(double &min, double &max, double &step) { - min = 5; max = 200; step = 1; + min = 5; pmax = max = 200; step = 1; } // Volume control val 0 ... 100 diff --git a/src/rigs/IC9100.cxx b/src/rigs/IC9100.cxx index 01f29c91..a0e7ae88 100644 --- a/src/rigs/IC9100.cxx +++ b/src/rigs/IC9100.cxx @@ -935,7 +935,7 @@ int RIG_IC9100::get_power_control() void RIG_IC9100::get_pc_min_max_step(double &min, double &max, double &step) { - min = 0; max = 100; step = 1; + min = 0; pmax = max = 100; step = 1; } void RIG_IC9100::set_rf_gain(int val) diff --git a/src/server/xml_server.cxx b/src/server/xml_server.cxx index 350769b4..6ad4a157 100644 --- a/src/server/xml_server.cxx +++ b/src/server/xml_server.cxx @@ -1066,13 +1066,20 @@ public: rig_get_pwrmeter_scale(XmlRpcServer* s) : XmlRpcServerMethod("rig.get_pwrmeter_scale", s) {} void execute(XmlRpcValue& params, XmlRpcValue& result) { - if (!xcvr_online || !selrig->has_power_out) - result = (int)(0); - else - result = (int)(selrig->power_scale()); + result = (int)(selrig->power_scale()); } } rig_get_pwrmeter_scale(&rig_server); +class rig_get_maxpwr : public XmlRpcServerMethod { +public: + rig_get_maxpwr(XmlRpcServer* s) : XmlRpcServerMethod("rig.get_maxpwr", s) {} + + void execute(XmlRpcValue& params, XmlRpcValue& result) { + result = (int)(selrig->power_max()); + } +} rig_get_maxpwr(&rig_server); + + class rig_get_pwrmeter : public XmlRpcServerMethod { public: rig_get_pwrmeter(XmlRpcServer* s) : XmlRpcServerMethod("rig.get_pwrmeter", s) {} @@ -2002,6 +2009,7 @@ struct MLIST { { "rig.get_power", "s:n", "return power level control value" }, { "rig.get_pwrmeter", "s:n", "return PWR out" }, { "rig.get_pwrmeter_scale", "s:n", "return scale for power meter" }, + { "rig.get_pwrmax", "s:n", "return maximum power available" }, { "rig.get_swrmeter", "s:n", "return SWR out" }, { "rig.get_smeter", "s:n", "return Smeter" }, { "rig.get_split", "s:n", "return split state" },