#ifndef TERMINAL_API_DRIVER_H #define TERMINAL_API_DRIVER_H #include #include #include #include namespace api_driver { constexpr int CACHE_STATISTICS_UPDATE_MS = 500; constexpr int CACHE_SETTINGS_UPDATE_MS = 5000; constexpr int CACHE_QOS_UPDATE_MS = 5000; class TerminalApiDaemon; /** * Это ApiDriver. Все ответы он будет возвращать в виде json. */ class ApiDriver { public: explicit ApiDriver(); /** * Запуск демона */ void startDaemon(); /** * Запросить общее состояние терминала * @return {"txState":false,"rxState":false,"rx.sym_sync_lock":false,"rx.freq_search_lock":false,"rx.afc_lock":false,"rx.pkt_sync":false} */ std::string loadTerminalState() const; /** * Сбросить статистику пакетов */ void resetPacketStatistics() const; std::string loadSettings() const; std::string loadFirmwareVersion() const; /** * Установить настройки RX/TX, readback можно получить используя loadTerminalState */ void setRxTxSettings(boost::property_tree::ptree &pt); /** * Установить настройки CinC, readback можно получить используя loadTerminalState. */ void setCincSettings(boost::property_tree::ptree &pt); /** * Установить настройки BUC и LNB, readback можно получить используя loadTerminalState. */ void setBucLnbSettings(boost::property_tree::ptree &pt); /** * Установить настройки QoS, readback можно получить используя loadTerminalState. */ void setQosSettings(boost::property_tree::ptree &pt); void setNetworkSettings(boost::property_tree::ptree & pt); void setDebugSendSettings(boost::property_tree::ptree & pt); void resetDefaultSettings(); void executeInApi(const std::function& callback); ~ApiDriver(); private: std::string deviceInitState; std::unique_ptr daemon; }; } #endif //TERMINAL_API_DRIVER_H