跳转到主要内容

用于创建模拟TANGO设备的通用库。

项目描述

tango-simlib:轻松生成 TANGO 设备模拟器

主网站: http://tango-simlib.readthedocs.io

简介

tango-simlib 是一个库,有助于 TANGO 设备模拟器数据驱动开发。它旨在使开发基本模拟器变得容易,同时使其能够实现更复杂的模拟器。除了模拟设备接口外,还生成一个独立的 TANGO 模拟控制接口,允许通过后通道操纵模拟器,例如在模拟设备接口上模拟故障条件。

仅使用通过 POGO 生成的 XMI 文件捕获的 TANGO 基本接口描述,可以生成具有随机变化的属性和无操作命令处理器的模拟器,无需进一步编码。可以使用 模拟器描述数据文件SimDD)指定属性模拟参数和简单的命令行为。该文件的格式目前是一个工作提案,可能发生变化。一个更正式的格式规范正在制定中。

请注意,tango-simlib 不会生成模拟器代码。相反,模拟器行为在运行时通过 Python 的动态编程功能由描述数据驱动。如果修改描述文件(XMI 或 SimDD),则只需重新启动模拟器设备服务器即可使更改生效。

基本用法

安装

请注意

  • tango-simlib 与 Python2.7 和 Python>=3.5 兼容。

  • 安装需要安装 TANGOBINARY 先决条件。

$ sudo apt-get install -y --no-install-recommends $(grep -vE "^\s*#" apt-build-requirements.txt | tr "\n" " ")

如果您无法安装 PyTango 包,则无法安装 tango-simlib。更多信息请参阅 文档

安装,工作目录是源代码签出的位置

$ pythonX -m pip install . # Where 'x' is the version of Python

此软件包可在 PYPI 上使用

$ pip install tango-simlib

Tango-YAML

安装 tango_simlib 后,将可以使用 tango-yaml 脚本

$ tango-yaml -h

usage: tango_yaml [-h] {xmi,fandango,tango_device,validate} ...

This program translates various file formats that describe Tango devices to
YAML. Or validates the conformance of a device against a specification.

positional arguments:
{xmi,fandango,tango_device,validate}
                        sub command help
    xmi                 Build YAML from a XMI file
    fandango            Build YAML from a fandango file
    tango_device        Build YAML from a running Tango device
    validate            Check conformance of a Tango device against a
                        specification in YAML format

optional arguments:
-h, --help            show this help message and exit

文档

请参阅 文档 获取更多信息。下载手册: https://media.readthedocs.org/pdf/tango-simlib/latest/tango-simlib.pdf

许可证

本项目采用 BSD 3-Clause 许可证 - 有关详细信息,请参阅 许可证

贡献

我们始终欢迎贡献!请确保您遵守我们的编码标准 CAM样式指南

变更日志

0.9.4

  • 减少设备服务器产生的更多日志 150

0.9.3

  • 减少设备服务器产生的日志 148

  • 更新类实例前缀,使其更具确定性 146

  • 将jsonschema包锁定为与py2兼容的版本 143

0.9.2

  • 减少tango设备中的嘈杂日志 138

0.9.1

  • 在设备启动时从模拟器数据描述文件配置设备状态 135

0.9.0

  • 简化了fandango解析器为设备属性生成的字典结构 132

  • 配置了TANGO设备属性的所有默认属性 133

0.8.0

  • 更新了DishMaster.yaml 126

  • pyrsistent的最后已知兼容Py2版本锁定 127

  • 添加了覆盖min_update_period的能力 128

  • 添加了向模型传递自定义日志记录器的功能 129

  • 减少了日志记录的详细程度 131

0.7.1

  • 在YAML规范文档中包含枚举标签并排序标签 123

  • - name作为最高值,并按字母顺序排序键 123

0.7.0

  • 122中更新了CHANGELOG

  • 121中向工具添加了validate选项
    • 此子命令启用了对运行中的Tango设备与规范文件的符合性验证。

0.6.0

  • 118中更新了CHANGELOG

  • 119中添加了tango-yaml工具
    • 此工具将fandango (fgo)、XMI (xmi)或运行中的Tango设备转换为YAML。

    • 安装后,运行tango-yaml -h以获取详细信息。

0.5.0

  • 117中将Weather.xmi添加到MANIFEST.in

  • 重构代码库 116

  • 更新兼容函数的docstrings 115

0.4.0

  • 添加了Python2.7和Python>=3.5兼容性拉取请求 110

  • 使用black格式化代码

  • 添加了缺失的XMI解析器类型拉取请求 101

0.3.0

  • 每个服务器进程支持多个设备和控制接口(增强)
    • 解决56中提出的问题

  • 在写入属性时添加日志

  • 减少了TANGO设备不必要的日志记录

  • 处理非标量值
    • 链接到拉取请求 91

0.2.1

  • 支持更多的tango数据类型。
    • DevUChar

    • DevShort

    • DevUShort

    • DevLong64

    • DevULong64

    • DevState

    • DevEncoded

  • 更新文档。解决79问题。

0.2.0

  • 添加支持使用文件作为数据库注册和运行TANGO设备。

  • 使用模拟器数据描述文件中指定的默认值初始化模型数量值。

  • 以预定的优先级顺序解析模拟器数据描述文件。

  • 移除未维护的python-devicetest依赖。

  • 添加了fandango json解析器
    • 此解析器用于处理由fandango库生成的TANGO设备数据文件。

  • 利用PyTango v9.2.2功能创建动态命令。

0.1.6

  • 强制XMI文件中的所有unicode属性为字节字符串。

0.1.5

  • 对SimDD的更新
    • 在副作用动作套件中添加了一种新的行为类型,用于长时间运行的命令。

  • 处理来自pogo的向量数据类型

  • 将设备属性填充到tango-db中

0.1.4

  • 打包发布文档

  • 更新控制台脚本名称
    • tango-simlib-tango-launcher -> tango-simlib-launcher

    • tango-simlib-tango-simulator-generator -> tango-simlib-generator

0.1.3

  • 将DISH配置文件包含在设备模拟器示例中

  • SimDD配置文件验证的JSON模式

0.1.2

  • 修改了Model类的更新方法,分别调用覆盖的预更新和后更新方法。

0.1.1

  • 处理DevEnum数据类型的TANGO属性

  • 处理Spectrum数据格式TANGO属性

项目详情


下载文件

下载您平台的文件。如果您不确定要选择哪个,请了解更多关于安装包的信息。

源分发

此版本没有提供源分发文件。请参阅生成分发存档的教程

构建分发

tango_simlib-0.9.4-py3-none-any.whl (134.6 kB 查看哈希)

上传时间 Python 3