Skip to content

Picoscope followup issues #187

@wirew0rm

Description

@wirew0rm

#183 concluded the initial refactoring of the Picoscope block, but unfortunately some of the tasks from #167 could not be fully implemented there. Additionally during roll-out some more issues have been identified.

The main open issues are:

  • Block error handling

  • Multiple tags on the same sample

  • Testing of error paths and broader configuration envelope, especially for higher sampling rates

  • Better handling of internal buffer sizes.

  • Generating events in the case where no global timing events are played

  • Polling strategy for streaming

    • for streaming the chunk size cannot be directly influenced, but adding some kind of rate-limiting to the polling API might be beneficial. Implementing it in the block is trivial, but it could be better if the scheduler could handle this as there is quite some work that has to be done before the block can do an early return.
  • Timing block pulse configuration

    • should be simplified: default pulse if no timings are specified, dependent on sampling rate.
    • should check or enforce that ports configured to generate a trigger pulse are actually enabled and configured as outputs
  • Actual sample rate

    • The actual sample rate can differ from the value configured by the user. We already obtain actualFreq from the PicoScope API. Since the sample rate is used in multiple places where correctness depends on it, we should identify every usage of sample_rate and update the implementation so that the actual sample rate is used consistently wherever required.
    • There is also a second class of problems: even if the scope reports actualFreq, the effective sample rate may be lower (e.g., bandwidth limits, USB/driver constraints, CPU load / scheduling delays). We should detect such situations and warn the user, because a reduced effective rate can break assumptions in the matcher and any algorithms that rely on the sampling frequency.
  • Investigate and implement similar test coverage inspired by the existing SAT test cases:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    📋 Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions