mirror of
https://github.com/jonathanhogg/scopething
synced 2025-07-13 18:52:10 +01:00
Correct two howling errors in the capture logic – how did I not notice these before?
This commit is contained in:
20
scope.py
20
scope.py
@ -236,15 +236,7 @@ class Scope(vm.VirtualMachine):
|
||||
if trigger_level is None:
|
||||
trigger_level = (high + low) / 2
|
||||
analog_trigger_level = (trigger_level - analog_params.offset) / analog_params.scale if not raw else trigger_level
|
||||
if trigger in {'A', 'B'}:
|
||||
if trigger == 'A':
|
||||
spock_option |= vm.SpockOption.TriggerSourceA
|
||||
trigger_logic = 0x80
|
||||
elif trigger == 'B':
|
||||
spock_option |= vm.SpockOption.TriggerSourceB
|
||||
trigger_logic = 0x40
|
||||
trigger_mask = 0xff ^ trigger_logic
|
||||
elif isinstance(trigger, dict):
|
||||
if isinstance(trigger, dict):
|
||||
trigger_logic = 0
|
||||
trigger_mask = 0xff
|
||||
for channel, value in trigger.items():
|
||||
@ -259,6 +251,14 @@ class Scope(vm.VirtualMachine):
|
||||
trigger_mask &= ~mask
|
||||
if value:
|
||||
trigger_logic |= mask
|
||||
elif trigger in {'A', 'B'}:
|
||||
if trigger == 'A':
|
||||
spock_option |= vm.SpockOption.TriggerSourceA
|
||||
trigger_logic = 0x80
|
||||
elif trigger == 'B':
|
||||
spock_option |= vm.SpockOption.TriggerSourceB
|
||||
trigger_logic = 0x40
|
||||
trigger_mask = 0xff ^ trigger_logic
|
||||
else:
|
||||
raise ValueError("Unrecognised trigger value")
|
||||
trigger_type = trigger_type.lower()
|
||||
@ -357,7 +357,7 @@ class Scope(vm.VirtualMachine):
|
||||
series.trigger_timestamp = series.timestamps[trigger_samples]
|
||||
series.trigger_level = trigger[i]
|
||||
series.trigger_type = trigger_type
|
||||
traces[channel] = series
|
||||
traces[channel] = series
|
||||
Log.info(f"{nsamples} samples captured on {cause}, traces: {', '.join(traces)}")
|
||||
return traces
|
||||
|
||||
|
Reference in New Issue
Block a user