#pragma once #include "common/tracking/tracking.h" #include "dsp/channel_model/channel_model_simple.h" #include "dsp/io/nng_iq_sink.h" #include "dsp/utils/throttle.h" #include "handlers/handler.h" #include "imgui/imgui.h" #include "simulator/instruments/cheap/cheap.h" #include "simulator/instruments/csr/csr.h" #include "simulator/instruments/csr/csr_lrpt.h" #include "simulator/instruments/eagle/eagle.h" #include "simulator/instruments/loris/loris.h" #include "simulator/instruments/loris/loris_proc.h" #include "simulator/instruments/navatt/navatt.h" #include "simulator/modulator/hrpt_modulator.h" #include "simulator/modulator/lrpt_modulator.h" #include "simulator/udp_test/lrpt_udp.h" #include "simulator/worker.h" #include #include #include "dsp/channel_model/model/new/channel_model_leo.h" namespace satdump { namespace ominous { class SimulatorHandler : public handlers::Handler { protected: void drawMenu(); void drawContents(ImVec2 win_size); void drawMenuBar(); public: SimulatorHandler(); ~SimulatorHandler(); private: WorkerCore core; int filter_apid, filter_vcid; double lrpt_signal_level = -60; double lrpt_noise_level = -60; double lrpt_freq_shift = 0; bool lrpt_use_model = false; std::shared_ptr lrpt_model; double hrpt_signal_level = -60; double hrpt_noise_level = -60; double hrpt_freq_shift = 0; bool hrpt_use_model = false; std::shared_ptr hrpt_model; double qth_lat = 0; double qth_lon = 0; double qth_alt = 0; private: // std::shared_ptr navatt_simulator; std::shared_ptr csr_simulator; std::shared_ptr loris_simulator; std::shared_ptr cheap_simulator; std::shared_ptr eagle_simulator; std::shared_ptr csr_lrpt_encoder; std::shared_ptr loris_proc_encoder; std::shared_ptr lrpt_modulator; std::shared_ptr> lrpt_throttle; std::shared_ptr lrpt_channel_model; std::shared_ptr lrpt_nngsink; std::shared_ptr hrpt_modulator; std::shared_ptr> hrpt_throttle; std::shared_ptr hrpt_channel_model; std::shared_ptr hrpt_nngsink; std::shared_ptr lrpt_udp_sink; public: std::string getID() { return "ominous_simulator_handler"; } std::string getName() { return "Ominous Simulator"; } }; } // namespace ominous }; // namespace satdump