#ifndef __CONTROL_PROTO_COMMANDS__ #define __CONTROL_PROTO_COMMANDS__ #include #include #include #ifdef __cplusplus #define EXTERNC extern "C" #else #define EXTERNC extern #endif typedef unsigned int TSID; typedef enum CP_Res { OK = 0, TIMEOUT, ERROR, ABORT, BUSY } CP_Result; typedef void (*CP_cmd_stdout_cb)(const char * str, uint32_t len); /* cb - callback for receive stdout of command */ EXTERNC void CP_SetCmdStdoutCallback(TSID sid, CP_cmd_stdout_cb cb); /* sid -- current session ID */ EXTERNC void CP_CmdAbort(TSID sid); /* host -- host name user -- user name pwd -- password hash sid -- output session ID (used for all requests) access -- output type of privilegies {admin|operator|...etc} */ EXTERNC CP_Result CP_Login(const char * user, const char * pwd, TSID * sid, unsigned int * access); /* sid -- current session ID */ EXTERNC CP_Result CP_Logout(TSID sid); /* sid -- current session ID ip_address -- IP address of the host packet_count -- count of packets to send */ EXTERNC CP_Result CP_GetDmaDebug(TSID sid, const char *command, std::string *val); EXTERNC CP_Result CP_SetDemFreq(TSID sid, uint32_t freq); EXTERNC CP_Result CP_GetDemFreq(TSID sid, uint32_t * freq); EXTERNC CP_Result CP_SetDmaDebug(TSID sid, const char *command, std::string val); EXTERNC CP_Result CP_Set10gConfig(TSID sid, const char *parameter, std::string val); EXTERNC CP_Result CP_SetRollofBaudrate(TSID sid, double rollof,double baudrate); //interfaces EXTERNC CP_Result CP_GetGain(TSID sid, const char *gain_interface, double *gain); //interfaces EXTERNC CP_Result CP_SetGain(TSID sid, const char *gain_interface, double gain); //interfaces EXTERNC CP_Result CP_RadioEnable(TSID sid, const char *radio_interface, bool on_of); //interfaces /* BOD -- baud_rate SPREAD -- koef spread LO -- lo frequency */ EXTERNC CP_Result CP_ModulatorParams(TSID sid, const char *modulator_param, uint32_t value); struct modulator_state{ bool is_tx_on; float snr_remote; uint16_t modcod; bool is_short; bool is_pilots; uint32_t speed_in_bytes_tx; uint32_t speed_in_bytes_tx_iface; }; EXTERNC CP_Result CP_GetModulatorState(TSID sid, modulator_state &state); struct demodulator_locks{ bool pkt_sync; bool afc_lock; bool freq_lock; bool sym_sync_lock; }; struct demodulator_state{ float snr; uint16_t modcod; bool is_short; bool is_pilots; float rssi; double afc_err; double crs_freq_err; double sym_err; double fine_freq_err; double if_overload; uint32_t packet_ok_cnt; uint32_t packet_bad_cnt; uint32_t dummy_cnt; uint32_t speed_in_bytes_rx; uint32_t speed_in_bytes_rx_iface; demodulator_locks locks; }; EXTERNC CP_Result CP_GetDemodulatorState(TSID sid, demodulator_state &state); struct CinC_state{ float ratio_signal_signal; bool carrier_lock; int32_t freq_error_offset; uint32_t delay_dpdi; int32_t freq_fine_estimate; uint32_t cnt_bad_lock; }; EXTERNC CP_Result CP_GetCinCState(TSID sid, CinC_state &state); struct device_state{ double adrv_temp; double zynq_temp; double pl_temp; }; EXTERNC CP_Result CP_GetDeviceState(TSID sid, device_state &state); struct modulator_settings{ uint32_t baudrate; double central_freq_in_kGz; double rollof; double attenuation; bool is_test_data; bool is_save_current_state; bool is_carrier; bool tx_is_on; bool is_cinc; uint32_t modcod_tx; }; EXTERNC CP_Result CP_SetModulatorSettings(TSID sid, modulator_settings& settings); EXTERNC CP_Result CP_GetModulatorSettings(TSID sid, modulator_settings& settings); struct demodulator_settings { uint32_t baudrate; double central_freq_in_kGz; double rollof; bool is_aru_on; bool is_rvt_iq; double gain; }; EXTERNC CP_Result CP_SetDemodulatorSettings(TSID sid, demodulator_settings& settings); EXTERNC CP_Result CP_GetDemodulatorSettings(TSID sid, demodulator_settings& settings); enum class voltage_lnb{ DISABLE = 0, _13V, _18V, _24V }; enum class voltage_buc{ DISABLE = 0, _24V, _48V }; struct buc_lnb_settings { voltage_lnb lnb; bool is_ref_10MHz_lnb = false; voltage_buc buc; bool is_ref_10MHz_buc = false; bool is_ref_10MHz_output = false; bool is_save_current_state = false; }; EXTERNC CP_Result CP_SetBUC_LNB_settings(TSID sid, buc_lnb_settings &settings); EXTERNC CP_Result CP_GetBUC_LNB_settings(TSID sid, buc_lnb_settings &settings); EXTERNC CP_Result CP_SetQoSSettings(TSID sid, const std::string &qos_settings_json, bool is_enable); EXTERNC CP_Result CP_GetQoSSettings(TSID sid, std::string &qos_settings_json, bool &is_enable); EXTERNC CP_Result CP_GetModulatorParams(TSID sid, const char *modulator_param, uint32_t *value); EXTERNC CP_Result CP_GetDemodulatorParams(TSID sid, const char *demodulator_param, uint32_t *value); EXTERNC CP_Result CP_GetLevelDemod(TSID sid, const char * param ,double *value); EXTERNC CP_Result CP_DemodulatorParams(TSID sid, const char *demodulator_param, uint32_t value); EXTERNC CP_Result CP_SetLBQParams(TSID sid, const uint32_t &tick_ms, const uint32_t &bucket_size); EXTERNC CP_Result CP_SetQoSParams(TSID sid, const std::string &type_node, const std::string & node); EXTERNC CP_Result CP_GetQoSParams(TSID sid, const std::string &type_node, std::string * node); struct ACM_parameters_serv_ { double snr_treashold = 0; double snr_treashold_acm = 0.5; uint32_t period_pack = 15; uint8_t max_modcod = 4; uint8_t min_modcod = 4; int max_attenuation = 0; int min_attenuation = 0; bool enable = false; bool enable_auto_atten = false; }; struct DPDI_parmeters { uint8_t latitude_station_grad = 0; uint8_t latitude_station_minute = 0; uint8_t longitude_station_grad = 0; uint8_t longitude_station_minute = 0; uint8_t longitude_sattelite_grad = 0; uint8_t longitude_sattelite_minute = 0; bool is_delay_window = 0; uint32_t max_delay = 1; uint32_t min_delay = 0; uint32_t freq_offset = 0; }; EXTERNC CP_Result CP_SetAcmParams(TSID sid, ACM_parameters_serv_ acm_params); EXTERNC CP_Result CP_GetAcmParams(TSID sid, ACM_parameters_serv_ *acm_params); EXTERNC CP_Result CP_SetDpdiParams(TSID sid, DPDI_parmeters dpdi_params); EXTERNC CP_Result CP_GetDpdiParams(TSID sid, DPDI_parmeters *dpdi_pars_get); /* PSV PLV PST PLT ADRVT */ EXTERNC CP_Result CP_ZynqParams(TSID sid, const char *zynq_param, double *value); EXTERNC CP_Result CP_SetNetwork(TSID sid, const char *param_name, const char *val); EXTERNC CP_Result CP_GetNetwork(TSID sid, const char *param_name, std::string *val); /* ip_address -- new IP address fot the host */ EXTERNC CP_Result CP_Ping(TSID sid, const char * ip_address, int packet_count); /* sid -- current session ID ip_address -- IP address of the host */ EXTERNC CP_Result CP_Traceroute(TSID sid, const char * ip_address); /* sid -- current session ID src -- {"running-config"|"startup-config"|host_address} dst -- {"running-config"|"startup-config"|host_address} NOTE: src and dst both must be different */ EXTERNC CP_Result CP_Copy(TSID sid, const char * src, const char * dst); /* sid -- current session ID interface -- {"all"|"sat0"|"gigabit"|"modulator"|"demodulator"} output data goes to callback */ EXTERNC CP_Result CP_ShowInterface(TSID sid, const char * interface); /* sid -- current session ID out_startup_config -- received information about startup config */ EXTERNC CP_Result CP_ShowStartupConfig(TSID sid, char ** out_startup_config); /* sid -- current session ID interface -- {"all"|"sat0"|"gigabit"|"modulator"|"demodulator"} out_startup_config -- received information about startup config */ EXTERNC CP_Result CP_ShowStartupConfigInterface(TSID sid, const char * interface, char ** out_startup_config); // Demodulator /* sid -- current session ID interface -- {"SAT"|"Ethernet"|"Loopback"} rate -- symbol rate */ EXTERNC CP_Result CP_SetDemodSymrate(TSID sid, const char * interface, uint32_t rate); /* sid -- current session ID interface -- {"SAT"|"Ethernet"|"Loopback"} rate -- frequency value in Hertz */ EXTERNC CP_Result CP_SetDemodFrequency(TSID sid, const char * interface, uint32_t freq); /* sid -- current session ID interface -- {"SAT"|"Ethernet"|"Loopback"} mode -- {"on"|"off"|"auto"} */ EXTERNC CP_Result CP_SetDemodSpectrum(TSID sid, const char * interface, const char * mode); /* sid -- current session ID interface -- {"SAT"|"Ethernet"|"Loopback"} mode -- {"on"|"off"} */ EXTERNC CP_Result CP_SetDemodReference(TSID sid, const char * interface, const char * mode); /* sid -- current session ID interface -- {"SAT"|"Ethernet"|"Loopback"} rate -- frequency value in Hertz */ EXTERNC CP_Result CP_SetDemodSearch(TSID sid, const char * interface, uint32_t freq); // Modulator /* sid -- current session ID interface -- {"SAT"|"Ethernet"|"Loopback"} rate -- symbol rate */ EXTERNC CP_Result CP_SetModSymrate(TSID sid, const char * interface, uint32_t rate); /* sid -- current session ID interface -- {"SAT"|"Ethernet"|"Loopback"} rate -- frequency value in Hertz */ EXTERNC CP_Result CP_SetModSymFrequency(TSID sid, const char * interface, uint32_t freq); /* sid -- current session ID interface -- {"SAT"|"Ethernet"|"Loopback"} mode -- {"on"|"off"} */ EXTERNC CP_Result CP_SetModReference(TSID sid, const char * interface, const char * mode); #endif