@@ -36,7 +36,8 @@ func getBoards(boardsList map[string]string) (map[string]Board, error) {
3636 Name : boardName ,
3737 IP : boardJSON .IP ,
3838 }
39- board .Packets , err = getBoardPackets (boardJSON .PacketsPaths )
39+
40+ boardPackets , err := getBoardPackets (boardJSON .PacketsPaths )
4041 if err != nil {
4142 return nil , err
4243 }
@@ -45,11 +46,14 @@ func getBoards(boardsList map[string]string) (map[string]Board, error) {
4546 if err != nil {
4647 return nil , err
4748 }
48- board .LookUpMeasurements = make (map [string ]Measurement , len (board .Measurements ))
4949
50+ board .LookUpMeasurements = make (map [string ]Measurement , len (board .Measurements ))
5051 for _ , measurement := range board .Measurements {
5152 board .LookUpMeasurements [measurement .Id ] = measurement
5253 }
54+
55+ board .Packets = lookUpMeas (boardPackets , board .LookUpMeasurements )
56+
5357 board .Structures = getBoardStructures (board )
5458
5559 boards [boardName ] = board
@@ -58,8 +62,25 @@ func getBoards(boardsList map[string]string) (map[string]Board, error) {
5862 return boards , nil
5963}
6064
65+ func lookUpMeas (packetsTMP []Packet , lookUpMeas map [string ]Measurement ) []Packet {
66+ packetsFNL := make ([]Packet , 0 )
67+ for _ , packetTMP := range packetsTMP {
68+ measFNL := make ([]Measurement , 0 )
69+ for _ , measId := range packetTMP .VariablesIds {
70+ meas := lookUpMeas [measId ]
71+ measFNL = append (measFNL , meas )
72+ }
73+
74+ packetTMP .Variables = measFNL
75+ packetsFNL = append (packetsFNL , packetTMP )
76+ }
77+
78+ return packetsFNL
79+ }
80+
6181func getBoardPackets (packetsPaths []string ) ([]Packet , error ) {
6282 packets := make ([]Packet , 0 )
83+
6384 for _ , packetPath := range packetsPaths {
6485 if _ , err := os .Stat (packetPath ); os .IsNotExist (err ) {
6586 continue
@@ -70,95 +91,104 @@ func getBoardPackets(packetsPaths []string) ([]Packet, error) {
7091 return nil , err
7192 }
7293
73- // Magic happens here
74- type PacketJSON struct {
75- Packet []Packet `json:"packets"`
76- }
94+ packet := make ([]Packet , 0 )
7795
78- packetsJSON := PacketJSON {}
79- if err = json .Unmarshal (packetRaw , & packetsJSON ); err != nil {
96+ if err = json .Unmarshal (packetRaw , & packet ); err != nil {
8097 return nil , err
8198 }
82- for _ , packetTMP := range packetsJSON .Packet {
83- packets = append (packets , packetTMP )
84- }
99+
100+ packets = append (packets , packet ... )
85101 }
86102
87103 return packets , nil
88104}
89105
106+ // Absolutely doing tricks on it AGAIN, AGAIN - @msanlli
90107func getBoardMeasurements (measurementsPaths []string ) ([]Measurement , error ) {
91- measurementsTMP := make ([]MeasurementJSON , 0 )
108+ measurementsJSON := make ([]Measurement , 0 )
92109
93110 for _ , measurementPath := range measurementsPaths {
94111 if _ , err := os .Stat (measurementPath ); os .IsNotExist (err ) {
112+ println ("ADJ Error: Measurement file path not found" )
95113 continue
96114 }
97115
116+ measTMP := make ([]Measurement , 0 )
117+
98118 measurementRaw , err := os .ReadFile (measurementPath )
99119 if err != nil {
100120 return nil , err
101121 }
102122
103- // Absolutely doing tricks on it AGAIN - @msanlli
104- type MeasurementsJSON struct {
105- Measurements []MeasurementJSON `json:"measurements"`
106- }
107-
108- measurementsJSON := MeasurementsJSON {}
109- if err = json .Unmarshal (measurementRaw , & measurementsJSON ); err != nil {
123+ if err = json .Unmarshal (measurementRaw , & measTMP ); err != nil {
110124 return nil , err
111125 }
112- for _ , measurementTMP := range measurementsJSON .Measurements {
113- measurementsTMP = append (measurementsTMP , measurementTMP )
114- }
126+
127+ measurementsJSON = append (measurementsJSON , measTMP ... )
115128 }
116129
117- measurements , err := measTranslate (measurementsTMP )
130+ measurements , err := measTranslate (measurementsJSON )
118131 if err != nil {
119132 return nil , err
120133 }
121134
122135 return measurements , nil
123136}
124137
125- func measTranslate (measurementsTMP []MeasurementJSON ) ([]Measurement , error ) {
138+ func measTranslate (measurementsTMP []Measurement ) ([]Measurement , error ) {
126139 measurements := make ([]Measurement , 0 )
127140
128141 for _ , measJSON := range measurementsTMP {
129- safeRange , warningRange , err := getRanges (measJSON )
142+ var err error
143+
144+ measJSON .SafeRange , measJSON .WarningRange , err = getRanges (measJSON )
130145 if err != nil {
131146 return nil , err
132147 }
133148
134- measurements = append (measurements , Measurement {
135- Id : measJSON .Id ,
136- Name : measJSON .Name ,
137- Type : measJSON .Type ,
138- PodUnits : measJSON .PodUnits ,
139- DisplayUnits : measJSON .DisplayUnits ,
140- EnumValues : measJSON .EnumValues ,
141- SafeRange : safeRange ,
142- WarningRange : warningRange ,
143- })
149+ measurements = append (measurements , measJSON )
144150 }
145151
146152 return measurements , nil
147153}
148154
149- func getRanges (measTMP MeasurementJSON ) ([]* float64 , []* float64 , error ) {
155+ func getRanges (measTMP Measurement ) ([]* float64 , []* float64 , error ) {
150156 safeRange := make ([]* float64 , 0 )
151157 warningRange := make ([]* float64 , 0 )
152158
153159 if measTMP .OutOfRange .Safe == nil && measTMP .OutOfRange .Warning == nil {
154- safeRange = append (safeRange , measTMP .Below .Safe )
155- safeRange = append (safeRange , measTMP .Above .Safe )
160+ if measTMP .Below .Safe == nil {
161+ safeRange = nil
162+ } else {
163+ safeRange = append (safeRange , measTMP .Below .Safe )
164+ }
165+
166+ if measTMP .Above .Safe == nil {
167+ safeRange = nil
168+ } else {
169+ safeRange = append (safeRange , measTMP .Above .Safe )
170+ }
156171
157- warningRange = append (warningRange , measTMP .Below .Warning )
158- warningRange = append (warningRange , measTMP .Above .Warning )
172+ if measTMP .Below .Warning == nil {
173+ warningRange = nil
174+ } else {
175+ warningRange = append (warningRange , measTMP .Below .Warning )
176+ }
177+
178+ if measTMP .Above .Warning == nil {
179+ warningRange = nil
180+ } else {
181+ warningRange = append (warningRange , measTMP .Above .Warning )
182+ }
183+ } else if measTMP .OutOfRange .Safe == nil {
184+ safeRange = nil
185+ warningRange = append (warningRange , measTMP .OutOfRange .Warning ... )
186+ } else if measTMP .OutOfRange .Warning == nil {
187+ safeRange = append (safeRange , measTMP .OutOfRange .Safe ... )
188+ warningRange = nil
159189 } else {
160- safeRange = measTMP .OutOfRange .Safe
161- warningRange = measTMP .OutOfRange .Warning
190+ safeRange = append ( safeRange , measTMP .OutOfRange .Safe ... )
191+ warningRange = append ( warningRange , measTMP .OutOfRange .Warning ... )
162192 }
163193
164194 return safeRange , warningRange , nil
0 commit comments