1#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)]
3pub struct PssIEEE2B {
4 #[serde(flatten)]
5 pub base: super::PowerSystemStabilizerDynamics,
6 #[serde(skip_serializing_if = "Option::is_none")]
8 pub input_signal1type: Option<super::base::UriRef>,
9 #[serde(skip_serializing_if = "Option::is_none")]
11 pub input_signal2type: Option<super::base::UriRef>,
12 #[serde(skip_serializing_if = "Option::is_none")]
14 pub ks1: Option<f64>,
15 #[serde(skip_serializing_if = "Option::is_none")]
17 pub ks2: Option<f64>,
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub ks3: Option<f64>,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub m: Option<i64>,
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub n: Option<i64>,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub t1: Option<f64>,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub t10: Option<f64>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub t11: Option<f64>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub t2: Option<f64>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub t3: Option<f64>,
42 #[serde(skip_serializing_if = "Option::is_none")]
44 pub t4: Option<f64>,
45 #[serde(skip_serializing_if = "Option::is_none")]
47 pub t6: Option<f64>,
48 #[serde(skip_serializing_if = "Option::is_none")]
50 pub t7: Option<f64>,
51 #[serde(skip_serializing_if = "Option::is_none")]
53 pub t8: Option<f64>,
54 #[serde(skip_serializing_if = "Option::is_none")]
56 pub t9: Option<f64>,
57 #[serde(skip_serializing_if = "Option::is_none")]
59 pub tw1: Option<f64>,
60 #[serde(skip_serializing_if = "Option::is_none")]
62 pub tw2: Option<f64>,
63 #[serde(skip_serializing_if = "Option::is_none")]
65 pub tw3: Option<f64>,
66 #[serde(skip_serializing_if = "Option::is_none")]
68 pub tw4: Option<f64>,
69 #[serde(skip_serializing_if = "Option::is_none")]
71 pub vsi1max: Option<f64>,
72 #[serde(skip_serializing_if = "Option::is_none")]
74 pub vsi1min: Option<f64>,
75 #[serde(skip_serializing_if = "Option::is_none")]
77 pub vsi2max: Option<f64>,
78 #[serde(skip_serializing_if = "Option::is_none")]
80 pub vsi2min: Option<f64>,
81 #[serde(skip_serializing_if = "Option::is_none")]
83 pub vstmax: Option<f64>,
84 #[serde(skip_serializing_if = "Option::is_none")]
86 pub vstmin: Option<f64>,
87}
88impl crate::base::CimElement for PssIEEE2B {
89 fn mrid(&self) -> &str { &self.base.base.base.id }
90 fn type_name(&self) -> &'static str { "PssIEEE2B" }
91 fn as_any(&self) -> &dyn std::any::Any { self }
92 fn to_json_value(&self) -> serde_json::Value {
93 serde_json::to_value(self).unwrap_or(serde_json::Value::Null)
94 }
95 fn to_block(&self) -> crate::base::RdfBlock {
96 let mut block = self.base.to_block();
97 block.type_name = "PssIEEE2B".to_string();
98 if let Some(ref v) = self.input_signal1type {
99 block.fields.insert("PssIEEE2B.inputSignal1Type".into(), crate::base::FieldValue::Resource(v.uri.clone()));
100 }
101 if let Some(ref v) = self.input_signal2type {
102 block.fields.insert("PssIEEE2B.inputSignal2Type".into(), crate::base::FieldValue::Resource(v.uri.clone()));
103 }
104 if let Some(v) = self.ks1 {
105 block.fields.insert("PssIEEE2B.ks1".into(), crate::base::FieldValue::Text(v.to_string()));
106 }
107 if let Some(v) = self.ks2 {
108 block.fields.insert("PssIEEE2B.ks2".into(), crate::base::FieldValue::Text(v.to_string()));
109 }
110 if let Some(v) = self.ks3 {
111 block.fields.insert("PssIEEE2B.ks3".into(), crate::base::FieldValue::Text(v.to_string()));
112 }
113 if let Some(v) = self.m {
114 block.fields.insert("PssIEEE2B.m".into(), crate::base::FieldValue::Text(v.to_string()));
115 }
116 if let Some(v) = self.n {
117 block.fields.insert("PssIEEE2B.n".into(), crate::base::FieldValue::Text(v.to_string()));
118 }
119 if let Some(v) = self.t1 {
120 block.fields.insert("PssIEEE2B.t1".into(), crate::base::FieldValue::Text(v.to_string()));
121 }
122 if let Some(v) = self.t10 {
123 block.fields.insert("PssIEEE2B.t10".into(), crate::base::FieldValue::Text(v.to_string()));
124 }
125 if let Some(v) = self.t11 {
126 block.fields.insert("PssIEEE2B.t11".into(), crate::base::FieldValue::Text(v.to_string()));
127 }
128 if let Some(v) = self.t2 {
129 block.fields.insert("PssIEEE2B.t2".into(), crate::base::FieldValue::Text(v.to_string()));
130 }
131 if let Some(v) = self.t3 {
132 block.fields.insert("PssIEEE2B.t3".into(), crate::base::FieldValue::Text(v.to_string()));
133 }
134 if let Some(v) = self.t4 {
135 block.fields.insert("PssIEEE2B.t4".into(), crate::base::FieldValue::Text(v.to_string()));
136 }
137 if let Some(v) = self.t6 {
138 block.fields.insert("PssIEEE2B.t6".into(), crate::base::FieldValue::Text(v.to_string()));
139 }
140 if let Some(v) = self.t7 {
141 block.fields.insert("PssIEEE2B.t7".into(), crate::base::FieldValue::Text(v.to_string()));
142 }
143 if let Some(v) = self.t8 {
144 block.fields.insert("PssIEEE2B.t8".into(), crate::base::FieldValue::Text(v.to_string()));
145 }
146 if let Some(v) = self.t9 {
147 block.fields.insert("PssIEEE2B.t9".into(), crate::base::FieldValue::Text(v.to_string()));
148 }
149 if let Some(v) = self.tw1 {
150 block.fields.insert("PssIEEE2B.tw1".into(), crate::base::FieldValue::Text(v.to_string()));
151 }
152 if let Some(v) = self.tw2 {
153 block.fields.insert("PssIEEE2B.tw2".into(), crate::base::FieldValue::Text(v.to_string()));
154 }
155 if let Some(v) = self.tw3 {
156 block.fields.insert("PssIEEE2B.tw3".into(), crate::base::FieldValue::Text(v.to_string()));
157 }
158 if let Some(v) = self.tw4 {
159 block.fields.insert("PssIEEE2B.tw4".into(), crate::base::FieldValue::Text(v.to_string()));
160 }
161 if let Some(v) = self.vsi1max {
162 block.fields.insert("PssIEEE2B.vsi1max".into(), crate::base::FieldValue::Text(v.to_string()));
163 }
164 if let Some(v) = self.vsi1min {
165 block.fields.insert("PssIEEE2B.vsi1min".into(), crate::base::FieldValue::Text(v.to_string()));
166 }
167 if let Some(v) = self.vsi2max {
168 block.fields.insert("PssIEEE2B.vsi2max".into(), crate::base::FieldValue::Text(v.to_string()));
169 }
170 if let Some(v) = self.vsi2min {
171 block.fields.insert("PssIEEE2B.vsi2min".into(), crate::base::FieldValue::Text(v.to_string()));
172 }
173 if let Some(v) = self.vstmax {
174 block.fields.insert("PssIEEE2B.vstmax".into(), crate::base::FieldValue::Text(v.to_string()));
175 }
176 if let Some(v) = self.vstmin {
177 block.fields.insert("PssIEEE2B.vstmin".into(), crate::base::FieldValue::Text(v.to_string()));
178 }
179 block
180 }
181}
182
183impl PssIEEE2B {
184 pub fn from_block(b: &crate::base::RdfBlock) -> Self {
185 let mut obj = Self::default();
186 obj.base.base.base.id.clone_from(&b.mrid);
187 for (key, val) in &b.fields {
188 match key.as_str() {
189 "PssIEEE2B.inputSignal1Type" => {
190 if let crate::base::FieldValue::Resource(sv) = val {
191 obj.input_signal1type = Some(crate::base::UriRef { uri: sv.clone() });
192 }
193 }
194 "PssIEEE2B.inputSignal2Type" => {
195 if let crate::base::FieldValue::Resource(sv) = val {
196 obj.input_signal2type = Some(crate::base::UriRef { uri: sv.clone() });
197 }
198 }
199 "PssIEEE2B.ks1" => {
200 match val {
201 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.ks1 = Some(v); } }
202 crate::base::FieldValue::TextList(svs) => {
203 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.ks1 = Some(v); } }
204 }
205 _ => {}
206 }
207 }
208 "PssIEEE2B.ks2" => {
209 match val {
210 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.ks2 = Some(v); } }
211 crate::base::FieldValue::TextList(svs) => {
212 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.ks2 = Some(v); } }
213 }
214 _ => {}
215 }
216 }
217 "PssIEEE2B.ks3" => {
218 match val {
219 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.ks3 = Some(v); } }
220 crate::base::FieldValue::TextList(svs) => {
221 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.ks3 = Some(v); } }
222 }
223 _ => {}
224 }
225 }
226 "PssIEEE2B.m" => {
227 match val {
228 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.m = Some(v); } }
229 crate::base::FieldValue::TextList(svs) => {
230 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.m = Some(v); } }
231 }
232 _ => {}
233 }
234 }
235 "PssIEEE2B.n" => {
236 match val {
237 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.n = Some(v); } }
238 crate::base::FieldValue::TextList(svs) => {
239 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.n = Some(v); } }
240 }
241 _ => {}
242 }
243 }
244 "PssIEEE2B.t1" => {
245 match val {
246 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t1 = Some(v); } }
247 crate::base::FieldValue::TextList(svs) => {
248 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t1 = Some(v); } }
249 }
250 _ => {}
251 }
252 }
253 "PssIEEE2B.t10" => {
254 match val {
255 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t10 = Some(v); } }
256 crate::base::FieldValue::TextList(svs) => {
257 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t10 = Some(v); } }
258 }
259 _ => {}
260 }
261 }
262 "PssIEEE2B.t11" => {
263 match val {
264 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t11 = Some(v); } }
265 crate::base::FieldValue::TextList(svs) => {
266 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t11 = Some(v); } }
267 }
268 _ => {}
269 }
270 }
271 "PssIEEE2B.t2" => {
272 match val {
273 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t2 = Some(v); } }
274 crate::base::FieldValue::TextList(svs) => {
275 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t2 = Some(v); } }
276 }
277 _ => {}
278 }
279 }
280 "PssIEEE2B.t3" => {
281 match val {
282 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t3 = Some(v); } }
283 crate::base::FieldValue::TextList(svs) => {
284 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t3 = Some(v); } }
285 }
286 _ => {}
287 }
288 }
289 "PssIEEE2B.t4" => {
290 match val {
291 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t4 = Some(v); } }
292 crate::base::FieldValue::TextList(svs) => {
293 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t4 = Some(v); } }
294 }
295 _ => {}
296 }
297 }
298 "PssIEEE2B.t6" => {
299 match val {
300 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t6 = Some(v); } }
301 crate::base::FieldValue::TextList(svs) => {
302 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t6 = Some(v); } }
303 }
304 _ => {}
305 }
306 }
307 "PssIEEE2B.t7" => {
308 match val {
309 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t7 = Some(v); } }
310 crate::base::FieldValue::TextList(svs) => {
311 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t7 = Some(v); } }
312 }
313 _ => {}
314 }
315 }
316 "PssIEEE2B.t8" => {
317 match val {
318 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t8 = Some(v); } }
319 crate::base::FieldValue::TextList(svs) => {
320 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t8 = Some(v); } }
321 }
322 _ => {}
323 }
324 }
325 "PssIEEE2B.t9" => {
326 match val {
327 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t9 = Some(v); } }
328 crate::base::FieldValue::TextList(svs) => {
329 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t9 = Some(v); } }
330 }
331 _ => {}
332 }
333 }
334 "PssIEEE2B.tw1" => {
335 match val {
336 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.tw1 = Some(v); } }
337 crate::base::FieldValue::TextList(svs) => {
338 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.tw1 = Some(v); } }
339 }
340 _ => {}
341 }
342 }
343 "PssIEEE2B.tw2" => {
344 match val {
345 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.tw2 = Some(v); } }
346 crate::base::FieldValue::TextList(svs) => {
347 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.tw2 = Some(v); } }
348 }
349 _ => {}
350 }
351 }
352 "PssIEEE2B.tw3" => {
353 match val {
354 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.tw3 = Some(v); } }
355 crate::base::FieldValue::TextList(svs) => {
356 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.tw3 = Some(v); } }
357 }
358 _ => {}
359 }
360 }
361 "PssIEEE2B.tw4" => {
362 match val {
363 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.tw4 = Some(v); } }
364 crate::base::FieldValue::TextList(svs) => {
365 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.tw4 = Some(v); } }
366 }
367 _ => {}
368 }
369 }
370 "PssIEEE2B.vsi1max" => {
371 match val {
372 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.vsi1max = Some(v); } }
373 crate::base::FieldValue::TextList(svs) => {
374 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.vsi1max = Some(v); } }
375 }
376 _ => {}
377 }
378 }
379 "PssIEEE2B.vsi1min" => {
380 match val {
381 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.vsi1min = Some(v); } }
382 crate::base::FieldValue::TextList(svs) => {
383 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.vsi1min = Some(v); } }
384 }
385 _ => {}
386 }
387 }
388 "PssIEEE2B.vsi2max" => {
389 match val {
390 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.vsi2max = Some(v); } }
391 crate::base::FieldValue::TextList(svs) => {
392 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.vsi2max = Some(v); } }
393 }
394 _ => {}
395 }
396 }
397 "PssIEEE2B.vsi2min" => {
398 match val {
399 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.vsi2min = Some(v); } }
400 crate::base::FieldValue::TextList(svs) => {
401 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.vsi2min = Some(v); } }
402 }
403 _ => {}
404 }
405 }
406 "PssIEEE2B.vstmax" => {
407 match val {
408 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.vstmax = Some(v); } }
409 crate::base::FieldValue::TextList(svs) => {
410 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.vstmax = Some(v); } }
411 }
412 _ => {}
413 }
414 }
415 "PssIEEE2B.vstmin" => {
416 match val {
417 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.vstmin = Some(v); } }
418 crate::base::FieldValue::TextList(svs) => {
419 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.vstmin = Some(v); } }
420 }
421 _ => {}
422 }
423 }
424 "PowerSystemStabilizerDynamics.ExcitationSystemDynamics" => {
425 if let crate::base::FieldValue::Resource(sv) = val {
426 obj.base.excitation_system_dynamics = Some(crate::base::MridRef { mrid: sv.clone() });
427 }
428 }
429 "DynamicsFunctionBlock.enabled" => {
430 match val {
431 crate::base::FieldValue::Text(sv) => { obj.base.base.enabled = Some(sv.trim() == "true"); }
432 crate::base::FieldValue::TextList(svs) => {
433 if let Some(sv) = svs.last() { obj.base.base.enabled = Some(sv.trim() == "true"); }
434 }
435 _ => {}
436 }
437 }
438 "IdentifiedObject.description" => {
439 match val {
440 crate::base::FieldValue::Text(sv) => { obj.base.base.base.description = sv.clone(); }
441 crate::base::FieldValue::TextList(svs) => {
442 if let Some(sv) = svs.last() { obj.base.base.base.description = sv.clone(); }
443 }
444 _ => {}
445 }
446 }
447 "IdentifiedObject.energyIdentCodeEic" => {
448 match val {
449 crate::base::FieldValue::Text(sv) => { obj.base.base.base.energy_ident_code_eic = sv.clone(); }
450 crate::base::FieldValue::TextList(svs) => {
451 if let Some(sv) = svs.last() { obj.base.base.base.energy_ident_code_eic = sv.clone(); }
452 }
453 _ => {}
454 }
455 }
456 "IdentifiedObject.mRID" => {
457 match val {
458 crate::base::FieldValue::Text(sv) => { obj.base.base.base.m_rid = sv.clone(); }
459 crate::base::FieldValue::TextList(svs) => {
460 if let Some(sv) = svs.last() { obj.base.base.base.m_rid = sv.clone(); }
461 }
462 _ => {}
463 }
464 }
465 "IdentifiedObject.name" => {
466 match val {
467 crate::base::FieldValue::Text(sv) => { obj.base.base.base.name = sv.clone(); }
468 crate::base::FieldValue::TextList(svs) => {
469 if let Some(sv) = svs.last() { obj.base.base.base.name = sv.clone(); }
470 }
471 _ => {}
472 }
473 }
474 "IdentifiedObject.shortName" => {
475 match val {
476 crate::base::FieldValue::Text(sv) => { obj.base.base.base.short_name = sv.clone(); }
477 crate::base::FieldValue::TextList(svs) => {
478 if let Some(sv) = svs.last() { obj.base.base.base.short_name = sv.clone(); }
479 }
480 _ => {}
481 }
482 }
483 _ => {}
484 }
485 }
486 obj
487 }
488}