基本上,我希望实现的是基于画布的Web界面,通过Raspberry Pi控制Arduino.的使用情况下是用户导航到其显示画布.然后在移动滑块时,将websocket消息发送到Raspberry Pi上的Tornado服务器.Tornado然后向Arduino发送一条串行消息,改变LED的RGB值.到目前为止,我已经能够在开发人员Raspberry Pi Android HTML5实时伺服控制的文档的帮助下做到这一点.raspberrypi:8080
但是,通信只是从Raspberry Pi到Arduino的单向通信.我希望Tornado能够监控串口以将任何传感器数据恢复到前端.这是我不确定如何继续的地方.我能够使用Node.js来完成这样的事情,Node.js同时监视websocket消息和串行消息.
是否应该生成一个不断监视端口的异步进程?我已经看到了这种解决方案的几种选择.
tornado.gen.Task,但对于单个HTTP请求,不是针对常量串行数据.tornado.ioloop.PeriodicCallback 我可以设置每毫秒检查一次串行数据,但这听起来像很多开销.或者我应该设置一个单独的Python应用程序来监视串行,然后与Tornado应用程序通信,它可以理解如下所示的内容?
所以有很多选择......有哪些建议和一些理由可以尝试或避免上述任何选项?
这就是我所需要的,并且需要将串行监控添加到:
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
import tornado.websocket
from tornado.options import define, options
define("port", default=8080, help="run on the given port", type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
self.render('index.html')
class WebSocketHandler(tornado.websocket.WebSocketHandler):
def …Run Code Online (Sandbox Code Playgroud) 我有一个使用EntityFramework for ORM的ASP.NET MVC 4 Web API应用程序.
在我返回的JSON中,在某些情况下,多个父节点存在相同的子节点.在这些情况下,子节点的第一次出现完全可见其所有成员.任何后续出现都会显示为第一次出现的$ ref.我希望每次在返回的JSON中显示完整的对象.
例如,而不是看到:
[{
"$id": "1",
"userId": 1,
"Badge": {
"$id": "2",
"badgeId": 1,
"badgeName": "Gold"
}
}, {
"$id": "3",
"userId": 2,
"Badge": {
"$ref": "2"
}
}]
Run Code Online (Sandbox Code Playgroud)
我想看:
[{
"$id": "1",
"userId": 1,
"Badge": {
"$id": "2",
"badgeId": 1,
"badgeName": "Gold"
}
}, {
"$id": "3",
"userId": 2,
"Badge": {
"$id": "4",
"badgeId": 1,
"badgeName": "Gold"
}
}]
Run Code Online (Sandbox Code Playgroud)
基本上我想摆脱JSON中的任何"$ ref".有办法吗?
谢谢!