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}