tabbed frametype filtering

This commit is contained in:
2025-07-30 23:48:32 -04:00
parent 8d883f25c3
commit bb3eeb79d0
92 changed files with 33696 additions and 139 deletions

View File

@@ -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'