PymateIO-Delaying

From pymate.io wiki
Jump to navigation Jump to search


Abstract

The "Cycle Timing" tutorial state the following:


NEVER USE BLOCKING INSTRUCTION in the mainloop

Blocking instruction locks the script execution in a waiting state... whereas critical operation may requires quick reaction from the script.


The sleep(), sleep_ms() are BLOCKING INSTRUCTIONS.
They should never be used in your script, neither in the mainloop

The solution for this is:

  • use the DelayTimer class
  • set the delay on the DelayTimer when the source event occurs.
  • check the DelayTimer.done at every mainloop cycle.
  • Once done, it is time to executed the delayed code.

Remark: the done will be True only once for every set()!


PymateIO all right reserved © 2026 - Written by MCHobby for PymateIO