#ifndef DISTRIO_CONTROLLER_IDL #define DISTRIO_CONTROLLER_IDL #include "common.idl" #include "io.idl" /** * @brief logical view of IO's and Devices (not HW specific) * * @author Manuel Traut * @copyright GPLv2 */ module Controller { /** * @brief manage io/device lists, error handling * * - all modules need to register their IOs and devices * - registered IOs and devices can be obtained */ interface Manager { /** returns list of registered digital IOs */ Common::Error digital (out IO::Digital_list io_list); /** returns list of registered analog IOs */ Common::Error analog (out IO::Analog_list io_list); /** returns list of registered devices */ Common::Error device (out IO::Device_list dev_list); /** register a digital IO */ Common::Error register_io_digital (in IO::Analog io_ana); /** register a analog IO */ Common::Error register_io_analog (in IO::Digital io_dig); /** register a device */ Common::Error register_io_device (in IO::Device io_dev); /** unregister a digital IO */ Common::Error unregister_io_digital (in IO::Digital io_dig); /** unregister a analog IO */ Common::Error unregister_io_analog (in IO::Analog io_ana); /** unregister a device */ Common::Error unregister_io_device (in IO::Device io_dev); /** used by modules to send errors to a central point * The implementation of this function could: * - thispatch errors to a GUI * - log the errors e.g. with log4* */ void log_error (in Common::Error error); }; }; #endif