diff --git a/dependencies/control_system/client/main.cpp b/dependencies/control_system/client/main.cpp index b86308a..237ec92 100644 --- a/dependencies/control_system/client/main.cpp +++ b/dependencies/control_system/client/main.cpp @@ -149,8 +149,6 @@ EXTERNC CP_Result CP_GetDemodulatorSettings(TSID sid, demodulator_settings& sett auto resp = clients[sid]->send_get_demodulator_settings(settings_com); if (resp == response_type::error) return ERROR; - std::cout << "settings_com.rollof: " << settings_com.rollof << std::endl; - std::cout << "settings_com.gain: " << settings_com.gain << std::endl; settings = reinterpret_cast(settings_com); return OK; } @@ -169,7 +167,7 @@ EXTERNC CP_Result CP_GetDemodulatorState(TSID sid, demodulator_state &state){ return ERROR; demodulator_state_com state_com; auto resp = clients[sid]->send_get_demodulator_state(state_com); - + if (resp == response_type::error) { std::cout << "error" << std::endl; @@ -184,7 +182,7 @@ EXTERNC CP_Result CP_GetDemodulatorState(TSID sid, demodulator_state &state){ { return ERROR; } - + } EXTERNC CP_Result CP_GetModulatorState(TSID sid, modulator_state &state){ std::shared_lock lock(mtx); @@ -1029,6 +1027,8 @@ EXTERNC CP_Result CP_GetDemodulatorParams(TSID sid, const char *demodulator_para demod_val = getdemodulator_value::type_pack; else if (param_name == "is_pilots") demod_val = getdemodulator_value::is_pilots; + else if (param_name == "is_pilots_insert") + demod_val = getdemodulator_value::is_pilots_insert; else return ERROR; auto resp = clients[sid]->send_get_demodulator_param(demod_val, par_from_server); @@ -1079,6 +1079,8 @@ EXTERNC CP_Result CP_DemodulatorParams(TSID sid, const char *demodulator_param, demod_val = demodulator_value::attitude_signals; else if (param_name == "reset_cinc") demod_val = demodulator_value::is_reset_CinC; + else if (param_name == "is_pilots_insert") + demod_val = demodulator_value::is_pilots_insert; else return ERROR; auto resp = clients[sid]->send_set_demodulator_param(demod_val,value); if (resp == response_type::error) diff --git a/dependencies/control_system/client/system_client.cpp b/dependencies/control_system/client/system_client.cpp index 58e6446..273add4 100644 --- a/dependencies/control_system/client/system_client.cpp +++ b/dependencies/control_system/client/system_client.cpp @@ -715,9 +715,10 @@ response_type system_client::send_get_qos_params(std::string &node, const name_c return result; } -response_type system_client::send_set_qos_settings_json(const std::string &json_string, bool is_enable){ +response_type system_client::send_set_qos_settings_json(const std::string &json_string, bool is_enable) +{ std::scoped_lock lock(cmd_in_progress_mtx); - uint32_t curr_id { ++cmd_id }; + uint32_t curr_id{++cmd_id}; cmd_header cmd_qos_header{curr_id, cmd_type::set_qos_settings_json}; cmd_qos_settings qos_settings{json_string, is_enable}; @@ -730,9 +731,10 @@ response_type system_client::send_set_qos_settings_json(const std::string &json_ return result; } -response_type system_client::send_get_qos_settings_json(std::string &json_string, bool &is_enable){ +response_type system_client::send_get_qos_settings_json(std::string &json_string, bool &is_enable) +{ std::scoped_lock lock(cmd_in_progress_mtx); - uint32_t curr_id { ++cmd_id }; + uint32_t curr_id{++cmd_id}; cmd_header cmd_qos_header{curr_id, cmd_type::get_qos_settings_json}; cmd_qos_settings qos_settings{json_string, is_enable}; @@ -746,6 +748,7 @@ response_type system_client::send_get_qos_settings_json(std::string &json_string json_string = std::any_cast(data_from_serv).json_string; is_enable = std::any_cast(data_from_serv).is_enable; } + return result; } @@ -1035,4 +1038,4 @@ response_type system_client::send_get_network_settings(const network_value & cmd if (data_from_serv.has_value()) value = std::any_cast(data_from_serv); return result; -} +} \ No newline at end of file diff --git a/dependencies/control_system/common/protocol_commands.h b/dependencies/control_system/common/protocol_commands.h index 3d5f248..6f45866 100644 --- a/dependencies/control_system/common/protocol_commands.h +++ b/dependencies/control_system/common/protocol_commands.h @@ -58,6 +58,7 @@ struct modulator_settings_com{ bool tx_is_on; bool is_cinc; uint32_t modcod_tx; + bool qold_seq_is_active; }; struct modulator_state_com{ @@ -83,8 +84,9 @@ struct demodulator_settings_com double central_freq_in_kGz; double rollof; bool is_aru_on; - bool is_rvt_iq; + bool is_rvt_iq; double gain; + bool qold_seq_is_active; }; struct demodulator_state_com{ @@ -110,7 +112,7 @@ struct CinC_state_com{ float ratio_signal_signal; bool carrier_lock; int32_t freq_error_offset; - uint32_t delay_dpdi; + float delay_dpdi; int32_t freq_fine_estimate; uint32_t cnt_bad_lock; }; @@ -118,14 +120,14 @@ struct CinC_state_com{ struct device_state_com{ double adrv_temp; double zynq_temp; - double pl_temp; + double pl_temp; }; enum class voltage_lnb_com{ DISABLE = 0, _13V, _18V, _24V }; enum class voltage_buc_com{ - DISABLE = 0, _24V, _48V + DISABLE = 0, _24V, _48V }; struct buc_lnb_settings_com { @@ -269,7 +271,8 @@ enum class demodulator_value mode_demod = 10, gold_seq = 11, attitude_signals = 12, - is_reset_CinC = 13 + is_reset_CinC = 13, + is_pilots_insert = 14 }; enum class getdemodulator_value { @@ -294,7 +297,8 @@ enum class getdemodulator_value freq_fine_estimate = 18, is_reset_CinC = 19, type_pack = 20, - is_pilots = 21 + is_pilots = 21, + is_pilots_insert = 22 }; enum class gain_value @@ -422,8 +426,8 @@ struct cmd_get_cinc_state template void serialize(Archive & archive) { - archive(cinc_state.carrier_lock, cinc_state.cnt_bad_lock, - cinc_state.delay_dpdi, cinc_state.freq_error_offset, + archive(cinc_state.carrier_lock, cinc_state.cnt_bad_lock, + cinc_state.delay_dpdi, cinc_state.freq_error_offset, cinc_state.freq_fine_estimate, cinc_state.ratio_signal_signal); } @@ -448,7 +452,7 @@ struct cmd_demodulator_settings { archive(demodulator_settings.baudrate,demodulator_settings.central_freq_in_kGz, demodulator_settings.gain, demodulator_settings.is_aru_on, - demodulator_settings.is_rvt_iq, demodulator_settings.rollof); + demodulator_settings.is_rvt_iq, demodulator_settings.rollof, demodulator_settings.qold_seq_is_active); } }; @@ -458,9 +462,9 @@ struct cmd_get_demodulator_state template void serialize(Archive & archive) { - archive(demodulator_state.snr, demodulator_state.modcod, demodulator_state.is_short, demodulator_state.is_pilots, + archive(demodulator_state.snr, demodulator_state.modcod, demodulator_state.is_short, demodulator_state.is_pilots, demodulator_state.rssi, demodulator_state.afc_err, demodulator_state.crs_freq_err, - demodulator_state.sym_err, demodulator_state.fine_freq_err, demodulator_state.if_overload, + demodulator_state.sym_err, demodulator_state.fine_freq_err, demodulator_state.if_overload, demodulator_state.packet_ok_cnt, demodulator_state.packet_bad_cnt, demodulator_state.dummy_cnt, demodulator_state.speed_in_bytes_rx, demodulator_state.speed_in_bytes_rx_iface, demodulator_state.locks.afc_lock, demodulator_state.locks.freq_lock, demodulator_state.locks.pkt_sync, demodulator_state.locks.sym_sync_lock ); @@ -477,7 +481,7 @@ struct cmd_modulator_settings archive(modulator_settings.attenuation,modulator_settings.baudrate, modulator_settings.central_freq_in_kGz, modulator_settings.is_carrier, modulator_settings.is_cinc, modulator_settings.is_save_current_state, modulator_settings.is_test_data, - modulator_settings.rollof, modulator_settings.tx_is_on, modulator_settings.modcod_tx); + modulator_settings.rollof, modulator_settings.tx_is_on, modulator_settings.modcod_tx, modulator_settings.qold_seq_is_active); } }; @@ -487,7 +491,7 @@ struct cmd_get_modulator_state{ template void serialize(Archive & archive) { - archive(modulator_state.snr_remote, modulator_state.modcod, modulator_state.is_short, modulator_state.is_pilots, + archive(modulator_state.snr_remote, modulator_state.modcod, modulator_state.is_short, modulator_state.is_pilots, modulator_state.is_tx_on, modulator_state.speed_in_bytes_tx, modulator_state.speed_in_bytes_tx_iface); } }; @@ -568,6 +572,7 @@ struct cmd_get_acm_param archive(enable, max_attenuation, max_modcod, min_attenuation, min_modcod, snr_treashold, enable_auto_atten, snr_treashold_acm, period_pack); } }; + struct cmd_qos_settings{ std::string json_string; bool is_enable; @@ -577,6 +582,7 @@ struct cmd_qos_settings{ archive(json_string, is_enable); } }; + struct cmd_set_qos_settings { std::string node; @@ -862,4 +868,4 @@ struct response_header { archive(id, cmd, rsp); } -}; +}; \ No newline at end of file diff --git a/dependencies/control_system/example-get-statistics.cpp b/dependencies/control_system/example-get-statistics.cpp deleted file mode 100644 index 4ee4616..0000000 --- a/dependencies/control_system/example-get-statistics.cpp +++ /dev/null @@ -1,76 +0,0 @@ -#include "include/terminal_api/ControlProtoCInterface.h" -#include -int main() -{ - TSID sid{0}; - unsigned int access{0}; - if(CP_Login("admin","pass",&sid,&access) == OK) - { - std::cout << "Succsec" << std::endl; - } - CinC_state state_cinc; - state_cinc.carrier_lock = false; - CP_GetCinCState(sid,state_cinc); - std::cout << state_cinc.carrier_lock << std::endl; - std::cout << state_cinc.freq_error_offset << std::endl; - std::cout << state_cinc.delay_dpdi << std::endl; - std::cout << state_cinc.cnt_bad_lock << std::endl; - modulator_state modulator; - CP_GetModulatorState(sid, modulator); - std::cout << modulator.is_pilots << "\n" - << modulator.modcod << "\n" - << modulator.snr_remote << "\n"; - demodulator_state demodulator; - demodulator.dummy_cnt = 11111; - CP_GetDemodulatorState(sid, demodulator); - std::cout << "end CP_GetDemodulatorState" << std::endl; - std::cout << demodulator.is_short << std::endl; - std::cout << demodulator.modcod << std::endl; - std::cout << "afc_lock: " < #include #include @@ -116,7 +115,7 @@ struct CinC_state{ float ratio_signal_signal; bool carrier_lock; int32_t freq_error_offset; - uint32_t delay_dpdi; + float delay_dpdi; int32_t freq_fine_estimate; uint32_t cnt_bad_lock; }; @@ -140,6 +139,7 @@ struct modulator_settings{ bool tx_is_on; bool is_cinc; uint32_t modcod_tx; + bool qold_seq_is_active; }; EXTERNC CP_Result CP_SetModulatorSettings(TSID sid, modulator_settings& settings); @@ -151,8 +151,9 @@ struct demodulator_settings double central_freq_in_kGz; double rollof; bool is_aru_on; - bool is_rvt_iq; + bool is_rvt_iq; double gain; + bool qold_seq_is_active; }; EXTERNC CP_Result CP_SetDemodulatorSettings(TSID sid, demodulator_settings& settings); @@ -162,7 +163,7 @@ enum class voltage_lnb{ DISABLE = 0, _13V, _18V, _24V }; enum class voltage_buc{ - DISABLE = 0, _24V, _48V + DISABLE = 0, _24V, _48V }; struct buc_lnb_settings { diff --git a/src/terminal_api_driver.cpp b/src/terminal_api_driver.cpp index 4bcde72..9f8bb9f 100644 --- a/src/terminal_api_driver.cpp +++ b/src/terminal_api_driver.cpp @@ -826,6 +826,7 @@ std::string api_driver::ApiDriver::loadSettings() const { result << ",\"general.isTestInputData\":" << boolAsStr(modSettings.is_test_data); result << ",\n\"tx.attenuation\":"; writeDouble(result, modSettings.attenuation); result << ",\"tx.rolloff\":" << static_cast(modSettings.rollof * 100); + result << ",\"tx.goldan\":" << static_cast(modSettings.qold_seq_is_active); result << ",\"tx.cymRate\":" << modSettings.baudrate; result << ",\"tx.centerFreq\":"; writeDouble(result, modSettings.central_freq_in_kGz, 3); result << ",\"dvbs2.frameSizeNormal\":" << boolAsStr(!(modSettings.modcod_tx & 2)); @@ -847,6 +848,7 @@ std::string api_driver::ApiDriver::loadSettings() const { result << ",\"rx.manualGain\":"; writeDouble(result, demodSettings.gain); result << ",\"rx.spectrumInversion\":" << boolAsStr(demodSettings.is_rvt_iq); result << ",\"rx.rolloff\":" << static_cast(demodSettings.rollof * 100); + result << ",\"rx.goldan\":" << static_cast(demodSettings.qold_seq_is_active); result << ",\"rx.cymRate\":" << demodSettings.baudrate; result << ",\"rx.centerFreq\":"; writeDouble(result, demodSettings.central_freq_in_kGz); @@ -943,6 +945,7 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) { mod.is_test_data = pt.get(json_path("general.isTestInputData", '/')); mod.attenuation = pt.get(json_path("tx.attenuation", '/')); mod.rollof = pt.get(json_path("tx.rolloff", '/')) / 100.0; + mod.qold_seq_is_active = pt.get(json_path("tx.goldan", '/')); mod.baudrate = pt.get(json_path("tx.cymRate", '/')); mod.central_freq_in_kGz = pt.get(json_path("tx.centerFreq", '/')); @@ -959,6 +962,7 @@ void api_driver::ApiDriver::setRxTxSettings(boost::property_tree::ptree &pt) { // демодулятор #ifdef MODEM_IS_SCPC tmp = pt.get(json_path("rx.gainMode", '/')); + demod.qold_seq_is_active = pt.get(json_path("rx.goldan", '/')); #else auto tmp = pt.get(json_path("rx.gainMode", '/')); #endif diff --git a/static/main-scpc.html b/static/main-scpc.html index 003854c..b80abdb 100644 --- a/static/main-scpc.html +++ b/static/main-scpc.html @@ -189,6 +189,13 @@ Ослабление, дБ +
@@ -335,6 +342,13 @@ +
@@ -865,6 +879,7 @@ rolloff: Number, cymRate: Number, centerFreq: Number, + goldan: 0, }, dvbs2: { mode: null, // ccm/acm @@ -898,6 +913,7 @@ rolloff: 0, cymRate: 100000, centerFreq: 1200000.0, + goldan: 0, }, cinc: { @@ -1076,6 +1092,7 @@ "general.isTestInputData": this.param.general.isTestInputData, "tx.attenuation": this.param.tx.attenuation, "tx.rolloff": this.param.tx.rolloff, + "tx.goldan": this.param.tx.goldan, "tx.cymRate": this.param.tx.cymRate, "tx.centerFreq": this.param.tx.centerFreq, "dvbs2.isAcm": this.param.dvbs2.mode === 'acm', @@ -1093,6 +1110,7 @@ "rx.manualGain": this.param.rx.manualGain, "rx.spectrumInversion": this.param.rx.spectrumInversion, "rx.rolloff": this.param.rx.rolloff, + "rx.goldan": this.param.rx.goldan, "rx.cymRate": this.param.rx.cymRate, "rx.centerFreq": this.param.rx.centerFreq } @@ -1396,6 +1414,7 @@ this.param.tx.attenuation = vals["settings"]["tx.attenuation"] this.param.tx.rolloff = vals["settings"]["tx.rolloff"] + this.param.tx.goldan = vals["settings"]["tx.goldan"] this.param.tx.cymRate = vals["settings"]["tx.cymRate"] this.param.tx.centerFreq = vals["settings"]["tx.centerFreq"] @@ -1425,6 +1444,7 @@ this.param.rx.manualGain = vals["settings"]["rx.manualGain"] this.param.rx.spectrumInversion = vals["settings"]["rx.spectrumInversion"] this.param.rx.rolloff = vals["settings"]["rx.rolloff"] + this.param.rx.goldan = vals["settings"]["rx.goldan"] this.param.rx.cymRate = vals["settings"]["rx.cymRate"] this.param.rx.centerFreq = vals["settings"]["rx.centerFreq"] },