diff --git a/fcdlib/fcdproconst.cpp b/fcdlib/fcdproconst.cpp new file mode 100644 index 000000000..568ffe4f5 --- /dev/null +++ b/fcdlib/fcdproconst.cpp @@ -0,0 +1,288 @@ +/* + * fcdproconst.cpp + * + * Created on: Sep 7, 2015 + * Author: f4exb + */ + +#include "fcdproconst.h" + +const fcdpro_lna_gain FCDProConstants::lna_gains[] = { + {FCDPRO_TLG_N5_0DB, "-5dB"}, + {FCDPRO_TLG_N2_5DB, "-2.5dB"}, + {FCDPRO_TLG_P0_0DB, "0dB"}, + {FCDPRO_TLG_P2_5DB, "2.5dB"}, + {FCDPRO_TLG_P5_0DB, "5dB"}, + {FCDPRO_TLG_P7_5DB, "7.5dB"}, + {FCDPRO_TLG_P10_0DB, "10dB"}, + {FCDPRO_TLG_P12_5DB, "12.5dB"}, + {FCDPRO_TLG_P15_0DB, "15dB"}, + {FCDPRO_TLG_P17_5DB, "17.5dB"}, + {FCDPRO_TLG_P20_0DB, "20dB"}, + {FCDPRO_TLG_P25_0DB, "25dB"}, + {FCDPRO_TLG_P30_0DB, "30dB"} +}; + +int FCDProConstants::fcdpro_lna_gain_nb_values() +{ + return sizeof(lna_gains) / sizeof(fcdpro_lna_gain); +} + +const fcdpro_lna_enhance FCDProConstants::lna_enhances[] = { + {FCDPRO_TLE_OFF, "Off"}, + {FCDPRO_TLE_0, "1"}, + {FCDPRO_TLE_1, "1"}, + {FCDPRO_TLE_2, "2"}, + {FCDPRO_TLE_3, "3"} +}; + +int FCDProConstants::fcdpro_lna_enhance_nb_values() +{ + return sizeof(lna_enhances) / sizeof(fcdpro_lna_enhance); +} + +const fcdpro_band FCDProConstants::bands[] = { + {FCDPRO_TB_VHF2, "VHF2"}, + {FCDPRO_TB_VHF3, "VHF3"}, + {FCDPRO_TB_UHF, "UHF"}, + {FCDPRO_TB_LBAND, "L"} +}; + +int FCDProConstants::fcdpro_band_nb_values() +{ + return sizeof(bands) / sizeof(fcdpro_band); +} + +const fcdpro_rf_filter FCDProConstants::rf_filters[] = { + // Band 0, VHF II + {FCDPRO_TRF_LPF268MHZ, "LP268M"}, + {FCDPRO_TRF_LPF299MHZ, "LP299M"}, + // Band 1, VHF III + {FCDPRO_TRF_LPF509MHZ, "LP509M"}, + {FCDPRO_TRF_LPF656MHZ, "LP656M"}, + // Band 2, UHF + {FCDPRO_TRF_BPF360MHZ, "BP360M"}, + {FCDPRO_TRF_BPF380MHZ, "BP390M"}, + {FCDPRO_TRF_BPF405MHZ, "BP405M"}, + {FCDPRO_TRF_BPF425MHZ, "BP425M"}, + {FCDPRO_TRF_BPF450MHZ, "BP450M"}, + {FCDPRO_TRF_BPF475MHZ, "BP475M"}, + {FCDPRO_TRF_BPF505MHZ, "BP505M"}, + {FCDPRO_TRF_BPF540MHZ, "BP540M"}, + {FCDPRO_TRF_BPF575MHZ, "BP575M"}, + {FCDPRO_TRF_BPF615MHZ, "BP615M"}, + {FCDPRO_TRF_BPF670MHZ, "BP670M"}, + {FCDPRO_TRF_BPF720MHZ, "BP720M"}, + {FCDPRO_TRF_BPF760MHZ, "BP760M"}, + {FCDPRO_TRF_BPF840MHZ, "BP840M"}, + {FCDPRO_TRF_BPF890MHZ, "BP890M"}, + {FCDPRO_TRF_BPF970MHZ, "BP970M"}, + // Band 2, L band + {FCDPRO_TRF_BPF1300MHZ, "BP1.3G"}, + {FCDPRO_TRF_BPF1320MHZ, "BP1.32G"}, + {FCDPRO_TRF_BPF1360MHZ, "BP1.36G"}, + {FCDPRO_TRF_BPF1410MHZ, "BP1.41G"}, + {FCDPRO_TRF_BPF1445MHZ, "BP1445M"}, + {FCDPRO_TRF_BPF1460MHZ, "BP1.46G"}, + {FCDPRO_TRF_BPF1490MHZ, "BP1.49G"}, + {FCDPRO_TRF_BPF1530MHZ, "BP1.53G"}, + {FCDPRO_TRF_BPF1560MHZ, "BP1.56G"}, + {FCDPRO_TRF_BPF1590MHZ, "BP1.59G"}, + {FCDPRO_TRF_BPF1640MHZ, "BP1.64G"}, + {FCDPRO_TRF_BPF1660MHZ, "BP1.66G"}, + {FCDPRO_TRF_BPF1680MHZ, "BP1.68G"}, + {FCDPRO_TRF_BPF1700MHZ, "BP1.7G"}, + {FCDPRO_TRF_BPF1720MHZ, "BP1.72G"}, + {FCDPRO_TRF_BPF1750MHZ, "BP1.75G"} +}; + +int FCDProConstants::fcdpro_rf_filter_nb_values() +{ + return sizeof(rf_filters) / sizeof(fcdpro_rf_filter); +} + +const fcdpro_mixer_gain FCDProConstants::mixer_gains[] = { + {FCDPRO_TMG_P4_0DB, "0dB"}, + {FCDPRO_TMG_P12_0DB, "12dB"} +}; + +int FCDProConstants::fcdpro_mixer_gain_nb_values() +{ + return sizeof(mixer_gains) / sizeof(fcdpro_mixer_gain); +} + +const fcdpro_bias_current FCDProConstants::bias_currents[] = { + {FCDPRO_TBC_LBAND, "L"}, + {FCDPRO_TBC_1, "1"}, + {FCDPRO_TBC_2, "2"}, + {FCDPRO_TBC_VUBAND, "VU"} +}; + +int FCDProConstants::fcdpro_bias_current_nb_values() +{ + return sizeof(bias_currents) / sizeof(fcdpro_bias_current); +} + +const fcdpro_mixer_filter FCDProConstants::mixer_filters[] = { + {FCDPRO_TMF_27_0MHZ, "27M"}, + {FCDPRO_TMF_4_6MHZ, "4.6M"}, + {FCDPRO_TMF_4_2MHZ, "4.2M"}, + {FCDPRO_TMF_3_8MHZ, "3.8M"}, + {FCDPRO_TMF_3_4MHZ, "3.4M"}, + {FCDPRO_TMF_3_0MHZ, "3.0M"}, + {FCDPRO_TMF_2_7MHZ, "2.7M"}, + {FCDPRO_TMF_2_3MHZ, "2.3M"}, + {FCDPRO_TMF_1_9MHZ, "1.9M"} +}; + +int FCDProConstants::fcdpro_mixer_filter_nb_values() +{ + return sizeof(mixer_filters) / sizeof(fcdpro_mixer_filter); +} + +const fcdpro_if_gain1 FCDProConstants::if_gains1[] = { + {FCDPRO_TIG1_N3_0DB, "3dB"}, + {FCDPRO_TIG1_P6_0DB, "6dB"} +}; + +int FCDProConstants::fcdpro_if_gain1_nb_values() +{ + return sizeof(if_gains1) / sizeof(fcdpro_if_gain1); +} + +const fcdpro_if_gain_mode FCDProConstants::if_gain_modes[] = { + {FCDPRO_TIGM_LINEARITY, "Lin"}, + {FCDPRO_TIGM_SENSITIVITY, "Sens"} +}; + +int FCDProConstants::fcdpro_if_gain_mode_nb_values() +{ + return sizeof(if_gain_modes) / sizeof(fcdpro_if_gain_mode); +} + +const fcdpro_if_rc_filter FCDProConstants::if_rc_filters[] = { + {FCDPRO_TIRF_21_4MHZ, "21.4M"}, + {FCDPRO_TIRF_21_0MHZ, "21.0M"}, + {FCDPRO_TIRF_17_6MHZ, "17.6M"}, + {FCDPRO_TIRF_14_7MHZ, "14.7M"}, + {FCDPRO_TIRF_12_4MHZ, "12.4M"}, + {FCDPRO_TIRF_10_6MHZ, "18.6M"}, + {FCDPRO_TIRF_9_0MHZ, "9.0M"}, + {FCDPRO_TIRF_7_7MHZ, "7.7M"}, + {FCDPRO_TIRF_6_4MHZ, "6.4M"}, + {FCDPRO_TIRF_5_3MHZ, "5.3M"}, + {FCDPRO_TIRF_4_4MHZ, "4.4M"}, + {FCDPRO_TIRF_3_4MHZ, "3.4M"}, + {FCDPRO_TIRF_2_6MHZ, "2.6M"}, + {FCDPRO_TIRF_1_8MHZ, "1.8M"}, + {FCDPRO_TIRF_1_2MHZ, "1.2M"}, + {FCDPRO_TIRF_1_0MHZ, "1.0M"} +}; + +int FCDProConstants::fcdpro_if_rc_filter_nb_values() +{ + return sizeof(if_rc_filters) / sizeof(fcdpro_if_rc_filter); +} + +const fcdpro_if_gain2 FCDProConstants::if_gains2[] = { + {FCDPRO_TIG2_P0_0DB, "0dB"}, + {FCDPRO_TIG2_P3_0DB, "3dB"}, + {FCDPRO_TIG2_P6_0DB, "6dB"}, + {FCDPRO_TIG2_P9_0DB, "9dB"} +}; + +int FCDProConstants::fcdpro_if_gain2_nb_values() +{ + return sizeof(if_gains2) / sizeof(fcdpro_if_gain2); +} + +const fcdpro_if_gain3 FCDProConstants::if_gains3[] = { + {FCDPRO_TIG3_P0_0DB, "0dB"}, + {FCDPRO_TIG3_P3_0DB, "3dB"}, + {FCDPRO_TIG3_P6_0DB, "6dB"}, + {FCDPRO_TIG3_P9_0DB, "9dB"} +}; + +int FCDProConstants::fcdpro_if_gain3_nb_values() +{ + return sizeof(if_gains3) / sizeof(fcdpro_if_gain3); +} + +const fcdpro_if_gain4 FCDProConstants::if_gains4[] = { + {FCDPRO_TIG4_P0_0DB, "0dB"}, + {FCDPRO_TIG4_P1_0DB, "1dB"}, + {FCDPRO_TIG4_P2_0DB, "2dB"}, +}; + +int FCDProConstants::fcdpro_if_gain4_nb_values() +{ + return sizeof(if_gains4) / sizeof(fcdpro_if_gain4); +} + +const fcdpro_if_filter FCDProConstants::if_filters[] = { + {FCDPRO_TIF_5_50MHZ, "5.5M"}, + {FCDPRO_TIF_5_30MHZ, "5.3M"}, + {FCDPRO_TIF_5_00MHZ, "5.0M"}, + {FCDPRO_TIF_4_80MHZ, "4.8M"}, + {FCDPRO_TIF_4_60MHZ, "4.6M"}, + {FCDPRO_TIF_4_40MHZ, "4.4M"}, + {FCDPRO_TIF_4_30MHZ, "4.3M"}, + {FCDPRO_TIF_4_10MHZ, "4.1M"}, + {FCDPRO_TIF_3_90MHZ, "3.9M"}, + {FCDPRO_TIF_3_80MHZ, "3.8M"}, + {FCDPRO_TIF_3_70MHZ, "3.7M"}, + {FCDPRO_TIF_3_60MHZ, "3.6M"}, + {FCDPRO_TIF_3_40MHZ, "3.4M"}, + {FCDPRO_TIF_3_30MHZ, "3.3M"}, + {FCDPRO_TIF_3_20MHZ, "3.2M"}, + {FCDPRO_TIF_3_10MHZ, "3.1M"}, + {FCDPRO_TIF_3_00MHZ, "3.0M"}, + {FCDPRO_TIF_2_95MHZ, "2.95M"}, + {FCDPRO_TIF_2_90MHZ, "2.9M"}, + {FCDPRO_TIF_2_80MHZ, "2.8M"}, + {FCDPRO_TIF_2_75MHZ, "2.75M"}, + {FCDPRO_TIF_2_70MHZ, "2.7M"}, + {FCDPRO_TIF_2_60MHZ, "2.6M"}, + {FCDPRO_TIF_2_55MHZ, "2.55M"}, + {FCDPRO_TIF_2_50MHZ, "2.5M"}, + {FCDPRO_TIF_2_45MHZ, "2.45M"}, + {FCDPRO_TIF_2_40MHZ, "2.4M"}, + {FCDPRO_TIF_2_30MHZ, "2.3M"}, + {FCDPRO_TIF_2_28MHZ, "2.28M"}, + {FCDPRO_TIF_2_24MHZ, "2.24M"}, + {FCDPRO_TIF_2_20MHZ, "2.2M"}, + {FCDPRO_TIF_2_15MHZ, "2.15M"} +}; + +int FCDProConstants::fcdpro_if_filter_nb_values() +{ + return sizeof(if_filters) / sizeof(fcdpro_if_filter); +} + +const fcdpro_if_gain5 FCDProConstants::if_gains5[] = { + {FCDPRO_TIG5_P3_0DB, "3dB"}, + {FCDPRO_TIG5_P6_0DB, "6dB"}, + {FCDPRO_TIG5_P9_0DB, "9dB"}, + {FCDPRO_TIG5_P12_0DB, "12dB"}, + {FCDPRO_TIG5_P15_0DB, "15dB"} +}; + +int FCDProConstants::fcdpro_if_gain5_nb_values() +{ + return sizeof(if_gains5) / sizeof(fcdpro_if_gain5); +} + +const fcdpro_if_gain6 FCDProConstants::if_gains6[] = { + {FCDPRO_TIG6_P3_0DB, "3dB"}, + {FCDPRO_TIG6_P6_0DB, "6dB"}, + {FCDPRO_TIG6_P9_0DB, "9dB"}, + {FCDPRO_TIG6_P12_0DB, "12dB"}, + {FCDPRO_TIG6_P15_0DB, "15dB"} +}; + +int FCDProConstants::fcdpro_if_gain6_nb_values() +{ + return sizeof(if_gains6) / sizeof(fcdpro_if_gain6); +} + + diff --git a/fcdlib/fcdproconst.h b/fcdlib/fcdproconst.h new file mode 100644 index 000000000..b1bd40e25 --- /dev/null +++ b/fcdlib/fcdproconst.h @@ -0,0 +1,361 @@ +/* + * fcdproconst.h + * + * Created on: Sep 7, 2015 + * Author: f4exb + */ + +#ifndef FCDLIB_FCDPROCONST_H_ +#define FCDLIB_FCDPROCONST_H_ + +#include + +typedef enum +{ + FCDPRO_TLG_N5_0DB=0, + FCDPRO_TLG_N2_5DB=1, + FCDPRO_TLG_P0_0DB=4, + FCDPRO_TLG_P2_5DB=5, + FCDPRO_TLG_P5_0DB=6, + FCDPRO_TLG_P7_5DB=7, + FCDPRO_TLG_P10_0DB=8, + FCDPRO_TLG_P12_5DB=9, + FCDPRO_TLG_P15_0DB=10, + FCDPRO_TLG_P17_5DB=11, + FCDPRO_TLG_P20_0DB=12, + FCDPRO_TLG_P25_0DB=13, + FCDPRO_TLG_P30_0DB=14 +} fcdpro_lna_gain_value; + +typedef struct +{ + fcdpro_lna_gain_value value; + std::string label; +} fcdpro_lna_gain; + +typedef enum +{ + FCDPRO_TLE_OFF=0, + FCDPRO_TLE_0=1, + FCDPRO_TLE_1=3, + FCDPRO_TLE_2=5, + FCDPRO_TLE_3=7 +} fcdpro_lna_enhance_value; + +typedef struct +{ + fcdpro_lna_enhance_value value; + std::string label; +} fcdpro_lna_enhance; + +typedef enum +{ + FCDPRO_TB_VHF2, + FCDPRO_TB_VHF3, + FCDPRO_TB_UHF, + FCDPRO_TB_LBAND +} fcdpro_band_value; + +typedef struct +{ + fcdpro_band_value value; + std::string label; +} fcdpro_band; + +typedef enum +{ + // Band 0, VHF II + FCDPRO_TRF_LPF268MHZ=0, + FCDPRO_TRF_LPF299MHZ=8, + // Band 1, VHF III + FCDPRO_TRF_LPF509MHZ=0, + FCDPRO_TRF_LPF656MHZ=8, + // Band 2, UHF + FCDPRO_TRF_BPF360MHZ=0, + FCDPRO_TRF_BPF380MHZ=1, + FCDPRO_TRF_BPF405MHZ=2, + FCDPRO_TRF_BPF425MHZ=3, + FCDPRO_TRF_BPF450MHZ=4, + FCDPRO_TRF_BPF475MHZ=5, + FCDPRO_TRF_BPF505MHZ=6, + FCDPRO_TRF_BPF540MHZ=7, + FCDPRO_TRF_BPF575MHZ=8, + FCDPRO_TRF_BPF615MHZ=9, + FCDPRO_TRF_BPF670MHZ=10, + FCDPRO_TRF_BPF720MHZ=11, + FCDPRO_TRF_BPF760MHZ=12, + FCDPRO_TRF_BPF840MHZ=13, + FCDPRO_TRF_BPF890MHZ=14, + FCDPRO_TRF_BPF970MHZ=15, + // Band 2, L band + FCDPRO_TRF_BPF1300MHZ=0, + FCDPRO_TRF_BPF1320MHZ=1, + FCDPRO_TRF_BPF1360MHZ=2, + FCDPRO_TRF_BPF1410MHZ=3, + FCDPRO_TRF_BPF1445MHZ=4, + FCDPRO_TRF_BPF1460MHZ=5, + FCDPRO_TRF_BPF1490MHZ=6, + FCDPRO_TRF_BPF1530MHZ=7, + FCDPRO_TRF_BPF1560MHZ=8, + FCDPRO_TRF_BPF1590MHZ=9, + FCDPRO_TRF_BPF1640MHZ=10, + FCDPRO_TRF_BPF1660MHZ=11, + FCDPRO_TRF_BPF1680MHZ=12, + FCDPRO_TRF_BPF1700MHZ=13, + FCDPRO_TRF_BPF1720MHZ=14, + FCDPRO_TRF_BPF1750MHZ=15 +} fcdpro_rf_filter_value; + +typedef struct +{ + fcdpro_rf_filter_value value; + std::string label; +} fcdpro_rf_filter; + +typedef enum +{ + FCDPRO_TMG_P4_0DB=0, + FCDPRO_TMG_P12_0DB=1 +} fcdpro_mixer_gain_value; + +typedef struct +{ + fcdpro_mixer_gain_value value; + std::string label; +} fcdpro_mixer_gain; + +typedef enum +{ + FCDPRO_TBC_LBAND=0, + FCDPRO_TBC_1=1, + FCDPRO_TBC_2=2, + FCDPRO_TBC_VUBAND=3 +} fcdpro_bias_current_value; + +typedef struct +{ + fcdpro_bias_current_value value; + std::string label; +} fcdpro_bias_current; + +typedef enum +{ + FCDPRO_TMF_27_0MHZ=0, + FCDPRO_TMF_4_6MHZ=8, + FCDPRO_TMF_4_2MHZ=9, + FCDPRO_TMF_3_8MHZ=10, + FCDPRO_TMF_3_4MHZ=11, + FCDPRO_TMF_3_0MHZ=12, + FCDPRO_TMF_2_7MHZ=13, + FCDPRO_TMF_2_3MHZ=14, + FCDPRO_TMF_1_9MHZ=15 +} fcdpro_mixer_filter_value; + +typedef struct +{ + fcdpro_mixer_filter_value value; + std::string label; +} fcdpro_mixer_filter; + +typedef enum +{ + FCDPRO_TIG1_N3_0DB=0, + FCDPRO_TIG1_P6_0DB=1 +} fcdpro_if_gain1_value; + +typedef struct +{ + fcdpro_if_gain1_value value; + std::string label; +} fcdpro_if_gain1; + +typedef enum +{ + FCDPRO_TIGM_LINEARITY=0, + FCDPRO_TIGM_SENSITIVITY=1 +} fcdpro_if_gain_mode_value; + +typedef struct +{ + fcdpro_if_gain_mode_value value; + std::string label; +} fcdpro_if_gain_mode; + +typedef enum +{ + FCDPRO_TIRF_21_4MHZ=0, + FCDPRO_TIRF_21_0MHZ=1, + FCDPRO_TIRF_17_6MHZ=2, + FCDPRO_TIRF_14_7MHZ=3, + FCDPRO_TIRF_12_4MHZ=4, + FCDPRO_TIRF_10_6MHZ=5, + FCDPRO_TIRF_9_0MHZ=6, + FCDPRO_TIRF_7_7MHZ=7, + FCDPRO_TIRF_6_4MHZ=8, + FCDPRO_TIRF_5_3MHZ=9, + FCDPRO_TIRF_4_4MHZ=10, + FCDPRO_TIRF_3_4MHZ=11, + FCDPRO_TIRF_2_6MHZ=12, + FCDPRO_TIRF_1_8MHZ=13, + FCDPRO_TIRF_1_2MHZ=14, + FCDPRO_TIRF_1_0MHZ=15 +} fcdpro_if_rc_filter_value; + +typedef struct +{ + fcdpro_if_rc_filter_value value; + std::string label; +} fcdpro_if_rc_filter; + +typedef enum +{ + FCDPRO_TIG2_P0_0DB=0, + FCDPRO_TIG2_P3_0DB=1, + FCDPRO_TIG2_P6_0DB=2, + FCDPRO_TIG2_P9_0DB=3 +} fcdpro_if_gain2_value; + +typedef struct +{ + fcdpro_if_gain2_value value; + std::string label; +} fcdpro_if_gain2; + +typedef enum +{ + FCDPRO_TIG3_P0_0DB=0, + FCDPRO_TIG3_P3_0DB=1, + FCDPRO_TIG3_P6_0DB=2, + FCDPRO_TIG3_P9_0DB=3 +} fcdpro_if_gain3_value; + +typedef struct +{ + fcdpro_if_gain3_value value; + std::string label; +} fcdpro_if_gain3; + +typedef enum +{ + FCDPRO_TIG4_P0_0DB=0, + FCDPRO_TIG4_P1_0DB=1, + FCDPRO_TIG4_P2_0DB=2 +} fcdpro_if_gain4_value; + +typedef struct +{ + fcdpro_if_gain4_value value; + std::string label; +} fcdpro_if_gain4; + +typedef enum +{ + FCDPRO_TIF_5_50MHZ=0, + FCDPRO_TIF_5_30MHZ=1, + FCDPRO_TIF_5_00MHZ=2, + FCDPRO_TIF_4_80MHZ=3, + FCDPRO_TIF_4_60MHZ=4, + FCDPRO_TIF_4_40MHZ=5, + FCDPRO_TIF_4_30MHZ=6, + FCDPRO_TIF_4_10MHZ=7, + FCDPRO_TIF_3_90MHZ=8, + FCDPRO_TIF_3_80MHZ=9, + FCDPRO_TIF_3_70MHZ=10, + FCDPRO_TIF_3_60MHZ=11, + FCDPRO_TIF_3_40MHZ=12, + FCDPRO_TIF_3_30MHZ=13, + FCDPRO_TIF_3_20MHZ=14, + FCDPRO_TIF_3_10MHZ=15, + FCDPRO_TIF_3_00MHZ=16, + FCDPRO_TIF_2_95MHZ=17, + FCDPRO_TIF_2_90MHZ=18, + FCDPRO_TIF_2_80MHZ=19, + FCDPRO_TIF_2_75MHZ=20, + FCDPRO_TIF_2_70MHZ=21, + FCDPRO_TIF_2_60MHZ=22, + FCDPRO_TIF_2_55MHZ=23, + FCDPRO_TIF_2_50MHZ=24, + FCDPRO_TIF_2_45MHZ=25, + FCDPRO_TIF_2_40MHZ=26, + FCDPRO_TIF_2_30MHZ=27, + FCDPRO_TIF_2_28MHZ=28, + FCDPRO_TIF_2_24MHZ=29, + FCDPRO_TIF_2_20MHZ=30, + FCDPRO_TIF_2_15MHZ=31 +} fcdpro_if_filter_value; + +typedef struct +{ + fcdpro_if_filter_value value; + std::string label; +} fcdpro_if_filter; + +typedef enum +{ + FCDPRO_TIG5_P3_0DB=0, + FCDPRO_TIG5_P6_0DB=1, + FCDPRO_TIG5_P9_0DB=2, + FCDPRO_TIG5_P12_0DB=3, + FCDPRO_TIG5_P15_0DB=4 +} fcdpro_if_gain5_value; + +typedef struct +{ + fcdpro_if_gain5_value value; + std::string label; +} fcdpro_if_gain5; + +typedef enum +{ + FCDPRO_TIG6_P3_0DB=0, + FCDPRO_TIG6_P6_0DB=1, + FCDPRO_TIG6_P9_0DB=2, + FCDPRO_TIG6_P12_0DB=3, + FCDPRO_TIG6_P15_0DB=4 +} fcdpro_if_gain6_value; + +typedef struct +{ + fcdpro_if_gain6_value value; + std::string label; +} fcdpro_if_gain6; + +class FCDProConstants +{ +public: + static const fcdpro_lna_gain lna_gains[]; + static const fcdpro_lna_enhance lna_enhances[]; + static const fcdpro_band bands[]; + static const fcdpro_rf_filter rf_filters[]; + static const fcdpro_mixer_gain mixer_gains[]; + static const fcdpro_bias_current bias_currents[]; + static const fcdpro_mixer_filter mixer_filters[]; + static const fcdpro_if_gain_mode if_gain_modes[]; + static const fcdpro_if_rc_filter if_rc_filters[]; + static const fcdpro_if_filter if_filters[]; + static const fcdpro_if_gain1 if_gains1[]; + static const fcdpro_if_gain2 if_gains2[]; + static const fcdpro_if_gain3 if_gains3[]; + static const fcdpro_if_gain4 if_gains4[]; + static const fcdpro_if_gain5 if_gains5[]; + static const fcdpro_if_gain6 if_gains6[]; + + static int fcdpro_lna_gain_nb_values(); + static int fcdpro_lna_enhance_nb_values(); + static int fcdpro_band_nb_values(); + static int fcdpro_rf_filter_nb_values(); + static int fcdpro_mixer_gain_nb_values(); + static int fcdpro_bias_current_nb_values(); + static int fcdpro_mixer_filter_nb_values(); + static int fcdpro_if_gain_mode_nb_values(); + static int fcdpro_if_rc_filter_nb_values(); + static int fcdpro_if_filter_nb_values(); + static int fcdpro_if_gain1_nb_values(); + static int fcdpro_if_gain2_nb_values(); + static int fcdpro_if_gain3_nb_values(); + static int fcdpro_if_gain4_nb_values(); + static int fcdpro_if_gain5_nb_values(); + static int fcdpro_if_gain6_nb_values(); +}; + +#endif /* FCDLIB_FCDPROCONST_H_ */