Version 2.5.7

Important update

  • Corrects errors in the length specifications of the memory areas from the process image if the piCtory configurations have gaps. This has been discovered so far with the “Modbus Master 150” module. The error means that the IOs of modules behind the incomplete module are not correctly synchronized.
  • Flat: Switch button and relay are now available as real IO objects in the .core class:
    .core.relais
    .core.switch

DOWNLOAD

Version 2.5.6

Important update!

  • Fixes cycle problem with shared_procimg=True
    As soon as a new value was assigned to an output, RevPiModIO immediately wrote it into the process image. Outputs may only be written to the process image after the cycle function has been completely processed (when using .cycleloop) or after calling .writeprocimg.
    The error is not relevant when using .mainloop.

DOWNLOAD

Version 2.5.5

Important update

  • Implementation of RevPi Flat (still without .core IOs).
  • Hardening of NetIO (process image over the network).
  • The call .cycleloop now accepts an optional blocking parameter. If you do not want the Cycleloop to be executed exclusively, blocking=False can be set – Same as blocking parameter of the .mainloop.
  • shared_procimg can now be set per device. This makes it possible, for example, to use only the core module as shared and the rest as exclusive.
    Each device now has the function .device.device_name.shared_procimg(activate: bool).
  • If shared_procimg=True, the new values are now also immediately set in the .io variables.
  • Bugfix: When shared_procimg=True, the .core.An LEDs were not set.
  • The .export flag of replaced IOs can be adjusted in the program at runtime. This setting is will be saved by .export_replaced_ios() in the configuration file – read from there.

DOWNLOAD

Version 2.5.3

Important update!

  • Bug fix in NetIO functions, which could lead to a crash in case of network errors.
  • IO objects are now callable. The actual value will be returned via .io.name() or set with .io.name(True). This has the same function as .io.name.value, which is of course still available.
  • New pictory module, which is designed for the AIO, DI, DO and DIO Module provides constants of the MEM values, which you configure in piCtory. So you can query the settings in your program by using the constants (thanks Theo!).

DOWNLOAD

Version 2.5.0

Important update!

This update includes support for the Revolution Pi Compact.

In addition, the handling for .cycleloop(...) has been improved and the Cycletools now also contain .device, .core, .io. This means that you can access the IOs directly without having to go directly via the RevPiModIO object.

In addition, the .core class now always has the .wd output and the .wd_toggle() function, which was only available on the Connect. The software watchdog can be used with the current version of RevPiPyLoad.

DOWNLOAD

Version 2.4.5

Important update!

  • NetIO got massive stability and speed improvements, as well as a watchdog. (Requires RevPiPyLoad from 0.8.5).
  • The Cycletools now have the .last flag, which if True indicates the last cycle before the end of the program. By querying that value, clean-up work can be done in the cycle function.
  • Less resource consumption with autorefresh and query bit IO values.
  • Parameter direct_output has been renamed to shared_procimg. Old name can still be used, but triggers a “DeprecationWarning”.
  • Improved synchronization of the loops when leaving the program (.exit / .cleanup).
  • For MEM type IOs, the value now returns the configured value from piCtory (raw value).

DOWNLOAD

Version 2.4.2

Important update!

This update fixes minor common errors and critical errors in network functions!

  • Fixed an issue with all RevPiNetIO classes that prevented a reconnect under certain circumstances.
  • Bug fix when using prefire and as_thread in .reg_event(...).
  • Error correction in export file for replaced IOs
  • Error correction, setting delayed events to .core.ios, such as. .core.a1green, .core.x2in etc.
  • Warnings are issued once when errors occur and after the errors have been eliminated. No more warning floods in the console!
  • Error counter on process image improved.
  • The function .reg_event(...) accepts parameter prefire=True and will execute this event immediately on entering the .mainloop()[Doc].
  • All RevPiNetIO classes require RevPiPyLoad version at least 0.8.0!
  • RevPiNetIO classes have the attribute .reconnecting, which can be used to query whether the connection has been torn down temporarily.
  • All RevPiNetIO connections are disconnected when changing piCtory or replace_ios.conf. The attribute .config_changed will be True and a new instantiation is needed.
  • IOs exported with .replace_io(...) can be exported to a file and used by other instances or RevPiPyLoad / Control with .export_replace_ios().
  • Parameter replace_io_file for RevPiModIO introduced, for the import of the exported file. With RevPiNetIO :network: can be used to import this data via RevPiPyLoad over the network.
  • Added parameter direct_output at instantiation [Doc].
  • Indexed access to IOs via .device possible (.device.dio01[0].value).

DOWNLOAD

Version 2.3.2

This version mainly fixes errors in counter IOs

  • Counter IOs 8 – 16 can now also be reset with .reset ()
  • Runtime warnings have better error hints
  • debug argument introduced to get complete error messages
  • Format check implemented by .replace_io(...) for specific types
    Thanks to Nicolai Buchwitz
  • Improved argument checking on instantiation

DOWNLOAD

Version 2.3.1

This update introduces the counter-reset of DI / DIO modules!

  • Counter IOs now have the function .reset() to reset the counters on the DI / DIO modules.
    Note: The Wheezy (7) system does not support this in the piControl!
  • Counter can also be reset via RevPiNetIO over the network (RevPiPyLoad at least version 0.7.5).
  • Iterators now issue Python-conforming exceptions.
  • The function .replace_io(...) was offered for all IO objects, but can only be used with gateway or virtual devices. It is now only available on IOs that support this feature.
  • The .mainloop(...) now accepts the no_warn=True parameter to disable runtime warnings.

DOWNLOAD