@@ -155,7 +155,7 @@ export default function useGroundTruthHierarchy(): GroundTruthHierarchy {
155
155
156
156
const schemaType = detectSchemaType ( rawMessage ) ;
157
157
158
- if ( ! schemaType || ( schemaType !== "SensorView" && schemaType !== "GroundTruth" ) ) {
158
+ if ( ! schemaType ) {
159
159
console . error ( `Schema ${ params . schemaName } does not match ASAM OSI structure` ) ;
160
160
setError ( `Schema does not match ASAM OSI structure` ) ;
161
161
return [ ] ;
@@ -178,36 +178,97 @@ export default function useGroundTruthHierarchy(): GroundTruthHierarchy {
178
178
missingKeys : [ ] ,
179
179
} ) ;
180
180
}
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
+ }
211
272
212
273
return [
213
274
...host_vehicle ,
0 commit comments