我有以下问题:
大局:通过broswer控制步进电机。步进电机通过debian连接到Fox Board上。在主板上运行着一台apache the服务器。
我有一个HTML网站与表单,其中用户输入电机的参数。submit按钮启动一个python脚本,该脚本执行与电机的通信。引擎将一些数据传递给python脚本。脚本在iframe中将此信息发送回HTML页面。
web page with form -->
parameters input by user -->
submit -->
python script is started -->
motor does s
我用异步循环编写了一些代码:
loop = asyncio.get_event_loop()
# bla coroutines
loop.run_forever()
现在,有人用GObject.MainLoop()给了我一部分代码
l = GObject.MainLoop()
# functions using gi.repository I cannot modify, bla
l.run()
我应该将这些代码集成在与我的软件相同的软件中(使用异步)。这些代码必须同时运行。代码的各个部分必须交换对象。
我不确定哪一种解决方案会被占用,或者至少不会太难看?
ps:这段代码必须运行在window
我有一个机器人项目,基本上是一个路径跟踪问题。在PC机上,用Python3.65实现了一种参考生成算法。该算法利用室内GPS数据,利用这些不断更新的数据计算机器人车的参考路径。当然,算法运行在一个而True:.框架中。该算法只有在采样频率相当高的情况下才能很好地工作,比如0.001s。但是,问题是,在计算引用路径之后,需要通过Serial.write()逐字节将路径信息写入PC的串口。这个serial.write()函数仍然是一个for循环。这个写入过程非常慢(超过0.02s,16个字节)。如果for循环包含在while True: framework中,则如下所示:
while True:
似乎python的异步是一种无所不包的交易。具体来说,它似乎迫使完全调用堆栈具有异步感知能力。
下面是一个示例:
让我们假设有一个由函数a()实现的算法。
该算法调用函数b()。
def a(b):
for i in ...:
# do smth...
res = b()
# do smth more ...
现在,让我们假设函数b()在不同的环境中可能有不同的实现,人们可能希望在异步事件循环中调用a() (使用loop.call_soon())和b()调用一些异步感知代码:
def b():
await .... # this forces b() to b
我有一个简短但对我来说非常重要的问题:
我希望将变量从已经在运行的active python脚本中写入到另一个python脚本中。所以我不想要这样的东西:
$ cat first.py second.py
#first.py
def demo():
some_list = []
for i in 'string':
some_list.append( i )
return list
#second.py
from first import demo
some_list = demo()
print some_list
$py
我有一个python函数,它调用许多服务,并打印日志文件中调用的服务的结果。这是我的密码:
def coordinator():
f = file(path,'a')
sys.stdout = f
/* do a lot of stuff */
f.close()
with open(path) as log:
logs = log.read()
return jsonify(log = logs)
函数的结果返回给jQuery getJSON函数,该函数在网页中显示最终的日志文件:
$.getJSON('/