1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
use crate::{EntityId, NO_APPLIC, NO_ENTITY, NO_SITE};

#[allow(non_snake_case)]
pub struct VariableParameters {
    pub AGG_RESPONSE_DFLT: f32, //Default: 10 s
    pub COLLISION_ELASTIC_TIMEOUT: f32, //Default: 5 s
    pub COLLISION_THRSH: f32, //Default: 0.1 m/s
    pub DE_AREA_AIMING_THRSH: f32, //Default: 10°
    pub DE_ENERGY_THRSH: f32, //Default: 1.0%
    pub DE_PRECISION_AIMING_THRSH: f32, //Default: 0.5 m
    pub DRA_ORIENT_THRSH: f32, //Default: 3°
    pub DRA_POS_THRSH: f32, //Default: 1 m
    pub EE_AD_PULRAT_THRSH: f32, //Default: 0.017 rad/s
    pub EE_AD_PULACC_THRSH: f32, //Default: 0.017 rad/s2
    pub EE_AZ_THRSH: f32, //Default: 1°
    pub EE_EL_THRSH: f32, //Default: 1°
    pub EE_ERP_THRSH: f32, //Default: 1.0 dBm
    pub EE_FREQ_THRSH: f32, //Default: 1 Hz
    pub EE_FRNG_THRSH: f32, //Default: 1 Hz
    pub EE_FT_VEL_THRSH: f32, //Default: 1.0 m/s
    pub EE_FT_ACC_THRSH: f32, //Default: 1.0 m/s2
    pub EE_FT_MWD_THRSH: f32, //Default: 10000 m
    pub EE_FT_KT_THRSH: f32, //Default: 10 s
    pub EE_FT_ESP_THRSH: f32, //Default: 10 m
    pub EE_HIGH_DENSITY_THRSH: f32, //Default: 10 entities/beam
    pub EE_PRF_THRSH: f32, //Default: 1 Hz
    pub EE_PW_THRSH: f32, //Default: 1 μs
    pub EP_DIMENSION_THRSH: f32, //Default: 1 m
    pub EP_STATE_THRSH: f32, //User defined Default: ±10%
    pub GD_GEOMETRY_CHANGE: f32, //User defined Default: ±10%
    pub GD_STATE_CHANGE: f32, //User defined Default: ±10%
    pub HBT_DAMAGE_TIMEOUT_MPLIER: f32, //Default: 2.4 (see NOTE 3)
    pub HBT_ESPDU_KIND_CULTURAL_FEATURE: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_KIND_ENVIRONMENTAL: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_KIND_EXPENDABLE: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_KIND_LIFE_FORM: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_KIND_MUNITION: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_KIND_RADIO: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_KIND_SENSOR: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_KIND_EMITTER: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_KIND_SUPPLY: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_PLATFORM_AIR: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_PLATFORM_LAND: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_PLATFORM_SPACE: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_PLATFORM_SUBSURFACE: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_ESPDU_PLATFORM_SURFACE: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_PDU_AGGREGATE_STATE: f32, //Default: 30 s Tolerance: ±10%
    pub HBT_PDU_APPEARANCE: f32, //Default: 60 s Tolerance: ±10%
    pub HBT_PDU_DE_FIRE: f32, //Default: 0.5s Tolerance: ±10%
    pub HBT_PDU_DESIGNATOR: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_PDU_EE: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_PDU_ENTITY_DAMAGE: f32, //Default: 10 s Tolerance: ±10%
    pub HBT_PDU_ENVIRONMENTAL_PROCESS: f32, //Default: 15 s Tolerance: ±10%
    pub HBT_PDU_GRIDDED_DATA: f32, //Default: 15 min Tolerance: ±10%
    pub HBT_PDU_IFF: f32, //Default: 10 s Tolerance: ±10%
    pub HBT_PDU_ISGROUPOF: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_PDU_MINEFIELD_DATA: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_PDU_MINEFIELD_STATE: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_PDU_RECEIVER: f32, //Default: 5 s Tolerance: ±10%
    pub HBT_PDU_SEES: f32, //Default: 3 min Tolerance: ±10%
    pub HBT_PDU_TRANSMITTER: f32, //Default: 2 s Tolerance: ±10%
    pub HBT_PDU_TSPI: f32, //Default: 30 s Tolerance: ±10%
    pub HBT_PDU_UA: f32, //Default: 3 min Tolerance: ±10%
    pub HBT_STATIONARY: f32, //Default: 1 min Tolerance: ±10%
    pub HBT_TIMEOUT_MPLIER: f32, //Default: 2.4 (see NOTE 2)
    pub HQ_TOD_DIFF_THRSH: f32, //Default: 20 ms
    pub IFF_AZ_THRSH: f32, //Default: 3°
    pub IFF_CHG_LATENCY: f32, //Default: 2 s
    pub IFF_EL_THRSH: f32, //Default: 3°
    pub IFF_IP_REPLY_TIMER: f32, //Default: 30 s
    pub IFF_PDU_FINAL: f32, //Default: 10 s
    pub IFF_PDU_RESUME: f32, //Default: 10 s
    pub MINEFIELD_CHANGE: f32, //Default: 2.5 s
    pub MINEFIELD_RESPONSE_TIMER: f32, //Default: 1 s
    pub NON_SYNC_THRSH: f32, //Default: 1 min
    pub REPAR_REC_T1: f32, //Default: 5 s
    pub REPAR_SUP_T1: f32, //Default: 12 s
    pub REPAR_SUP_T2: f32, //Default: 12 s
    pub RESUP_REC_T1: f32, //Default: 5 s
    pub RESUP_REC_T2: f32, //Default: 55 s
    pub RESUP_SUP_T1: f32, //Default: 1 min
    pub SEES_NDA_THRSH: f32, //Default: ±2° in the axis of deflection
    pub SEES_PS_THRSH: f32, //Default: ±10% of the maximum value of the Power Setting
    pub SEES_RPM_THRSH: f32, //Default: ±5% of the maximum engine speed in RPM
    pub SMALLEST_MTU_OCTETS: f32, //Default: 1400 octets for Internet Protocol Version 4 networks [NOTE 1]
    pub SM_REL_RETRY_CNT: f32, //Default: 3
    pub SM_REL_RETRY_DELAY: f32, //Default: 2 s
    pub TIMESTAMP_AHEAD: f32, //Default: 5 s
    pub TIMESTAMP_BEHIND: f32, //Default: 5 s
    pub TI_TIMER1_DFLT: f32, //Default: 2 s
    pub TI_TIMER2_DFLT: f32, //Default: 12 s
    pub TO_AUTO_RESPONSE_TIMER: f32, //Default: 5 s
    pub TO_MAN_RESPONSE_TIMER: f32, //Default: 120 s
    pub TR_TIMER1_DFLT: f32, //Default: 5 s
    pub TR_TIMER2_DFLT: f32, //Default: 60 s
    pub TRANS_ORIENT_THRSH: f32, //Default: 180°
    pub TRANS_POS_THRSH: f32, //Default: 500 m
    pub UA_ORIENT_THRSH: f32, //Default: 2°
    pub UA_POS_THRSH: f32, //Default: 10 m
    pub UA_SRPM_ROC_THRSH: f32, //Default: ±10% of maximum rate of change
    pub UA_SRPM_THRSH: f32, //Default: ±5% of maximum shaft rate in RPM
    pub D_SPOT_NO_ENTITY: EntityId,
    pub ENTITY_ID_UNKNOWN: EntityId,
    pub NO_SPECIFIC_ENTITY: EntityId,
    pub TARGET_ID_UNKNOWN: EntityId,
}

impl VariableParameters {
    pub fn new() -> Self {
        Self::default()
    }
}

impl Default for VariableParameters {
    fn default() -> Self {
        Self {
            AGG_RESPONSE_DFLT: 10.0, // s
            COLLISION_ELASTIC_TIMEOUT: 5.0, // s
            COLLISION_THRSH: 0.1, // m/s
            DE_AREA_AIMING_THRSH: 10.0, // °
            DE_ENERGY_THRSH: 1.0, // %
            DE_PRECISION_AIMING_THRSH: 0.5, // m
            DRA_ORIENT_THRSH: 3.0, // °
            DRA_POS_THRSH: 1.0, // m
            EE_AD_PULRAT_THRSH: 0.017, // rad/s
            EE_AD_PULACC_THRSH: 0.017, // rad/s2
            EE_AZ_THRSH: 1.0, // °
            EE_EL_THRSH: 1.0, // °
            EE_ERP_THRSH: 1.0, // dBm
            EE_FREQ_THRSH: 1.0, // Hz
            EE_FRNG_THRSH: 1.0, // Hz
            EE_FT_VEL_THRSH: 1.0, // m/s
            EE_FT_ACC_THRSH: 1.0, // m/s2
            EE_FT_MWD_THRSH: 10000.0, // m
            EE_FT_KT_THRSH: 10.0, // s
            EE_FT_ESP_THRSH: 10.0, // m
            EE_HIGH_DENSITY_THRSH: 10.0, // entities/beam
            EE_PRF_THRSH: 1.0, // Hz
            EE_PW_THRSH: 1.0, // μs
            EP_DIMENSION_THRSH: 1.0, // m
            EP_STATE_THRSH: 0.0, //User defined Default: ±10%
            GD_GEOMETRY_CHANGE: 0.0, //User defined Default: ±10%
            GD_STATE_CHANGE: 0.0, //User defined Default: ±10%
            HBT_DAMAGE_TIMEOUT_MPLIER: 2.4, // (see NOTE 3)
            HBT_ESPDU_KIND_CULTURAL_FEATURE: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_KIND_ENVIRONMENTAL: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_KIND_EXPENDABLE: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_KIND_LIFE_FORM: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_KIND_MUNITION: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_KIND_RADIO: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_KIND_SENSOR: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_KIND_EMITTER: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_KIND_SUPPLY: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_PLATFORM_AIR: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_PLATFORM_LAND: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_PLATFORM_SPACE: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_PLATFORM_SUBSURFACE: 5.0, // s Tolerance: ±10%
            HBT_ESPDU_PLATFORM_SURFACE: 5.0, // s Tolerance: ±10%
            HBT_PDU_AGGREGATE_STATE: 30.0, // s Tolerance: ±10%
            HBT_PDU_APPEARANCE: 60.0, // s Tolerance: ±10%
            HBT_PDU_DE_FIRE: 0.5, // s Tolerance: ±10%
            HBT_PDU_DESIGNATOR: 5.0, // s Tolerance: ±10%
            HBT_PDU_EE: 5.0, // s Tolerance: ±10%
            HBT_PDU_ENTITY_DAMAGE: 10.0, // s Tolerance: ±10%
            HBT_PDU_ENVIRONMENTAL_PROCESS: 15.0, // s Tolerance: ±10%
            HBT_PDU_GRIDDED_DATA: 15.0, // min Tolerance: ±10%
            HBT_PDU_IFF: 10.0, // s Tolerance: ±10%
            HBT_PDU_ISGROUPOF: 5.0, // s Tolerance: ±10%
            HBT_PDU_MINEFIELD_DATA: 5.0, // s Tolerance: ±10%
            HBT_PDU_MINEFIELD_STATE: 5.0, // s Tolerance: ±10%
            HBT_PDU_RECEIVER: 5.0, // s Tolerance: ±10%
            HBT_PDU_SEES: 3.0, // min Tolerance: ±10%
            HBT_PDU_TRANSMITTER: 2.0, // s Tolerance: ±10%
            HBT_PDU_TSPI: 30.0, // s Tolerance: ±10%
            HBT_PDU_UA: 3.0, // min Tolerance: ±10%
            HBT_STATIONARY: 1.0, // min Tolerance: ±10%
            HBT_TIMEOUT_MPLIER: 2.4, // (see NOTE 2)
            HQ_TOD_DIFF_THRSH: 20.0, // ms
            IFF_AZ_THRSH: 3.0, // °
            IFF_CHG_LATENCY: 2.0, // s
            IFF_EL_THRSH: 3.0, // °
            IFF_IP_REPLY_TIMER: 30.0, // s
            IFF_PDU_FINAL: 10.0, // s
            IFF_PDU_RESUME: 10.0, // s
            MINEFIELD_CHANGE: 2.5, // s
            MINEFIELD_RESPONSE_TIMER: 1.0, // s
            NON_SYNC_THRSH: 1.0, // min
            REPAR_REC_T1: 5.0, // s
            REPAR_SUP_T1: 12.0, // s
            REPAR_SUP_T2: 12.0, // s
            RESUP_REC_T1: 5.0, // s
            RESUP_REC_T2: 55.0, // s
            RESUP_SUP_T1: 1.0, // min
            SEES_NDA_THRSH: 2.0, // ° in the axis of deflection
            SEES_PS_THRSH: 10.0, // ±% of the maximum value of the Power Setting
            SEES_RPM_THRSH: 5.0, // ±% of the maximum engine speed in RPM
            SMALLEST_MTU_OCTETS: 1400.0, // octets for Internet Protocol Version 4 networks [NOTE 1]
            SM_REL_RETRY_CNT: 3.0, //
            SM_REL_RETRY_DELAY: 2.0, // s
            TIMESTAMP_AHEAD: 5.0, // s
            TIMESTAMP_BEHIND: 5.0, // s
            TI_TIMER1_DFLT: 2.0, // s
            TI_TIMER2_DFLT: 12.0, // s
            TO_AUTO_RESPONSE_TIMER: 5.0, // s
            TO_MAN_RESPONSE_TIMER: 120.0, // s
            TR_TIMER1_DFLT: 5.0, // s
            TR_TIMER2_DFLT: 60.0, // s
            TRANS_ORIENT_THRSH: 180.0, // °
            TRANS_POS_THRSH: 500.0, // m
            UA_ORIENT_THRSH: 2.0, // °
            UA_POS_THRSH: 10.0, // m
            UA_SRPM_ROC_THRSH: 10.0, // ±% of maximum rate of change
            UA_SRPM_THRSH: 5.0, // ±% of maximum shaft rate in RPM;
            D_SPOT_NO_ENTITY: EntityId::new(NO_SITE,  NO_APPLIC, NO_ENTITY),
            ENTITY_ID_UNKNOWN: EntityId::new(NO_SITE,  NO_APPLIC, NO_ENTITY),
            NO_SPECIFIC_ENTITY: EntityId::new(NO_SITE,  NO_APPLIC, NO_ENTITY),
            TARGET_ID_UNKNOWN: EntityId::new(NO_SITE,  NO_APPLIC, NO_ENTITY),
        }
    }
}