Moderator: RevPiModIO

 
RiSpa
Topic Author
Posts: 3
Joined: 24 Mar 2022, 11:14

Cycle time exceeded without using cycleloop() or mainloop()

07 Dec 2022, 09:42

Hello,


The following Python script (IP-address is replaced by x's) gives continually repeated warnings resulting from line 5 (
pass
):
revpimodio2\helper.py:614: RuntimeWarning: cycle time of 50 ms exceeded - can not hold cycle time!
import revpimodio2
revpi_ip = "xxx.xxx.xxx.xxx"
rpi = revpimodio2.RevPiNetIO(revpi_ip, autorefresh=True)
while True:
    pass
This occurs due to
ProcimgWriter
instantiated by
RevPiNetIO
through
modio
, which cyclicly reads the IO values from the Revolution Pi.
Simply writing (or reading) an IO instead of performing some task in a while loop works just fine. Most likely because the program is able to finish within the first cycle.
However,
ProcimgWriter
should be run in a separate thread as I understand. That would mean that the while loop in the above script should not interfere and should not be the cause of any
RuntimeWarnings
.

Why is this happening and how do I solve it?


Kind regards, any help is appreciated!
 
User avatar
RevPiModIO
KUNBUS
Posts: 278
Joined: 20 Jan 2017, 08:44
Contact:

Re: Cycle time exceeded without using cycleloop() or mainloop()

07 Dec 2022, 09:56

Hi RiSpa!

Yes, the ProcimgWriter is a Thread, inside of your python process. Your code:
while True:
    pass
is using all resources of our process and the ProcimgWriter thread can not hold the cycle time.
python3-RevPiModIO - https://revpimodio.org/ || Der RevPi ist das Beste, was passieren konnte!

Who is online

Users browsing this forum: No registered users and 0 guests