Skip to content

Commit 0112f6c

Browse files
committed
new adj boards logic
1 parent e853d3c commit 0112f6c

1 file changed

Lines changed: 72 additions & 42 deletions

File tree

backend/internal/adj/boards.go

Lines changed: 72 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
6181
func 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
90107
func 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

Comments
 (0)