tabbed frametype filtering
This commit is contained in:
@@ -256,21 +256,31 @@ class FlowManager:
|
||||
decoded = ch10_info['decoded_payload']
|
||||
data_type_name = decoded.get('data_type_name', 'CH10-Data')
|
||||
|
||||
# Simplify timing frame names for display
|
||||
# For timing analysis purposes, group frames by their actual timing behavior
|
||||
# rather than their semantic meaning. Based on debug analysis:
|
||||
# - Some timing frames have ~26s intervals (high-level timing)
|
||||
# - Other frames (including some timing) have ~100ms intervals (data stream)
|
||||
|
||||
# Keep high-level timing frames separate (they have very different timing)
|
||||
if 'ACTTS' in data_type_name:
|
||||
return 'CH10-ACTTS'
|
||||
# Note: Extended Timing frames often have the same ~100ms timing as data frames
|
||||
# so they should be grouped with CH10-Data for accurate timing analysis
|
||||
elif 'Sync' in data_type_name and 'Custom' in data_type_name:
|
||||
return 'CH10-Sync'
|
||||
elif 'Clock' in data_type_name and 'Custom' in data_type_name:
|
||||
return 'CH10-Clock'
|
||||
elif ('Time' in data_type_name or 'Timing' in data_type_name) and 'Custom' in data_type_name:
|
||||
# Custom timing frames often have the 26s interval pattern
|
||||
if 'Time' in data_type_name:
|
||||
return 'CH10-Time'
|
||||
else:
|
||||
return 'CH10-Timing'
|
||||
# Special data types that should remain separate
|
||||
elif 'GPS NMEA' in data_type_name:
|
||||
return 'CH10-GPS'
|
||||
elif 'EAG ACMI' in data_type_name:
|
||||
return 'CH10-ACMI'
|
||||
elif 'Custom' in data_type_name and 'Timing' in data_type_name:
|
||||
# Extract variant for custom timing
|
||||
if 'Variant 0x04' in data_type_name:
|
||||
return 'CH10-ACTTS'
|
||||
elif 'Extended Timing' in data_type_name:
|
||||
return 'CH10-ExtTiming'
|
||||
else:
|
||||
return 'CH10-Timing'
|
||||
elif 'Ethernet' in data_type_name:
|
||||
return 'CH10-Ethernet'
|
||||
elif 'Image' in data_type_name:
|
||||
@@ -279,10 +289,10 @@ class FlowManager:
|
||||
return 'CH10-UART'
|
||||
elif 'CAN' in data_type_name:
|
||||
return 'CH10-CAN'
|
||||
elif 'Unknown' not in data_type_name:
|
||||
# Extract first word for other known types
|
||||
first_word = data_type_name.split()[0]
|
||||
return f'CH10-{first_word}'
|
||||
# Everything else gets grouped as CH10-Data for consistent timing analysis
|
||||
# This includes: Multi-Source, regular timing frames, custom data types, etc.
|
||||
else:
|
||||
return 'CH10-Data'
|
||||
|
||||
return 'CH10-Data'
|
||||
|
||||
|
||||
Reference in New Issue
Block a user