dis_rs/variable_parameters.rs
1use crate::common::model::EntityId;
2use crate::{NO_APPLIC, NO_ENTITY, NO_SITE};
3
4#[allow(non_snake_case)]
5#[derive(Copy, Clone, Debug)]
6pub struct VariableParameters {
7 pub AGG_RESPONSE_DFLT: f32, //Default: 10 s
8 pub COLLISION_ELASTIC_TIMEOUT: f32, //Default: 5 s
9 pub COLLISION_THRSH: f32, //Default: 0.1 m/s
10 pub DE_AREA_AIMING_THRSH: f32, //Default: 10°
11 pub DE_ENERGY_THRSH: f32, //Default: 1.0%
12 pub DE_PRECISION_AIMING_THRSH: f32, //Default: 0.5 m
13 pub DRA_ORIENT_THRSH: f32, //Default: 3°
14 pub DRA_POS_THRSH: f32, //Default: 1 m
15 pub EE_AD_PULRAT_THRSH: f32, //Default: 0.017 rad/s
16 pub EE_AD_PULACC_THRSH: f32, //Default: 0.017 rad/s2
17 pub EE_AZ_THRSH: f32, //Default: 1°
18 pub EE_EL_THRSH: f32, //Default: 1°
19 pub EE_ERP_THRSH: f32, //Default: 1.0 dBm
20 pub EE_FREQ_THRSH: f32, //Default: 1 Hz
21 pub EE_FRNG_THRSH: f32, //Default: 1 Hz
22 pub EE_FT_VEL_THRSH: f32, //Default: 1.0 m/s
23 pub EE_FT_ACC_THRSH: f32, //Default: 1.0 m/s2
24 pub EE_FT_MWD_THRSH: f32, //Default: 10000 m
25 pub EE_FT_KT_THRSH: f32, //Default: 10 s
26 pub EE_FT_ESP_THRSH: f32, //Default: 10 m
27 pub EE_HIGH_DENSITY_THRSH: f32, //Default: 10 entities/beam
28 pub EE_PRF_THRSH: f32, //Default: 1 Hz
29 pub EE_PW_THRSH: f32, //Default: 1 μs
30 pub EP_DIMENSION_THRSH: f32, //Default: 1 m
31 pub EP_STATE_THRSH: f32, //User defined Default: ±10%
32 pub GD_GEOMETRY_CHANGE: f32, //User defined Default: ±10%
33 pub GD_STATE_CHANGE: f32, //User defined Default: ±10%
34 pub HBT_DAMAGE_TIMEOUT_MPLIER: f32, //Default: 2.4 (see NOTE 3)
35 pub HBT_ESPDU_KIND_CULTURAL_FEATURE: f32, //Default: 5 s Tolerance: ±10%
36 pub HBT_ESPDU_KIND_ENVIRONMENTAL: f32, //Default: 5 s Tolerance: ±10%
37 pub HBT_ESPDU_KIND_EXPENDABLE: f32, //Default: 5 s Tolerance: ±10%
38 pub HBT_ESPDU_KIND_LIFE_FORM: f32, //Default: 5 s Tolerance: ±10%
39 pub HBT_ESPDU_KIND_MUNITION: f32, //Default: 5 s Tolerance: ±10%
40 pub HBT_ESPDU_KIND_RADIO: f32, //Default: 5 s Tolerance: ±10%
41 pub HBT_ESPDU_KIND_SENSOR: f32, //Default: 5 s Tolerance: ±10%
42 pub HBT_ESPDU_KIND_EMITTER: f32, //Default: 5 s Tolerance: ±10%
43 pub HBT_ESPDU_KIND_SUPPLY: f32, //Default: 5 s Tolerance: ±10%
44 pub HBT_ESPDU_PLATFORM_AIR: f32, //Default: 5 s Tolerance: ±10%
45 pub HBT_ESPDU_PLATFORM_LAND: f32, //Default: 5 s Tolerance: ±10%
46 pub HBT_ESPDU_PLATFORM_SPACE: f32, //Default: 5 s Tolerance: ±10%
47 pub HBT_ESPDU_PLATFORM_SUBSURFACE: f32, //Default: 5 s Tolerance: ±10%
48 pub HBT_ESPDU_PLATFORM_SURFACE: f32, //Default: 5 s Tolerance: ±10%
49 pub HBT_PDU_AGGREGATE_STATE: f32, //Default: 30 s Tolerance: ±10%
50 pub HBT_PDU_APPEARANCE: f32, //Default: 60 s Tolerance: ±10%
51 pub HBT_PDU_DE_FIRE: f32, //Default: 0.5s Tolerance: ±10%
52 pub HBT_PDU_DESIGNATOR: f32, //Default: 5 s Tolerance: ±10%
53 pub HBT_PDU_EE: f32, //Default: 5 s Tolerance: ±10%
54 pub HBT_PDU_ENTITY_DAMAGE: f32, //Default: 10 s Tolerance: ±10%
55 pub HBT_PDU_ENVIRONMENTAL_PROCESS: f32, //Default: 15 s Tolerance: ±10%
56 pub HBT_PDU_GRIDDED_DATA: f32, //Default: 15 min Tolerance: ±10%
57 pub HBT_PDU_IFF: f32, //Default: 10 s Tolerance: ±10%
58 pub HBT_PDU_ISGROUPOF: f32, //Default: 5 s Tolerance: ±10%
59 pub HBT_PDU_MINEFIELD_DATA: f32, //Default: 5 s Tolerance: ±10%
60 pub HBT_PDU_MINEFIELD_STATE: f32, //Default: 5 s Tolerance: ±10%
61 pub HBT_PDU_RECEIVER: f32, //Default: 5 s Tolerance: ±10%
62 pub HBT_PDU_SEES: f32, //Default: 3 min Tolerance: ±10%
63 pub HBT_PDU_TRANSMITTER: f32, //Default: 2 s Tolerance: ±10%
64 pub HBT_PDU_TSPI: f32, //Default: 30 s Tolerance: ±10%
65 pub HBT_PDU_UA: f32, //Default: 3 min Tolerance: ±10%
66 pub HBT_STATIONARY: f32, //Default: 1 min Tolerance: ±10%
67 pub HBT_TIMEOUT_MPLIER: f32, //Default: 2.4 (see NOTE 2)
68 pub HQ_TOD_DIFF_THRSH: f32, //Default: 20 ms
69 pub IFF_AZ_THRSH: f32, //Default: 3°
70 pub IFF_CHG_LATENCY: f32, //Default: 2 s
71 pub IFF_EL_THRSH: f32, //Default: 3°
72 pub IFF_IP_REPLY_TIMER: f32, //Default: 30 s
73 pub IFF_PDU_FINAL: f32, //Default: 10 s
74 pub IFF_PDU_RESUME: f32, //Default: 10 s
75 pub MINEFIELD_CHANGE: f32, //Default: 2.5 s
76 pub MINEFIELD_RESPONSE_TIMER: f32, //Default: 1 s
77 pub NON_SYNC_THRSH: f32, //Default: 1 min
78 pub REPAR_REC_T1: f32, //Default: 5 s
79 pub REPAR_SUP_T1: f32, //Default: 12 s
80 pub REPAR_SUP_T2: f32, //Default: 12 s
81 pub RESUP_REC_T1: f32, //Default: 5 s
82 pub RESUP_REC_T2: f32, //Default: 55 s
83 pub RESUP_SUP_T1: f32, //Default: 1 min
84 pub SEES_NDA_THRSH: f32, //Default: ±2° in the axis of deflection
85 pub SEES_PS_THRSH: f32, //Default: ±10% of the maximum value of the Power Setting
86 pub SEES_RPM_THRSH: f32, //Default: ±5% of the maximum engine speed in RPM
87 pub SMALLEST_MTU_OCTETS: f32, //Default: 1400 octets for Internet Protocol Version 4 networks [NOTE 1]
88 pub SM_REL_RETRY_CNT: f32, //Default: 3
89 pub SM_REL_RETRY_DELAY: f32, //Default: 2 s
90 pub TIMESTAMP_AHEAD: f32, //Default: 5 s
91 pub TIMESTAMP_BEHIND: f32, //Default: 5 s
92 pub TI_TIMER1_DFLT: f32, //Default: 2 s
93 pub TI_TIMER2_DFLT: f32, //Default: 12 s
94 pub TO_AUTO_RESPONSE_TIMER: f32, //Default: 5 s
95 pub TO_MAN_RESPONSE_TIMER: f32, //Default: 120 s
96 pub TR_TIMER1_DFLT: f32, //Default: 5 s
97 pub TR_TIMER2_DFLT: f32, //Default: 60 s
98 pub TRANS_ORIENT_THRSH: f32, //Default: 180°
99 pub TRANS_POS_THRSH: f32, //Default: 500 m
100 pub UA_ORIENT_THRSH: f32, //Default: 2°
101 pub UA_POS_THRSH: f32, //Default: 10 m
102 pub UA_SRPM_ROC_THRSH: f32, //Default: ±10% of maximum rate of change
103 pub UA_SRPM_THRSH: f32, //Default: ±5% of maximum shaft rate in RPM
104 pub D_SPOT_NO_ENTITY: EntityId,
105 pub ENTITY_ID_UNKNOWN: EntityId,
106 pub NO_SPECIFIC_ENTITY: EntityId,
107 pub TARGET_ID_UNKNOWN: EntityId,
108}
109
110impl VariableParameters {
111 #[must_use]
112 pub fn new() -> Self {
113 Self::default()
114 }
115}
116
117impl Default for VariableParameters {
118 #[allow(clippy::too_many_lines)]
119 fn default() -> Self {
120 Self {
121 AGG_RESPONSE_DFLT: 10.0, // s
122 COLLISION_ELASTIC_TIMEOUT: 5.0, // s
123 COLLISION_THRSH: 0.1, // m/s
124 DE_AREA_AIMING_THRSH: 10.0, // °
125 DE_ENERGY_THRSH: 1.0, // %
126 DE_PRECISION_AIMING_THRSH: 0.5, // m
127 DRA_ORIENT_THRSH: 3.0, // °
128 DRA_POS_THRSH: 1.0, // m
129 EE_AD_PULRAT_THRSH: 0.017, // rad/s
130 EE_AD_PULACC_THRSH: 0.017, // rad/s2
131 EE_AZ_THRSH: 1.0, // °
132 EE_EL_THRSH: 1.0, // °
133 EE_ERP_THRSH: 1.0, // dBm
134 EE_FREQ_THRSH: 1.0, // Hz
135 EE_FRNG_THRSH: 1.0, // Hz
136 EE_FT_VEL_THRSH: 1.0, // m/s
137 EE_FT_ACC_THRSH: 1.0, // m/s2
138 EE_FT_MWD_THRSH: 10000.0, // m
139 EE_FT_KT_THRSH: 10.0, // s
140 EE_FT_ESP_THRSH: 10.0, // m
141 EE_HIGH_DENSITY_THRSH: 10.0, // entities/beam
142 EE_PRF_THRSH: 1.0, // Hz
143 EE_PW_THRSH: 1.0, // μs
144 EP_DIMENSION_THRSH: 1.0, // m
145 EP_STATE_THRSH: 0.0, //User defined Default: ±10%
146 GD_GEOMETRY_CHANGE: 0.0, //User defined Default: ±10%
147 GD_STATE_CHANGE: 0.0, //User defined Default: ±10%
148 HBT_DAMAGE_TIMEOUT_MPLIER: 2.4, // (see NOTE 3)
149 HBT_ESPDU_KIND_CULTURAL_FEATURE: 5.0, // s Tolerance: ±10%
150 HBT_ESPDU_KIND_ENVIRONMENTAL: 5.0, // s Tolerance: ±10%
151 HBT_ESPDU_KIND_EXPENDABLE: 5.0, // s Tolerance: ±10%
152 HBT_ESPDU_KIND_LIFE_FORM: 5.0, // s Tolerance: ±10%
153 HBT_ESPDU_KIND_MUNITION: 5.0, // s Tolerance: ±10%
154 HBT_ESPDU_KIND_RADIO: 5.0, // s Tolerance: ±10%
155 HBT_ESPDU_KIND_SENSOR: 5.0, // s Tolerance: ±10%
156 HBT_ESPDU_KIND_EMITTER: 5.0, // s Tolerance: ±10%
157 HBT_ESPDU_KIND_SUPPLY: 5.0, // s Tolerance: ±10%
158 HBT_ESPDU_PLATFORM_AIR: 5.0, // s Tolerance: ±10%
159 HBT_ESPDU_PLATFORM_LAND: 5.0, // s Tolerance: ±10%
160 HBT_ESPDU_PLATFORM_SPACE: 5.0, // s Tolerance: ±10%
161 HBT_ESPDU_PLATFORM_SUBSURFACE: 5.0, // s Tolerance: ±10%
162 HBT_ESPDU_PLATFORM_SURFACE: 5.0, // s Tolerance: ±10%
163 HBT_PDU_AGGREGATE_STATE: 30.0, // s Tolerance: ±10%
164 HBT_PDU_APPEARANCE: 60.0, // s Tolerance: ±10%
165 HBT_PDU_DE_FIRE: 0.5, // s Tolerance: ±10%
166 HBT_PDU_DESIGNATOR: 5.0, // s Tolerance: ±10%
167 HBT_PDU_EE: 5.0, // s Tolerance: ±10%
168 HBT_PDU_ENTITY_DAMAGE: 10.0, // s Tolerance: ±10%
169 HBT_PDU_ENVIRONMENTAL_PROCESS: 15.0, // s Tolerance: ±10%
170 HBT_PDU_GRIDDED_DATA: 15.0, // min Tolerance: ±10%
171 HBT_PDU_IFF: 10.0, // s Tolerance: ±10%
172 HBT_PDU_ISGROUPOF: 5.0, // s Tolerance: ±10%
173 HBT_PDU_MINEFIELD_DATA: 5.0, // s Tolerance: ±10%
174 HBT_PDU_MINEFIELD_STATE: 5.0, // s Tolerance: ±10%
175 HBT_PDU_RECEIVER: 5.0, // s Tolerance: ±10%
176 HBT_PDU_SEES: 3.0, // min Tolerance: ±10%
177 HBT_PDU_TRANSMITTER: 2.0, // s Tolerance: ±10%
178 HBT_PDU_TSPI: 30.0, // s Tolerance: ±10%
179 HBT_PDU_UA: 3.0, // min Tolerance: ±10%
180 HBT_STATIONARY: 1.0, // min Tolerance: ±10%
181 HBT_TIMEOUT_MPLIER: 2.4, // (see NOTE 2)
182 HQ_TOD_DIFF_THRSH: 20.0, // ms
183 IFF_AZ_THRSH: 3.0, // °
184 IFF_CHG_LATENCY: 2.0, // s
185 IFF_EL_THRSH: 3.0, // °
186 IFF_IP_REPLY_TIMER: 30.0, // s
187 IFF_PDU_FINAL: 10.0, // s
188 IFF_PDU_RESUME: 10.0, // s
189 MINEFIELD_CHANGE: 2.5, // s
190 MINEFIELD_RESPONSE_TIMER: 1.0, // s
191 NON_SYNC_THRSH: 1.0, // min
192 REPAR_REC_T1: 5.0, // s
193 REPAR_SUP_T1: 12.0, // s
194 REPAR_SUP_T2: 12.0, // s
195 RESUP_REC_T1: 5.0, // s
196 RESUP_REC_T2: 55.0, // s
197 RESUP_SUP_T1: 1.0, // min
198 SEES_NDA_THRSH: 2.0, // ° in the axis of deflection
199 SEES_PS_THRSH: 10.0, // ±% of the maximum value of the Power Setting
200 SEES_RPM_THRSH: 5.0, // ±% of the maximum engine speed in RPM
201 SMALLEST_MTU_OCTETS: 1400.0, // octets for Internet Protocol Version 4 networks [NOTE 1]
202 SM_REL_RETRY_CNT: 3.0, //
203 SM_REL_RETRY_DELAY: 2.0, // s
204 TIMESTAMP_AHEAD: 5.0, // s
205 TIMESTAMP_BEHIND: 5.0, // s
206 TI_TIMER1_DFLT: 2.0, // s
207 TI_TIMER2_DFLT: 12.0, // s
208 TO_AUTO_RESPONSE_TIMER: 5.0, // s
209 TO_MAN_RESPONSE_TIMER: 120.0, // s
210 TR_TIMER1_DFLT: 5.0, // s
211 TR_TIMER2_DFLT: 60.0, // s
212 TRANS_ORIENT_THRSH: 180.0, // °
213 TRANS_POS_THRSH: 500.0, // m
214 UA_ORIENT_THRSH: 2.0, // °
215 UA_POS_THRSH: 10.0, // m
216 UA_SRPM_ROC_THRSH: 10.0, // ±% of maximum rate of change
217 UA_SRPM_THRSH: 5.0, // ±% of maximum shaft rate in RPM;
218 D_SPOT_NO_ENTITY: EntityId::new(NO_SITE, NO_APPLIC, NO_ENTITY),
219 ENTITY_ID_UNKNOWN: EntityId::new(NO_SITE, NO_APPLIC, NO_ENTITY),
220 NO_SPECIFIC_ENTITY: EntityId::new(NO_SITE, NO_APPLIC, NO_ENTITY),
221 TARGET_ID_UNKNOWN: EntityId::new(NO_SITE, NO_APPLIC, NO_ENTITY),
222 }
223 }
224}