672 lines
12 KiB
C++
672 lines
12 KiB
C++
#pragma once
|
|
#include <cereal/archives/binary.hpp>
|
|
#include <cereal/types/vector.hpp>
|
|
#include <cereal/types/string.hpp>
|
|
|
|
namespace fm
|
|
{
|
|
enum class side_type
|
|
{
|
|
local = 0,
|
|
tftp = 1,
|
|
config = 2
|
|
};
|
|
|
|
struct side_description
|
|
{
|
|
side_type s_type;
|
|
std::string filepath;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(s_type, filepath);
|
|
}
|
|
};
|
|
}
|
|
|
|
enum class cmd_dma_debugg
|
|
{
|
|
start = 0,
|
|
stop = 1,
|
|
reset = 2,
|
|
reinit = 3,
|
|
modcod = 4,
|
|
log_bool = 5,
|
|
data_mode = 6,
|
|
default_params = 7,
|
|
buc_voltage = 8,
|
|
lnb_voltage = 9,
|
|
_10mhz_tx = 10,
|
|
_10mhz_rx = 11,
|
|
powerdown_plata = 12,
|
|
_10MHz_out = 13,
|
|
current_state_tx = 14,
|
|
current_state_oib = 15,
|
|
save_config = 16,
|
|
begin_save_config = 17
|
|
};
|
|
|
|
enum class name_classes_qos
|
|
{
|
|
realtime1 = 0,
|
|
realtime2,
|
|
realtime3,
|
|
critical1,
|
|
critical2,
|
|
critical3,
|
|
cir,
|
|
pir,
|
|
wcr1,
|
|
wcr2,
|
|
wcr3,
|
|
enable,
|
|
ful_node
|
|
};
|
|
|
|
enum class cmd_get_dma_debugg_enum
|
|
{
|
|
speed_tx = 0,
|
|
speed_rx = 1,
|
|
modcod = 2,
|
|
drop_bad_rx = 3,
|
|
drop_full_rx = 4,
|
|
packet_ok_rx = 5,
|
|
packet_little_tx = 6,
|
|
packet_big_tx = 7,
|
|
bad_modcod_tx = 8,
|
|
bad_length_tx = 9,
|
|
reset_cnt_rx = 10,
|
|
data_mode = 11,
|
|
buc_voltage = 12,
|
|
lnb_voltage = 13,
|
|
_10mhz_tx = 14,
|
|
_10mhz_rx = 15,
|
|
powerdown_plata = 16,
|
|
_10MHz_out = 17,
|
|
current_state_tx = 18,
|
|
real_dpdi_shift = 19,
|
|
freq_error_offset = 20,
|
|
freq_fine_estimate = 21,
|
|
speed_tx_iface = 22,
|
|
speed_rx_iface = 23,
|
|
current_state_oib = 24,
|
|
ratio_signal_signal = 25,
|
|
status_init = 26
|
|
};
|
|
|
|
enum class cmd_10g_config
|
|
{
|
|
udp_payload_lenght = 0,
|
|
local_ip = 1,
|
|
dest_ip = 2,
|
|
gateway_ip = 3,
|
|
subnet_mask = 4,
|
|
udp_source_port = 5,
|
|
udp_dest_port = 6,
|
|
local_mac_31_0 = 7,
|
|
local_mac_32_47 = 8,
|
|
mtx_chan0 = 9,
|
|
mtx_chan1 = 10
|
|
};
|
|
|
|
enum class cmd_level_dem
|
|
{
|
|
//! ОСШ на входе
|
|
snr = 0,
|
|
//! RSSI на входе
|
|
rssi = 1,
|
|
sym_sync_lock = 2,
|
|
freq_search_lock = 3,
|
|
afc_lock = 4,
|
|
pkt_sync = 5,
|
|
phase_inv = 6,
|
|
afc_error = 7,
|
|
sym_error = 8,
|
|
fine_freq_error = 9,
|
|
crs_freq_error = 10,
|
|
gc_gain_aru = 11,
|
|
rollof = 12,
|
|
carrier_lock = 13,
|
|
filt_adapt_lock = 14,
|
|
snr_acm = 15,
|
|
modcod_tx = 16
|
|
};
|
|
|
|
enum class interface_value
|
|
{
|
|
all = 0,
|
|
sat0 = 1,
|
|
gigabit = 2,
|
|
modulator = 3,
|
|
demodulator = 4
|
|
};
|
|
|
|
enum class zynq_value
|
|
{
|
|
ps_volt = 0,
|
|
pl_volt = 1,
|
|
adrv_temp = 2,
|
|
pl_temp = 3,
|
|
ps_temp = 4,
|
|
adrv_temp2 = 5
|
|
};
|
|
|
|
enum class modulator_value
|
|
{
|
|
lo_freaquency = 0,
|
|
baud_rate = 1,
|
|
temp_treshold = 2,
|
|
mod_reset = 3,
|
|
modcod = 4,
|
|
rollof = 5,
|
|
mode_transmitt = 6,
|
|
if_overload = 7,
|
|
gold_seq = 8
|
|
};
|
|
|
|
enum class demodulator_value
|
|
{
|
|
lo_freaquency = 0,
|
|
baud_rate = 1,
|
|
freq_search = 2,
|
|
demod_reset = 3,
|
|
fec_frame_size = 4,
|
|
rvt = 5,
|
|
mode_gain_control = 6,
|
|
sig_min = 7,
|
|
sig_max = 8,
|
|
afc_rst = 9,
|
|
mode_demod = 10,
|
|
gold_seq = 11,
|
|
attitude_signals = 12,
|
|
is_reset_CinC = 13
|
|
};
|
|
enum class getdemodulator_value
|
|
{
|
|
lo_freaquency = 0,
|
|
baud_rate = 1,
|
|
dummy_counter = 2,
|
|
modcod = 3,
|
|
mode_gain_control = 4,
|
|
sig_min = 5,
|
|
sig_max = 6,
|
|
rvt = 7,
|
|
fec_size = 8,
|
|
mode_demod = 9,
|
|
cnt_bad_lock_cinc = 10,
|
|
gold_seq = 11,
|
|
attitude_signals = 12,
|
|
cnt_dem_time_sinc = 13,
|
|
cnt_dem_lock_afc = 14,
|
|
cnt_dem_sync_pack = 15,
|
|
cnt_dem_sinc_frec_corse = 16,
|
|
freq_lock_estimate = 17,
|
|
freq_fine_estimate = 18,
|
|
is_reset_CinC = 19,
|
|
type_pack = 20,
|
|
is_pilots = 21
|
|
};
|
|
|
|
enum class gain_value
|
|
{
|
|
tx1 = 0,
|
|
tx2 = 1,
|
|
rx1 = 2,
|
|
rx2 = 3,
|
|
txpwd = 4,
|
|
rxpwd = 5
|
|
};
|
|
|
|
enum class acm_value
|
|
{
|
|
enable = 0,
|
|
modcod_min = 1,
|
|
modcod_max = 2,
|
|
attenuation_min = 3,
|
|
attenuatin_max = 4,
|
|
required_snr = 5
|
|
};
|
|
|
|
enum class cmd_radio
|
|
{
|
|
tx1 = 0,
|
|
tx2 = 1,
|
|
rx1 = 2,
|
|
rx2 = 3,
|
|
global = 4,
|
|
global2 = 5
|
|
};
|
|
|
|
enum class network_value
|
|
{
|
|
network = 0,
|
|
mode_interface = 1,
|
|
version = 2,
|
|
mask = 3,
|
|
gateway = 4,
|
|
dhcp_on = 5,
|
|
dhcp_range = 6,
|
|
network_data = 7,
|
|
chip_id = 8,
|
|
serial = 9,
|
|
mac_eth0 = 10,
|
|
mac_eth1 = 11,
|
|
name_serv = 12,
|
|
network_debug_send = 13,
|
|
network_port_metric = 14,
|
|
network_port_data = 15,
|
|
periodic_send_metrics = 16,
|
|
if_debug_mode = 17
|
|
};
|
|
|
|
enum class cmd_type
|
|
{
|
|
login = 0,
|
|
exit = 1,
|
|
ping = 2,
|
|
tracert = 3,
|
|
interface = 4,
|
|
copy = 5,
|
|
abort = 6,
|
|
set_demodulator_frequency = 7,
|
|
get_demodulator_frequency = 8,
|
|
set_gain_param = 9,
|
|
get_gain_param = 10,
|
|
radio_on_of = 11,
|
|
modulator_param = 12,
|
|
zynq_param = 13,
|
|
set_demodulator_param = 14,
|
|
get_demodulator_param = 15,
|
|
get_modulator_param = 16,
|
|
set_network = 17,
|
|
get_level_dmd = 18,
|
|
set_10g_config = 19,
|
|
set_dma_debugg = 20,
|
|
get_dma_debugg = 21,
|
|
set_baudrate_rollof_dmd = 22,
|
|
set_acm_params = 23,
|
|
get_acm_params = 24,
|
|
set_params_dpdi = 25,
|
|
get_params_dpdi = 26,
|
|
get_network = 27,
|
|
set_qos_settings = 28,
|
|
get_qos_settings = 29,
|
|
set_lbq_params = 30
|
|
};
|
|
|
|
struct cmd_lbq_params
|
|
{
|
|
uint32_t tick_ms;
|
|
uint32_t bucket_size;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(tick_ms, bucket_size);
|
|
}
|
|
};
|
|
|
|
|
|
struct cmd_get_network
|
|
{
|
|
std::string network;
|
|
network_value net_val;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(net_val, network);
|
|
}
|
|
};
|
|
|
|
struct cmd_set_network
|
|
{
|
|
std::string network;
|
|
network_value net_val;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(net_val, network);
|
|
}
|
|
};
|
|
|
|
struct dpdi_parameters
|
|
{
|
|
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;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(latitude_station_grad, latitude_station_minute,
|
|
longitude_station_grad, longitude_station_minute,
|
|
longitude_sattelite_grad, longitude_sattelite_minute,
|
|
is_delay_window, max_delay, min_delay, freq_offset);
|
|
}
|
|
};
|
|
|
|
|
|
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 cmd_get_acm_param
|
|
{
|
|
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;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(enable, max_attenuation, max_modcod, min_attenuation, min_modcod, snr_treashold, enable_auto_atten, snr_treashold_acm, period_pack);
|
|
}
|
|
};
|
|
|
|
struct cmd_set_qos_settings
|
|
{
|
|
std::string node;
|
|
name_classes_qos class_qos;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(node, class_qos);
|
|
}
|
|
};
|
|
|
|
struct cmd_get_qos_settings
|
|
{
|
|
std::string node;
|
|
name_classes_qos class_qos;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(node, class_qos);
|
|
}
|
|
};
|
|
|
|
struct cmd_set_acm_param
|
|
{
|
|
ACM_parameters_serv acm_params;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(acm_params.enable, acm_params.max_attenuation, acm_params.max_modcod, acm_params.min_attenuation, acm_params.min_modcod, acm_params.snr_treashold, acm_params.enable_auto_atten, acm_params.snr_treashold_acm, acm_params.period_pack);
|
|
}
|
|
};
|
|
|
|
|
|
struct cmd_get_dma_debug
|
|
{
|
|
std::string value;
|
|
cmd_get_dma_debugg_enum dma_debugg;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(dma_debugg, value);
|
|
}
|
|
};
|
|
|
|
struct cmd_set_dma_debug
|
|
{
|
|
std::string value;
|
|
cmd_dma_debugg dma_debugg;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(dma_debugg, value);
|
|
}
|
|
};
|
|
|
|
struct cmd_set_10g_config
|
|
{
|
|
std::string value;
|
|
cmd_10g_config _10g_config;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(_10g_config, value);
|
|
}
|
|
};
|
|
|
|
struct cmd_get_level_dem
|
|
{
|
|
double value;
|
|
cmd_level_dem lvl_dem;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(lvl_dem, value);
|
|
}
|
|
};
|
|
|
|
struct cmd_zynq_param
|
|
{
|
|
zynq_value cmd_zynq;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(cmd_zynq);
|
|
}
|
|
};
|
|
|
|
struct radio_enable
|
|
{
|
|
cmd_radio cmd_radio_;
|
|
bool enbl;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(cmd_radio_, enbl);
|
|
}
|
|
};
|
|
|
|
struct cmd_set_modulator_param
|
|
{
|
|
modulator_value mod_val;
|
|
long long value;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(mod_val,value);
|
|
}
|
|
};
|
|
struct cmd_get_modulator_param
|
|
{
|
|
modulator_value mod_val;
|
|
uint32_t value;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(mod_val,value);
|
|
}
|
|
};
|
|
|
|
struct cmd_set_rollof_and_demod
|
|
{
|
|
double baudrate;
|
|
double rollof;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(baudrate,rollof);
|
|
}
|
|
};
|
|
|
|
|
|
struct cmd_set_demodulator_param
|
|
{
|
|
demodulator_value demod_val;
|
|
uint32_t value;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(demod_val,value);
|
|
}
|
|
};
|
|
|
|
struct cmd_get_demodulator_param
|
|
{
|
|
getdemodulator_value demod_val;
|
|
uint32_t value;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(demod_val,value);
|
|
}
|
|
};
|
|
|
|
struct set_gain_par
|
|
{
|
|
gain_value g_val;
|
|
double _gain;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(g_val,_gain);
|
|
}
|
|
};
|
|
|
|
struct get_gain_par
|
|
{
|
|
gain_value g_val;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(g_val);
|
|
}
|
|
};
|
|
|
|
struct set_dem_freq_cmd
|
|
{
|
|
uint32_t frequency;
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(frequency);
|
|
}
|
|
};
|
|
|
|
enum class response_type
|
|
{
|
|
ok = 0,
|
|
error = 1,
|
|
in_progress = 3,
|
|
abort = 4,
|
|
busy = 5
|
|
};
|
|
|
|
enum class access_rights
|
|
{
|
|
not_allowed = 0,
|
|
user = 1,
|
|
admin = 2
|
|
};
|
|
|
|
struct cmd_header
|
|
{
|
|
uint32_t id;
|
|
cmd_type cmd;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(id, cmd);
|
|
}
|
|
};
|
|
|
|
struct login_cmd
|
|
{
|
|
std::string username;
|
|
std::string pass;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(username, pass);
|
|
}
|
|
};
|
|
|
|
struct ping_cmd
|
|
{
|
|
std::string ip_address;
|
|
size_t count;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(ip_address, count);
|
|
}
|
|
};
|
|
|
|
struct tracert_cmd
|
|
{
|
|
std::string ip_address;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(ip_address);
|
|
}
|
|
};
|
|
|
|
struct interface_cmd
|
|
{
|
|
interface_value val;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(val);
|
|
}
|
|
};
|
|
|
|
struct copy_cmd
|
|
{
|
|
fm::side_description src;
|
|
fm::side_description dst;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(src, dst);
|
|
}
|
|
};
|
|
|
|
struct response_header
|
|
{
|
|
uint32_t id;
|
|
cmd_type cmd;
|
|
response_type rsp;
|
|
|
|
template<class Archive>
|
|
void serialize(Archive & archive)
|
|
{
|
|
archive(id, cmd, rsp);
|
|
}
|
|
};
|