Skip to content

Commit d5b2235

Browse files
committed
refactor: add error handeling to missing objects
1 parent eed6930 commit d5b2235

File tree

2 files changed

+93
-32
lines changed

2 files changed

+93
-32
lines changed

src/components/GroundTruthHierarchyPanel.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,7 @@ function GroundTruthHierarchyPanel({ context }: { context: PanelExtensionContext
126126
<span>{warning.message}</span>
127127
</div>
128128

129-
{showTooltip && (
129+
{showTooltip && warning.missingKeys.length > 0 && (
130130
<div
131131
style={{
132132
position: "absolute",

src/hooks/useGroundTruthHierarchy.ts

Lines changed: 92 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ export default function useGroundTruthHierarchy(): GroundTruthHierarchy {
155155

156156
const schemaType = detectSchemaType(rawMessage);
157157

158-
if (!schemaType || (schemaType !== "SensorView" && schemaType !== "GroundTruth")) {
158+
if (!schemaType) {
159159
console.error(`Schema ${params.schemaName} does not match ASAM OSI structure`);
160160
setError(`Schema does not match ASAM OSI structure`);
161161
return [];
@@ -178,36 +178,97 @@ export default function useGroundTruthHierarchy(): GroundTruthHierarchy {
178178
missingKeys: [],
179179
});
180180
}
181-
const host_vehicle = message.moving_object
182-
?.filter((x) => x.id.value === message.host_vehicle_id.value)
183-
?.map((x) =>
184-
createTreeItem("Vehicles/Host Vehicle/Host Vehicle", x.id.value, params.receiveTime),
185-
);
186-
const traffic_vehicles = message.moving_object
187-
?.filter(
188-
(x) => x.type === MovingObject_Type.VEHICLE && x.id.value !== message.host_vehicle_id.value,
189-
)
190-
?.map((x) =>
191-
createTreeItem("Vehicles/Traffic Vehicles/Traffic Vehicle", x.id.value, params.receiveTime),
192-
);
193-
const pedestrians = message.moving_object
194-
?.filter((x) => x.type === MovingObject_Type.PEDESTRIAN)
195-
?.map((x) => createTreeItem("Pedestrians/Pedestrian", x.id.value, params.receiveTime));
196-
const stationary_objects = message.stationary_object?.map((x) =>
197-
createTreeItem("Stationary Objects/Stationary Object", x.id.value, params.receiveTime),
198-
);
199-
const lanes = message.lane?.map((x) =>
200-
createTreeItem("Lanes/Lane", x.id.value, params.receiveTime),
201-
);
202-
const lane_boundaries = message.lane_boundary?.map((x) =>
203-
createTreeItem("Lane Boundaries/Lane Boundary", x.id.value, params.receiveTime),
204-
);
205-
const traffic_signs = message.traffic_sign?.map((x) =>
206-
createTreeItem("Traffic Signs/Traffic Sign", x.id.value, params.receiveTime),
207-
);
208-
const traffic_lights = message.traffic_light?.map((x) =>
209-
createTreeItem("Traffic Lights/Traffic Light", x.id.value, params.receiveTime),
210-
);
181+
let host_vehicle: BaseParam[] = [],
182+
traffic_vehicles: BaseParam[] = [],
183+
pedestrians: BaseParam[] = [],
184+
stationary_objects: BaseParam[] = [],
185+
lanes: BaseParam[] = [],
186+
lane_boundaries: BaseParam[] = [],
187+
traffic_signs: BaseParam[] = [],
188+
traffic_lights: BaseParam[] = [];
189+
190+
try {
191+
host_vehicle =
192+
message.moving_object
193+
?.filter((x) => x.id.value === message.host_vehicle_id.value)
194+
?.map((x) =>
195+
createTreeItem("Vehicles/Host Vehicle/Host Vehicle", x.id.value, params.receiveTime),
196+
) || [];
197+
} catch (error) {
198+
console.error("Error processing host_vehicle:", error);
199+
}
200+
201+
try {
202+
traffic_vehicles =
203+
message.moving_object
204+
?.filter(
205+
(x) =>
206+
x.type === MovingObject_Type.VEHICLE && x.id.value !== message.host_vehicle_id.value,
207+
)
208+
?.map((x) =>
209+
createTreeItem(
210+
"Vehicles/Traffic Vehicles/Traffic Vehicle",
211+
x.id.value,
212+
params.receiveTime,
213+
),
214+
) || [];
215+
} catch (error) {
216+
console.error("Error processing traffic_vehicles:", error);
217+
}
218+
219+
try {
220+
pedestrians =
221+
message.moving_object
222+
?.filter((x) => x.type === MovingObject_Type.PEDESTRIAN)
223+
?.map((x) => createTreeItem("Pedestrians/Pedestrian", x.id.value, params.receiveTime)) ||
224+
[];
225+
} catch (error) {
226+
console.error("Error processing pedestrians:", error);
227+
}
228+
229+
try {
230+
stationary_objects =
231+
message.stationary_object?.map((x) =>
232+
createTreeItem("Stationary Objects/Stationary Object", x.id.value, params.receiveTime),
233+
) || [];
234+
} catch (error) {
235+
console.error("Error processing stationary_objects:", error);
236+
}
237+
238+
try {
239+
lanes =
240+
message.lane?.map((x) => createTreeItem("Lanes/Lane", x.id.value, params.receiveTime)) ||
241+
[];
242+
} catch (error) {
243+
console.error("Error processing lanes:", error);
244+
}
245+
246+
try {
247+
lane_boundaries =
248+
message.lane_boundary?.map((x) =>
249+
createTreeItem("Lane Boundaries/Lane Boundary", x.id.value, params.receiveTime),
250+
) || [];
251+
} catch (error) {
252+
console.error("Error processing lane_boundaries:", error);
253+
}
254+
255+
try {
256+
traffic_signs =
257+
message.traffic_sign?.map((x) =>
258+
createTreeItem("Traffic Signs/Traffic Sign", x.id.value, params.receiveTime),
259+
) || [];
260+
} catch (error) {
261+
console.error("Error processing traffic_signs:", error);
262+
}
263+
264+
try {
265+
traffic_lights =
266+
message.traffic_light?.map((x) =>
267+
createTreeItem("Traffic Lights/Traffic Light", x.id.value, params.receiveTime),
268+
) || [];
269+
} catch (error) {
270+
console.error("Error processing traffic_lights:", error);
271+
}
211272

212273
return [
213274
...host_vehicle,

0 commit comments

Comments
 (0)