pydatacoll是一个类似scada的系统,最初是在gdt开发的。

PyDataColl的Python项目详细描述


PyDataColl
==


…图片::https://travis ci.org/timercrack/pydatacoll.svg
:目标:https://travis-ci.org/timercrack/pydatacoll?分支=主

…图片::https://coveralls.io/repos/timercrack/pydatacoll/badge.svg?branch=master&service=github
:目标:https://coveralls.io/github/timercrack/pydatacoll?分支=主

…图片::https://readthedocs.org/projects/pydatacoll/badge/?version=latest
:目标:http://pydatacoll.readthedocs.org/en/latest/?徽章=最新
:alt:文档状态

…图片::https://badges.gitter.im/timercrack/pydatacoll.svg
:alt:在https://gitter.im/timercrack/pydatacoll
:target:https://gitter.im/timercrack/pydatacoll?utm_source=badge&utm_medium=badge&utm_campaign=pr badge&utm_content=badge

pydatacoll是一个类似scada<;ahttps://en.wikipedia.org/wiki/scada>;``的系统,使用python作为主要语言。它最初的灵感来源于我为大型ems的核心部分所做的一个旧程序,https://en.wikipedia.org/wiki/energy\u management\u system>;` ` `.


pydatacoll大致可以分为三部分:

*apiserver提供"restful服务<;https://en.wikipedia.org/wiki/representational_state_transfer>;`
用于客户端从/到设备拉取/推送数据,并对设备、术语和项执行通用CRUD。

*一个设备管理器,管理连接到系统的所有设备和术语,侦听APIServer发送的消息
在设备和术语上执行crud的。它可以与一些插件结合执行一般操作,例如
数据检查,数据库保存和公式计算。

*设备管理器控制的许多设备和术语通过通信信道(TCP/IP)使用编码数据进行操作
,以提供对远程设备(仪表或传感器)的控制。每种类型的设备都可以使用一种具有指定协议的
仪表进行通信,例如"modbus tcp<;https://en.wikipedia.org/wiki/modbus>;` `,
"iec 60870-5-104<;https://en.wikipedia.org/wiki/iec_-5 `;iec_-5-104>;`.

安装
----

**先决条件**:pydatacoll在python 3.5+上运行。除了Requirements.txt中显示的要求之外,
以下可选包可能有用:

*`redis<;http://redis.io/>;`` pydatacoll大量用作nosql数据库和
`ipc<;https://en.wikipedia.org/wiki/inter-process\communication>;`。如果在本地部署pydatacoll,请确保已安装并启动redis服务器。dbsaver插件使用https://www.mysql.com/>;`` mysql<;https://www.mysql.com/>;``实时存储设备数据。如果
在本地部署pydatacoll,请确保已安装并启动mysql服务器。
*`ujson<;https://pypi.python.org/pypi/ujson>;``是用纯c编写的超高速json编码器和解码器,具有针对python的
绑定。这是一个替代的json库,pydatacoll将在可能的情况下自动使用它。
*`hiredis<;https://pypi.python.org/pypi/hiredis>;``是一个c库,它可以在解析redis服务器的响应时提供高达10倍的速度改进。这是另一个redis客户端,如果可能的话,pydatacoll将自动使用它。下载最新的源代码`hosted on github<;https://github.com/timercrack/pydatacoll>;`,打开一个shell
(Windows中为*cmd*,Linux和Mac OS X中为*terminal*),然后转到源代码目录,使用pip安装必需的
包:


>2。然后运行以下命令启动pydatacoll服务器::


…注意:
要停止服务器,请按ctrl+c退出

3。祝贺你!服务器正在运行。在浏览器中访问http://localhost:8080查看服务器信息信息,如果
成功,您会发现如下内容:

pydatacoll正在运行,可用的api:
方法:获取url:http://localhost:8080/
方法:获取url:http://localhost:8080/api/v1/device_协议
方法:获取url:http://localhost:8080/api/v1/devices
(…更省略)

4。现在您可以用您最喜欢的http客户端向服务器发送请求!检查:doc:`restapi`查看api列表。

**平台**:pydatacoll应该在任何类unix的平台上运行,尽管为了获得最佳的性能和可扩展性,建议在生产部署中使用
linux(带'epoll``)和bsd(带'kqueue``),即使mac os x是从bsd派生并支持kqueue,它的网络性能通常很差,因此建议仅用于
开发用途)。PyDatacoll也将在Windows上运行,尽管此配置不受官方支持,并且建议仅用于开发。


Quick Links
——

*`Source(Github)<;https://github.com/timercrack/PyDatacoll>;`\br/>*`Docs<;http://pydatacoll.readthedocs.org/>;`


许可证
----

``pydatacoll``在Apache2许可证下提供。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
主类中的java访问方法   Javalog4j不读取它的log4j。属性文件   雅加达ee通过Java(web应用程序)使用iText/任何其他使用现成数据的库生成PDF报告   lua使用java阅读TeamSpeak 3消息   将日期转换为BST java   java Spring引用ProxyFactoryBean中带有ref的protoyype bean   如何使java只打印一条带有if语句的消息   java如何通过JavaMail从雅虎服务器发送电子邮件?   使用百分比和BigDecimal的java测试   java如何对字符串数组排序   java验证器+MVC+REST::更新问题   java如何阻止eclipse如此频繁地挂起?   java从AsyncTask(片段内)访问TextView   IDEJava:制作可调整大小和拖动的组件