Package: tango-simlib
tango-simlib: Easily generateTANGOdevice simulatorsMain website:http://tango-simlib.readthedocs.ioIntroductiontango-simlibis a library that aids the data-driven development ofTANGOdevice
simulators. It aims to make it easy to develop basic simulators while making it
possible to implement more complex simulators. In addition to the simulated
device interface, a separateTANGOsimulation-control interface is generated,
allowing the simulator to be manipulated via a back-channel to simulate
e.g. failure conditions on the simulated device interface.Using only the basicTANGOinterface description captured via aPOGOgenerated
XMI file, a basic simulator with randomly varying attributes and no-op command
handlers can be generated with no further coding. Attribute simulation
parameters and simple command behaviour can be specified using aSimulator
Description Datafile(SimDD). The format of this file is currently a working
proposal and subject to change. A more formal format specification is being
worked on.Note thattango-simlibdoes not generate simulator code. Rather, the
simulator’s behaviour is driven by the description data at run-time usingPython’s
dynamic programming features. If the description files (XMI or SimDD) are
modified, the simulator device server only needs to be restarted for the changes
to take effect.Basic UsageInstallationPlease Notetango-simlib is compatible with Python2.7 and Python>=3.5.Installation requires theTANGOBINARYprerequisites to be installed.$sudoapt-getinstall-y--no-install-recommends$(grep-vE"^\s*#"apt-build-requirements.txt|tr"\n"" ")If you cannot install thePyTangopackage you will not be able to
installtango-simlib. For more,documentation.Installation fromsource, working directory where source is checked out$pythonX-mpipinstall.# Where 'x' is the version of PythonThis package is available onPYPI, allowing$pipinstalltango-simlibTango-YAMLAfter installing tango_simlib, thetango-yamlscript will be available to use$tango-yaml-husage:tango_yaml[-h]{xmi,fandango,tango_device,validate}...ThisprogramtranslatesvariousfileformatsthatdescribeTangodevicestoYAML.Orvalidatestheconformanceofadeviceagainstaspecification.positionalarguments:{xmi,fandango,tango_device,validate}subcommandhelpxmiBuildYAMLfromaXMIfilefandangoBuildYAMLfromafandangofiletango_deviceBuildYAMLfromarunningTangodevicevalidateCheckconformanceofaTangodeviceagainstaspecificationinYAMLformatoptionalarguments:-h,--helpshowthishelpmessageandexitDocumentationCheck out thedocumentationfor more information.
Download Manual:https://media.readthedocs.org/pdf/tango-simlib/latest/tango-simlib.pdfLicenseThis project is licensed under the BSD 3-Clause License - seelicensefor details.ContributeContributions are always welcome! Please ensure that you adhere to our coding standardsCAM_Style_guide.Changelog0.9.4Reduce more logs spewed by device servers150.0.9.3Reduce logs spewed by device servers148.Updated class instance prefix to be more definitive146.Pinned jsonschema package to py2 compatible version143.0.9.2Reduce the noisy logging in the tango device138.0.9.1Configure the device state from the simulator data description file(s) at device start up135.0.9.0Flattened the dict structure generated by the fandango parser for the device attributes132.Configured all the default properties of the TANGO device’s attributes133.0.8.0Updated DishMaster.yaml126.Pinned last known compatible Py2 version ofpyrsistent127.Added ability to override min_update_period128.Added the ability to pass a custom logger to model129.Reduced logging verbosity131.0.7.1Include enum labels in YAML spec document and sort labels123.Arranged the- nameas the top value and have the keys sorted alphabetically123.0.7.0Updated CHANGELOG in122Addedvalidateoption totango-yamltool in121This sub command enables conformance verification of a running Tango
device against a specification file.0.6.0Updated CHANGELOG in118Addedtango-yamltool in119This tool translates fandango (fgo), XMI (xmi) or a running Tango device to YAML.Once installed, runtango-yaml -hfor details.0.5.0Added Weather.xmi to MANIFEST.in117Refactor the code base116Update compat function docstrings1150.4.0Added Python2.7 and Python>=3.5 Compatibility Pull Request110.Formatted code withblackAdded some missing XMI parser types Pull Request101.0.3.0Support multiple device and control interfaces per server process (Enhancement)Addressing issue raised in56Adding a log when writing to the attributesReduced the unnecessary logging of the TANGO deviceHandle non scalar valueLinked to the Pull Request910.2.1Supporting more tango data types.DevUCharDevShortDevUShortDevLong64DevULong64DevStateDevEncodedUpdating documentation. Addresses issue79.0.2.0Adding support to register and run a TANGO device using a file as a database.Initialising the model quantity values with the default values specified in the simulator data description files.Parsing simulator data description files in a pre-determined precendence order.Removing unmaintained python-devicetest dependency.Added a fandango json parserThis parser is used to process the TANGO device data file generated by thefandangolibrary.Making use of the PyTango v9.2.2 feature to create dynamic commands.0.1.6Force all unicode attributes in XMI files to byte strings.0.1.5Updates to the SimDDAdded a new type of behaviour in the side-effect actions suite for long-running
commands.Handle vector data type from pogoPopulate tango-db with device properties0.1.4Package release documentationUpdated console script namestango-simlib-tango-launcher -> tango-simlib-launchertango-simlib-tango-simulator-generator -> tango-simlib-generator0.1.3DISH config files included in examples of device simulatorsJSON Schema for SimDD configuration file validation0.1.2Modified the update method of the Model class to invoke the override pre-update
and post-update method, respectively.0.1.1Handle DevEnum data type TANGO attributesHandle Spectrum data format TANGO attributes