beremiz

Rework of runtime non-real-time threading, and shared object dynamic loading :
- All exposed operations on PLCObject are now serialized through main thread
(@RunInMain). Only one exception : python trace thread calling _GetDebugData
- Re-loading of same shared object is prevented. dlclose/delte/rewrite/dlopen
don't happen in that case. This is a workaround for some xenomai copperplate
bug triggering segfault, inbetween delete and rewrite.
- Trace thread now waits for data, dies if no data, and dies instead of
suspending as before when no data consumed after 3 seconds.
- Disabled threading in Pyro client
- Enforced auxiliary threads starting sequence : Pyro -> [UI] ->
PLCWorker.RunLoop
Beremiz installation
====================
Windows
-------
Download installer, install.
Linux
-----
Pre-requisites::
# Ubuntu/Debian :
sudo apt-get install python-wxgtk2.8 pyro mercurial
sudo apt-get install build-essential bison flex python-numpy python-nevow
Prepare::
mkdir ~/Beremiz
cd ~/Beremiz
Get Source Code::
cd ~/Beremiz
hg clone http://dev.automforge.net/beremiz
hg clone http://dev.automforge.net/plcopeneditor
hg clone http://dev.automforge.net/matiec
Build MatIEC compiler::
cd ~/Beremiz/matiec
./configure
make
Build CanFestival (optional)::
# Only needed for CANopen support. Please read CanFestival
# manual to choose CAN interface other than 'virtual'::
cd ~/Beremiz
hg clone http://dev.automforge.net/CanFestival-3
cd ~/Beremiz/CanFestival-3
./configure --can=virtual
make
Launch Beremiz::
cd ~/Beremiz/beremiz
python Beremiz.py