Export fill_attr_polling_buffer and fill_cmd_polling_buffer
Closes #694 (closed)
By this MR I added export of Tango::Util::fill_attr_polling_buffer and Tango::Util::fill_cmd_polling_buffer
Since there we cannot directly export templated AttrHistoryStack, CmdHistoryStack, TimedAttrData, TimedCmdData, AttrData classes, I decided not to mimic cppTango behaivior one-to-one, by do more Pythonic approach:
- created a pure-Python
TimedAttrData,TimedCmdDataclasses, with reduced amount of memebers (e.g. for attribute user dos not set dim_x, dim_y, etc. - they are calculated in the bindings) -
fill_attr_polling_bufferandfill_cmd_polling_bufferaccept directly Python lists and tuples ofTimedAttrData,TimedCmdData, respectivly - I also added automatic convertion from any Python exception to DevErrorList, if one need to fill failed value into history
Methods were added to Util class and to the DeviceImpl, so one can just call "self.fill_attr_polling_buffer" inside device. TimedAttrData, TimedCmdData can be imported from pyutil.py, device_server.py, and server.py
Seems to work.
How to use, could be seen in test_fill_attr_polling_buffer and test_fill_cmd_polling_buffer
Includes: fix write_attribute_asynch tests after cppTango fix (from !851 (closed))
Edited by Anton Joubert