Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

asyn: throttle rate of serial commands to device #7143

Closed
FreddieAkeroyd opened this issue May 10, 2022 · 1 comment
Closed

asyn: throttle rate of serial commands to device #7143

FreddieAkeroyd opened this issue May 10, 2022 · 1 comment
Assignees
Labels

Comments

@FreddieAkeroyd
Copy link
Member

FreddieAkeroyd commented May 10, 2022

As a developer I would like a way to control the maximum rate at which commands are sent to a device. Sometime a device manual states that there should be a minimum time between commands, or a maximum rate of commands. It is possible to add delays into Db files and/or stream device protocol, but this can get messy or things get missed.

Acceptance Criteria

To Test

  • pick an IOC that has a lot of 1 second scan loops
  • add something like asynInterposeThrottleConfig("L0",0, 0.1) to the st.cmd after port L0 is created
  • set the trace mask to 0xD to include filter output as per https://github.com/ISISComputingGroup/ibex_developers_manual/wiki/ASYN-Trace-Masks-(Debugging-IOC,-ASYN)
  • run the ioc system tests
  • check logs for lines like asynInterposeThrottle:writeIt L0 delaying 0.097989 seconds and that the timestamps on reads and writes look ok i.e. no two write lines occur less than the specified delay apart
@rerpha
Copy link
Contributor

rerpha commented May 18, 2022

Worked nicely for #6243 and clearly throttles commands

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants