Files
HLA_TLC59731/HighLevelAnalyzer.py
2025-12-24 00:08:23 +01:00

66 lines
2.4 KiB
Python

# High Level Analyzer
# For more information and documentation, please go to https://support.saleae.com/extensions/high-level-analyzer-extensions
from saleae.analyzers import HighLevelAnalyzer, AnalyzerFrame, NumberSetting, StringSetting, ChoicesSetting
# High level analyzers must subclass the HighLevelAnalyzer class.
class Hla(HighLevelAnalyzer):
# List of settings that a user can set for this High Level Analyzer.
my_string_setting = StringSetting()
# my_number_setting = NumberSetting(min_value=0, max_value=100)
my_choices_setting = ChoicesSetting(choices=('A', 'B'))
# An optional list of types this analyzer produces, providing a way to customize the way frames are displayed in Logic 2.
result_types = {
'mytype': {
'format': 'Output type: {{type}}, Input type: {{data.input_type}}'
}
}
def __init__(self):
'''
Initialize HLA.
Settings can be accessed using the same name used above.
'''
print("Settings:", self.my_string_setting, self.my_choices_setting)
# self.my_number_setting, self.my_choices_setting)
def decode(self, frame: AnalyzerFrame):
'''
Process a frame from the input analyzer, and optionally return a single `AnalyzerFrame` or a list of `AnalyzerFrame`s.
The type and data values in `frame` will depend on the input analyzer.
'''
if frame.data['data'] >> 24 == 58:
command = "write command"
else:
command = "unknown"
# data = frame.data['data'] >> 24
blue = frame.data['data'] >> 16 & 0xFF
red = frame.data['data'] >> 8 & 0xFF
green = frame.data['data'] & 0xFF
# = frame.data['ledData']
# bytes[1] = frame.data['ledData'] >> 16 & 0xFF
# bytes[2] = frame.data['ledData'] >> 8 & 0xFF
# bytes[3] = frame.data['ledData'] & 0xFF
# print(frame)
# print("Hallo Welt")
# print(frame)
# print(frame)
# print(frame)
# print(frame.data[''])
# Return the data frame itself
return AnalyzerFrame('LED', frame.start_time, frame.end_time, {
'input_type': frame.type,
'command': command,
'cycletime': str(frame.data['cycletime'])+"ns",
"blue": blue,
"red": red,
"green": green,
})