metlink pid的http服务器
metlinkpid-http的Python项目详细描述
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"}
基本用法
找到设备
确定显示器连接到的设备。 在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"}
>>> import requests >>> requests.get('http://127.0.0.1:8080?MY+MESSAGE').json() {'error': None, 'message': 'MY MESSAGE'}
以这种方式通过http公开显示, 您几乎可以使用任何编程语言或工具包来操作它。
见“metlinkpid” module documentation 有关邮件格式的完整详细信息。
http服务器还定期ping后台的显示, 阻止消息显示超时。
许可证
这个项目是根据MIT License授权的。