This new version of MDX contains many changes. As I finalize them, I am posting about them to keep you informed.

The newest of which I think is finished is multi-threading. The older versions of MDX and actually all previous Fusion Control Centre software relied on 1 main processing thread. Everything was done inside this one thread and that meant if performing the logic section took a really really long time, then it had to wait to read and write to the actual Fusion Brain, and had to wait to update the graphic interface and everything. So the program may seem unresponsive but it is just doing things in the background. Well now the main thread runs the graphics, and there are seperate threads for reading to and from the Fusion Brain as well as a seperate thread to evaluate the logic.

Also, by doing this, when the thread is not in use, I now put it to sleep for a period of time, making it use almost 0% CPU when asleep. Now it only sleeps for a few milliseconds at a time (the intervals for the timers) but that is a few more milliseconds every loop that is not using the CPU. And this adds up as shown in the images.

Another change is that there are now only 3 timers. Logic, GUI, and IO. Input and Output now share the same timer/thread. This one you wont really notice as much, but now the outputs and inputs refresh the same.




Previous version of MDX (NO THREADING)


New version of MDX (WITH THREADING)