metlink pid的http服务器

metlinkpid-http的Python项目详细描述


latest release on PyPI

metlinkpid-http脚本 为Metlink LED乘客信息显示提供一个HTTP端点:

$ metlinkpid-http --serial=/dev/ttyUSB0
Serving on http://127.0.0.1:8080

$ curl 'http://127.0.0.1:8080?12:34+FUNKYTOWN~5|Limited+Express|_Stops+all+stations+except+East+Richard'
{"error":null,"message":"12:34 FUNKYTOWN~5|Limited Express|_Stops all stations except East Richard"}

安装

PyPI安装,使用pip

pip install metlinkpid-http

基本用法

找到设备

确定显示器连接到的设备。 在Linux上,这可以通过断开显示器与计算机的连接来实现。 然后检查dmesg输出中USB附件消息的内容:

[    3.010816] usb 1-1.4: FTDI USB Serial Device converter now attached to ttyUSB0

上面的输出表明可以通过/dev/ttyUSB0访问显示。

启动http服务器

运行作为--serial选项传递设备位置的脚本:

$ metlinkpid-http --serial=/dev/tty/USB0

脚本接受以下选项:

--serial=PORT
PID串行设备名称, 例如Linux上的/dev/ttyUSB0或Windows上的COM1。 如果未指定,则默认为环境变量METLINKPID_SERIAL的值; 如果没有这样的变量,则默认为/dev/ttyUSB0
--http=HOST:PORT
要侦听的主机名/ip地址和端口,用冒号(:)分隔。 如果未指定,则默认为环境变量METLINKPID_HTTP的值; 如果没有这样的变量,则默认为127.0.0.1:8080
-h--help
显示与上述类似的使用信息, 并提供指向此文档的链接。

如果PID成功连接,则确认URL:

Serving on http://127.0.0.1:8080

显示消息

接下来,在浏览器中浏览到指定的url, 在末尾添加appropriately encoded query string

http://127.0.0.1:8080?MY+MESSAGE

您应该会看到与此类似的纯文本json结果:

{"error":null,"message":"MY MESSAGE"}

使用curl

$ curl 'http://127.0.0.1:8080?MY+MESSAGE'
{"error":null,"message":"MY MESSAGE"}

使用“requests” library

>>> import requests
>>> requests.get('http://127.0.0.1:8080?MY+MESSAGE').json()
{'error': None, 'message': 'MY MESSAGE'}

以这种方式通过http公开显示, 您几乎可以使用任何编程语言或工具包来操作它。

“metlinkpid” module documentation 有关邮件格式的完整详细信息。

http服务器还定期ping后台的显示, 阻止消息显示超时。

支架

通过问题跟踪程序,我们欢迎错误报告、功能请求和问题。

Issue tracker:https://github.com/Lx/python-metlinkpid-http/issues

贡献

同时请求代码和文档改进 受到了感激和考虑。

GitHub repository:
https://github.com/Lx/python-metlinkpid-http

许可证

这个项目是根据MIT License授权的。

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

推荐PyPI第三方库


热门话题
java以编程方式从TableLayout中删除所有行   Java Web Sart Ubuntu12.1。加载资源(图像)   人们如何让Java SPNEGO客户端在Windows中工作?   java Eclipselink:ObjectArrayMapping和ClassDescriptor   控制台中带有引号/空格的java Javafx命名参数   java创建服务失败:找不到对象?   java Hazelcast:如何在测试期间禁用自动发现?   使用TuckyUrlRewriteFilter rermoteaddr的java块IP   javascript如何在angular 4中进行同步http调用   输入字符串的java排列   java Jenkins不是以Xrs Xmx2048m XX:MaxPermSize=512m(windows)开始的   AWS EMR上的java avro错误   java从两个ArrayList中提取特定连接的对象,组合这些相关对象并从子类中打印   java从主题中删除什么时间点消息?   谷歌像素设备上的java InvalidKeyException   java如何在执行测试后重建项目   java Android 2.2 readUTF()socket问题   按下安卓设备上的“后退”按钮后java Toast没有完成?