Implement new event subscription modes sync/async/noread

Closes #691 (closed)

This is continuation of job, done by @jairomoldes

Following cppTango, here we implement pytango part of asynchronous event subscription:

Enums: EventSubMode and EventReason enums were added. But, due to they are implemented with enum class and we are exporting enums with pybind11::enum_, we also got the problem, that PyTango enums are not implicitly convertible with int, so we cannot send int as arg, or compare Enum with int. This can be automatically solved with pybind11::natuve_enum

Subscribe event: new event_sub_mode=None (in python) and std::optional<Tango::EventSubMode> event_sub_mode (in cpp) arg was added to the DeviceProxy.subscribe_event_global and DeviceProxy.subscribe_event_attrib methods

EventsData: event_reason member was added to the EventData, DevIntrChangeEventData, DataReadyEventData and AttrConfEventData

I also added tests for async subscription, trying to check timing too

Edited by Yury Matveev

Merge request reports

Loading