diff options
Diffstat (limited to 'pyecsca/sca/scope/chipwhisperer.py')
| -rw-r--r-- | pyecsca/sca/scope/chipwhisperer.py | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/pyecsca/sca/scope/chipwhisperer.py b/pyecsca/sca/scope/chipwhisperer.py index 60fe7cf..8f5590d 100644 --- a/pyecsca/sca/scope/chipwhisperer.py +++ b/pyecsca/sca/scope/chipwhisperer.py @@ -1,47 +1,56 @@ -from typing import Optional, Tuple, Sequence +from typing import Optional, Tuple, Sequence, Set import numpy as np -from chipwhisperer.capture.scopes.base import ScopeTemplate +from chipwhisperer.capture.scopes.OpenADC import OpenADC from public import public from .base import Scope + @public -class ChipWhispererScope(Scope): +class ChipWhispererScope(Scope): # pragma: no cover """A ChipWhisperer based scope.""" - def __init__(self, scope: ScopeTemplate): + def __init__(self, scope: OpenADC): self.scope = scope + self.triggers: Set[str] = set() def open(self) -> None: self.scope.con() @property def channels(self) -> Sequence[str]: - return ["tio1", "tio2", "tio3", "tio4"] + return [] def setup_frequency(self, frequency: int, samples: int) -> Tuple[int, int]: - pass + self.scope.clock.clkgen_freq = frequency + self.scope.samples = samples + return self.scope.clock.freq_ctr, self.scope.samples def setup_channel(self, channel: str, coupling: str, range: float, enable: bool) -> None: pass def setup_trigger(self, channel: str, threshold: float, direction: str, delay: int, timeout: int, enable: bool) -> None: - pass + if enable: + self.triggers.add(channel) + elif channel in self.triggers: + self.triggers.remove(channel) + self.scope.adc.basic_mode = direction + self.scope.trigger.triggers = " OR ".join(self.triggers) def setup_capture(self, channel: str, enable: bool) -> None: pass def arm(self) -> None: - pass + self.scope.arm() def capture(self, channel: str, timeout: Optional[int] = None) -> Optional[np.ndarray]: - pass + self.scope.capture() + return self.scope.get_last_trace() def stop(self) -> None: pass def close(self) -> None: - pass - + self.scope.dis() |
