1pub mod constant;
2pub mod helper;
3pub mod device;
4pub mod ltb_control;
5pub mod memory;
6pub mod pb_control;
7pub mod pa_control;
8pub mod rb_control;
9pub mod cpu_control;
10pub mod cpc_control;
11pub mod tcpc_control;
12pub mod switch_control;
13pub mod mtb_control;
14
15use serde_json;
17use serde::{Deserialize, Serialize};
18use crate::helper::{
19 rb_type::RBMoniData,
20 ltb_type::LTBMoniData,
21 pb_type::PBMoniData,
22 pa_type::PAMoniData,
23};
24
25#[derive(Debug, Serialize, Deserialize)]
27pub struct RATMoniData {
28 pub rb_data: RBMoniData,
29 #[serde(skip_serializing_if = "Option::is_none")]
30 pub ltb_data: Option<LTBMoniData>,
31 #[serde(skip_serializing_if = "Option::is_none")]
32 pub pb_data: Option<PBMoniData>,
33 #[serde(skip_serializing_if = "Option::is_none")]
34 pub pa_data: Option<PAMoniData>,
35}
36
37impl RATMoniData {
38 pub fn new() -> Self {
39 let rb_data = RBMoniData::new();
40 let sub_board = rb_data.rb_info.sub_board;
41
42 let mut ltb_data = None;
43 if sub_board == 1 {
44 ltb_data = Some(LTBMoniData::new());
45 }
46
47 let mut pb_data = None;
48 let mut pa_data = None;
49 if sub_board == 2 {
50 pb_data = Some(PBMoniData::new());
51 pa_data = Some(PAMoniData::new());
52 }
53
54 Self {
55 rb_data,
56 ltb_data,
57 pb_data,
58 pa_data,
59 }
60 }
61 pub fn print(&self) {
62 println!("RB Data:");
63 println!("{:?}", &self.rb_data);
64 if let Some(ltb_data) = &self.ltb_data {
65 println!("LTB Data:");
66 println!("{:?}", ltb_data);
67 }
68 if let Some(pb_data) = &self.pb_data {
69 println!("PB Data:");
70 println!("{:?}", pb_data);
71 }
72 if let Some(pa_data) = &self.pa_data {
73 println!("PA Data:");
74 println!("{:?}", pa_data);
75 }
76 }
77 pub fn print_json(&self) {
78 match serde_json::to_string(self) {
79 Ok(rat_moni_json) => {
80 println!("{}", rat_moni_json);
81 }
82 Err(e) => {
83 eprintln!("RATMoniData JSON Error: {}", e);
84 }
85 }
86 }
87}
88
89
90