1#[derive(Debug, Default, Clone, serde::Serialize, serde::Deserialize)]
3pub struct Pss2ST {
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 k1: Option<f64>,
15 #[serde(skip_serializing_if = "Option::is_none")]
17 pub k2: Option<f64>,
18 #[serde(skip_serializing_if = "Option::is_none")]
20 pub lsmax: Option<f64>,
21 #[serde(skip_serializing_if = "Option::is_none")]
23 pub lsmin: Option<f64>,
24 #[serde(skip_serializing_if = "Option::is_none")]
26 pub t1: Option<f64>,
27 #[serde(skip_serializing_if = "Option::is_none")]
29 pub t10: Option<f64>,
30 #[serde(skip_serializing_if = "Option::is_none")]
32 pub t2: Option<f64>,
33 #[serde(skip_serializing_if = "Option::is_none")]
35 pub t3: Option<f64>,
36 #[serde(skip_serializing_if = "Option::is_none")]
38 pub t4: Option<f64>,
39 #[serde(skip_serializing_if = "Option::is_none")]
41 pub t5: Option<f64>,
42 #[serde(skip_serializing_if = "Option::is_none")]
44 pub t6: Option<f64>,
45 #[serde(skip_serializing_if = "Option::is_none")]
47 pub t7: Option<f64>,
48 #[serde(skip_serializing_if = "Option::is_none")]
50 pub t8: Option<f64>,
51 #[serde(skip_serializing_if = "Option::is_none")]
53 pub t9: Option<f64>,
54 #[serde(skip_serializing_if = "Option::is_none")]
56 pub vcl: Option<f64>,
57 #[serde(skip_serializing_if = "Option::is_none")]
59 pub vcu: Option<f64>,
60}
61impl crate::base::CimElement for Pss2ST {
62 fn mrid(&self) -> &str { &self.base.base.base.id }
63 fn type_name(&self) -> &'static str { "Pss2ST" }
64 fn as_any(&self) -> &dyn std::any::Any { self }
65 fn to_json_value(&self) -> serde_json::Value {
66 serde_json::to_value(self).unwrap_or(serde_json::Value::Null)
67 }
68 fn to_block(&self) -> crate::base::RdfBlock {
69 let mut block = self.base.to_block();
70 block.type_name = "Pss2ST".to_string();
71 if let Some(ref v) = self.input_signal1type {
72 block.fields.insert("Pss2ST.inputSignal1Type".into(), crate::base::FieldValue::Resource(v.uri.clone()));
73 }
74 if let Some(ref v) = self.input_signal2type {
75 block.fields.insert("Pss2ST.inputSignal2Type".into(), crate::base::FieldValue::Resource(v.uri.clone()));
76 }
77 if let Some(v) = self.k1 {
78 block.fields.insert("Pss2ST.k1".into(), crate::base::FieldValue::Text(v.to_string()));
79 }
80 if let Some(v) = self.k2 {
81 block.fields.insert("Pss2ST.k2".into(), crate::base::FieldValue::Text(v.to_string()));
82 }
83 if let Some(v) = self.lsmax {
84 block.fields.insert("Pss2ST.lsmax".into(), crate::base::FieldValue::Text(v.to_string()));
85 }
86 if let Some(v) = self.lsmin {
87 block.fields.insert("Pss2ST.lsmin".into(), crate::base::FieldValue::Text(v.to_string()));
88 }
89 if let Some(v) = self.t1 {
90 block.fields.insert("Pss2ST.t1".into(), crate::base::FieldValue::Text(v.to_string()));
91 }
92 if let Some(v) = self.t10 {
93 block.fields.insert("Pss2ST.t10".into(), crate::base::FieldValue::Text(v.to_string()));
94 }
95 if let Some(v) = self.t2 {
96 block.fields.insert("Pss2ST.t2".into(), crate::base::FieldValue::Text(v.to_string()));
97 }
98 if let Some(v) = self.t3 {
99 block.fields.insert("Pss2ST.t3".into(), crate::base::FieldValue::Text(v.to_string()));
100 }
101 if let Some(v) = self.t4 {
102 block.fields.insert("Pss2ST.t4".into(), crate::base::FieldValue::Text(v.to_string()));
103 }
104 if let Some(v) = self.t5 {
105 block.fields.insert("Pss2ST.t5".into(), crate::base::FieldValue::Text(v.to_string()));
106 }
107 if let Some(v) = self.t6 {
108 block.fields.insert("Pss2ST.t6".into(), crate::base::FieldValue::Text(v.to_string()));
109 }
110 if let Some(v) = self.t7 {
111 block.fields.insert("Pss2ST.t7".into(), crate::base::FieldValue::Text(v.to_string()));
112 }
113 if let Some(v) = self.t8 {
114 block.fields.insert("Pss2ST.t8".into(), crate::base::FieldValue::Text(v.to_string()));
115 }
116 if let Some(v) = self.t9 {
117 block.fields.insert("Pss2ST.t9".into(), crate::base::FieldValue::Text(v.to_string()));
118 }
119 if let Some(v) = self.vcl {
120 block.fields.insert("Pss2ST.vcl".into(), crate::base::FieldValue::Text(v.to_string()));
121 }
122 if let Some(v) = self.vcu {
123 block.fields.insert("Pss2ST.vcu".into(), crate::base::FieldValue::Text(v.to_string()));
124 }
125 block
126 }
127}
128
129impl Pss2ST {
130 pub fn from_block(b: &crate::base::RdfBlock) -> Self {
131 let mut obj = Self::default();
132 obj.base.base.base.id.clone_from(&b.mrid);
133 for (key, val) in &b.fields {
134 match key.as_str() {
135 "Pss2ST.inputSignal1Type" => {
136 if let crate::base::FieldValue::Resource(sv) = val {
137 obj.input_signal1type = Some(crate::base::UriRef { uri: sv.clone() });
138 }
139 }
140 "Pss2ST.inputSignal2Type" => {
141 if let crate::base::FieldValue::Resource(sv) = val {
142 obj.input_signal2type = Some(crate::base::UriRef { uri: sv.clone() });
143 }
144 }
145 "Pss2ST.k1" => {
146 match val {
147 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.k1 = Some(v); } }
148 crate::base::FieldValue::TextList(svs) => {
149 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.k1 = Some(v); } }
150 }
151 _ => {}
152 }
153 }
154 "Pss2ST.k2" => {
155 match val {
156 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.k2 = Some(v); } }
157 crate::base::FieldValue::TextList(svs) => {
158 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.k2 = Some(v); } }
159 }
160 _ => {}
161 }
162 }
163 "Pss2ST.lsmax" => {
164 match val {
165 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.lsmax = Some(v); } }
166 crate::base::FieldValue::TextList(svs) => {
167 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.lsmax = Some(v); } }
168 }
169 _ => {}
170 }
171 }
172 "Pss2ST.lsmin" => {
173 match val {
174 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.lsmin = Some(v); } }
175 crate::base::FieldValue::TextList(svs) => {
176 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.lsmin = Some(v); } }
177 }
178 _ => {}
179 }
180 }
181 "Pss2ST.t1" => {
182 match val {
183 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t1 = Some(v); } }
184 crate::base::FieldValue::TextList(svs) => {
185 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t1 = Some(v); } }
186 }
187 _ => {}
188 }
189 }
190 "Pss2ST.t10" => {
191 match val {
192 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t10 = Some(v); } }
193 crate::base::FieldValue::TextList(svs) => {
194 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t10 = Some(v); } }
195 }
196 _ => {}
197 }
198 }
199 "Pss2ST.t2" => {
200 match val {
201 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t2 = Some(v); } }
202 crate::base::FieldValue::TextList(svs) => {
203 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t2 = Some(v); } }
204 }
205 _ => {}
206 }
207 }
208 "Pss2ST.t3" => {
209 match val {
210 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t3 = Some(v); } }
211 crate::base::FieldValue::TextList(svs) => {
212 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t3 = Some(v); } }
213 }
214 _ => {}
215 }
216 }
217 "Pss2ST.t4" => {
218 match val {
219 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t4 = Some(v); } }
220 crate::base::FieldValue::TextList(svs) => {
221 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t4 = Some(v); } }
222 }
223 _ => {}
224 }
225 }
226 "Pss2ST.t5" => {
227 match val {
228 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t5 = Some(v); } }
229 crate::base::FieldValue::TextList(svs) => {
230 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t5 = Some(v); } }
231 }
232 _ => {}
233 }
234 }
235 "Pss2ST.t6" => {
236 match val {
237 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t6 = Some(v); } }
238 crate::base::FieldValue::TextList(svs) => {
239 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t6 = Some(v); } }
240 }
241 _ => {}
242 }
243 }
244 "Pss2ST.t7" => {
245 match val {
246 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t7 = Some(v); } }
247 crate::base::FieldValue::TextList(svs) => {
248 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t7 = Some(v); } }
249 }
250 _ => {}
251 }
252 }
253 "Pss2ST.t8" => {
254 match val {
255 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t8 = Some(v); } }
256 crate::base::FieldValue::TextList(svs) => {
257 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t8 = Some(v); } }
258 }
259 _ => {}
260 }
261 }
262 "Pss2ST.t9" => {
263 match val {
264 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.t9 = Some(v); } }
265 crate::base::FieldValue::TextList(svs) => {
266 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.t9 = Some(v); } }
267 }
268 _ => {}
269 }
270 }
271 "Pss2ST.vcl" => {
272 match val {
273 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.vcl = Some(v); } }
274 crate::base::FieldValue::TextList(svs) => {
275 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.vcl = Some(v); } }
276 }
277 _ => {}
278 }
279 }
280 "Pss2ST.vcu" => {
281 match val {
282 crate::base::FieldValue::Text(sv) => { if let Ok(v) = sv.trim().parse() { obj.vcu = Some(v); } }
283 crate::base::FieldValue::TextList(svs) => {
284 if let Some(sv) = svs.last() { if let Ok(v) = sv.trim().parse() { obj.vcu = Some(v); } }
285 }
286 _ => {}
287 }
288 }
289 "PowerSystemStabilizerDynamics.ExcitationSystemDynamics" => {
290 if let crate::base::FieldValue::Resource(sv) = val {
291 obj.base.excitation_system_dynamics = Some(crate::base::MridRef { mrid: sv.clone() });
292 }
293 }
294 "DynamicsFunctionBlock.enabled" => {
295 match val {
296 crate::base::FieldValue::Text(sv) => { obj.base.base.enabled = Some(sv.trim() == "true"); }
297 crate::base::FieldValue::TextList(svs) => {
298 if let Some(sv) = svs.last() { obj.base.base.enabled = Some(sv.trim() == "true"); }
299 }
300 _ => {}
301 }
302 }
303 "IdentifiedObject.description" => {
304 match val {
305 crate::base::FieldValue::Text(sv) => { obj.base.base.base.description = sv.clone(); }
306 crate::base::FieldValue::TextList(svs) => {
307 if let Some(sv) = svs.last() { obj.base.base.base.description = sv.clone(); }
308 }
309 _ => {}
310 }
311 }
312 "IdentifiedObject.energyIdentCodeEic" => {
313 match val {
314 crate::base::FieldValue::Text(sv) => { obj.base.base.base.energy_ident_code_eic = sv.clone(); }
315 crate::base::FieldValue::TextList(svs) => {
316 if let Some(sv) = svs.last() { obj.base.base.base.energy_ident_code_eic = sv.clone(); }
317 }
318 _ => {}
319 }
320 }
321 "IdentifiedObject.mRID" => {
322 match val {
323 crate::base::FieldValue::Text(sv) => { obj.base.base.base.m_rid = sv.clone(); }
324 crate::base::FieldValue::TextList(svs) => {
325 if let Some(sv) = svs.last() { obj.base.base.base.m_rid = sv.clone(); }
326 }
327 _ => {}
328 }
329 }
330 "IdentifiedObject.name" => {
331 match val {
332 crate::base::FieldValue::Text(sv) => { obj.base.base.base.name = sv.clone(); }
333 crate::base::FieldValue::TextList(svs) => {
334 if let Some(sv) = svs.last() { obj.base.base.base.name = sv.clone(); }
335 }
336 _ => {}
337 }
338 }
339 "IdentifiedObject.shortName" => {
340 match val {
341 crate::base::FieldValue::Text(sv) => { obj.base.base.base.short_name = sv.clone(); }
342 crate::base::FieldValue::TextList(svs) => {
343 if let Some(sv) = svs.last() { obj.base.base.base.short_name = sv.clone(); }
344 }
345 _ => {}
346 }
347 }
348 _ => {}
349 }
350 }
351 obj
352 }
353}