webservice(rest和websocket)访问和控制踏板pi踏板设置配置
PedalPi-WebService的Python项目详细描述
pedal pi-webservice是一个提供 对rest+websocket的踏板pi管理。
webservice还支持自动发现:通过使用zeroconf发布到网络, 它提供了一定程度的位置透明度,允许应用程序连接到 用最少的用户努力实现的web服务。
- 文档:
- http://pedalpi.github.io/WebService/
- 代码:
- https://github.com/PedalPi/WebService
- python包索引:
- https://pypi.org/project/PedalPi-WebService
- 许可证:
- Apache License 2.0
使用
安装和依赖项
大多数依赖项将通过pip
安装pip install PedalPi-WebService
为了在网络中发布用于自动发现的webservice,需要安装 第pybonjour-python3页。在基于debian/ubuntu的系统上,运行:
sudo apt-get install libavahi-compat-libdnssd1 pip3 install git+https://github.com/depl0y/pybonjour-python3
配置组件
pedalpi组件支持Pedal Pi - Application的扩展。 通过他们,提供开放服务。组件列表可以在Components repository中找到。
要使用此组件,需要两个步骤:
1.在应用程序中注册webservice
注册必须在应用程序初始化之前进行(application.start)
fromapplication.applicationimportApplicationapplication=Application(path_data="data/",address='localhost')fromwebservice.webserviceimportWebServiceapplication.register(WebService(application,port))
2.Web服务器的初始化
应用程序文档建议使用信号。暂停 程序在初始化结束时不终止: signal.pause仅当程序 请求(ctrl+c)。
当我们使用pedalpi webservice时,必须替换使用signal.pause 通过初始化Web服务器。使用以下方法完成此操作 代码行:
application.start()importtornadotry:tornado.ioloop.IOLoop.current().start()exceptKeyboardInterrupt:application.stop()# Not more necessary#from signal import pause#try:# pause()#except KeyboardInterrupt:# application.stop()
配置文件
使用webservice组件启动应用程序的代码 如下代码所示:
fromapplication.applicationimportApplicationapplication=Application(path_data="data/",address='localhost')fromwebservice.webserviceimportWebServiceapplication.register(WebService(application,port))application.start()importtornadotornado.ioloop.IOLoop.current().start()
API
休息
websocket
通过webservice的通信基本上包括接收更新 关于应用程序的状态。
webservice api文档可以在http://pedalpi.github.io/WebService/#websocket
维护
文件
# Installing dependencies npm install -g aglio # Generate doc cd docs/ aglio -i documentation.apib --theme-variables streak --theme-template triple -o index.html # View documentation firefox index.html
测试
# if number != 0 error sh -c 'coverage3 run --source=webservice wstest/config.py test';echo$? coverage3 run --source=webservice wstest/config.py test coverage3 report coverage3 html firefox htmlcov/index.html