Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » 4DIAC - Framework for Distributed Industrial Automation and Control » Eventqueue runs full(Questions about the eventqueue)
Eventqueue runs full [message #1839110] Sun, 14 March 2021 15:05 Go to next message
Christoph Schultz is currently offline Christoph SchultzFriend
Messages: 5
Registered: February 2021
Junior Member
I have build the following set up:
- 1 Forte Instance that reads messages from a mqtt broker runnning on a raspberry pie and decodes the messages to certain commands
these are send via publish and subsribe blocks to another forte
- 1 Forte Instance that will execute commands running on an EV3

I sometimes get the Error that the eventqueue runs full.
Which leads to the system (EV3) beeing not responsive anymore and executing the last command eternally.

I only used QW and QX + some convert Blocks on the EV3 to minimize the load on this part.

In another topic i read something like you can increase the size of the queue.
How would i do that? Could that even help.
I already reduced the incomming events by
a) synchronizing/merging events
b) building little "pause" statements in the Python Skript that i use to send the mqtt messages.

How do i find out, which block has a full event queue?
How do i increase the number of events allowed in the queue
Is there a mechanism, that can help preventing system failure, when the queue runs full. E.g flush the queue?

Even some kind of emergency stop could not reach the EV3 since that would be event trigged also, and new events are ignored.

Also i would like to build in some measurements for the timing.
I found that you implemented some kind of TIME() function.

Are there ways to synchronize the time between all the device that participate in this distributed system?
E.g. with NTP?
Or is that something that i would have to implement myself as a service fb?

Best Regards
Re: Eventqueue runs full [message #1839116 is a reply to message #1839110] Sun, 14 March 2021 19:59 Go to previous message
Alois Zoitl is currently offline Alois ZoitlFriend
Messages: 1213
Registered: January 2014
Senior Member

sofar in most of the cases when an event queue gets full increasing the event queue delays the problem only a bit and does not cure the root cause. In the default setup you have one internal and one external event queue per resource. You can increase both sizes in the advanced section of the CMake setup.

How many messages are you sending. What is the time between them? Is it possible to have a look on the app part running on EV3? You can also send it to my email if you don't want to publish it publicly.

Since 4diac FORTE 1.13.0 we have two functions one is NOW() and one is NOW_MONOTONIC. The first gives you the current time as DATE_AND_TIME based on the OS time. If you have timesynch in your OS you will also have synced times in 4diac FORTE. I think Martin who made both also implemented them as FBs.

I hope this helps,
Previous Topic:Error compiling on freeRTOS+lwip
Goto Forum:

Current Time: Sun May 16 19:39:45 GMT 2021

Powered by FUDForum. Page generated in 0.02347 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top