Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python向缓冲区添加值_Python - Fatal编程技术网

Python向缓冲区添加值

Python向缓冲区添加值,python,Python,我在使用来自不同代码段的多个值时遇到问题。 我有4个python文件,它们需要来回传递不同的值 我有一个rotary\u编码器、一个webserver、一个X11(gtk)和rotary\u处理器 rotary\u Handler检查物理旋转编码器并创建事件,然后将其传递到rotary\u编码器,然后rotary\u编码器设置输出和按下的变量 Webserver设置一个len(outfiles)变量并获取输出和按下的变量 旋转编码r还获取len(outfiles)变量,并使用它重置输出变量(如果

我在使用来自不同代码段的多个值时遇到问题。 我有4个python文件,它们需要来回传递不同的值

我有一个
rotary\u编码器
、一个
webserver
、一个
X11(gtk)
rotary\u处理器

rotary\u Handler
检查物理旋转编码器并创建事件,然后将其传递到
rotary\u编码器
,然后
rotary\u编码器设置输出和按下的变量

Webserver设置一个len(outfiles)变量并获取输出和按下的变量

旋转编码
r还获取
len(outfiles)
变量,并使用它重置输出变量
(如果输出>lef(outfiles):outfiles=0)

x11(gtk)
获取按下的变量

X11
webserver
必须保持分离,并且都需要来自
rotary_编码器
文件的变量,并且都是无止境的代码(将运行到手动停止)

我在考虑将这3个变量放入内存缓冲区,然后将缓冲区抓取到我需要的文件中。我以前从未使用过缓冲区或任何东西,所以如果有人能让我开始或提供导入这些变量的不同方法,我将不胜感激

编辑:

rotary_编码器
使用RPi.GPIO模块并从GPIO引脚收集I/O数据

rotary\u处理程序
使用RPi.GPIO并从
rotary\u编码器
获取事件

webserver
是一个python Flask Web服务器,创建2个页面(“索引”和“/receiving”),使用pyserial跨GPIO RX/TX引脚传输数据。还使用Glob获取文件列表

x11(gtk)
是python脚本的x11包装器(使用xinit),python脚本是python gtk和webkit,用于创建简单的webbrowser

当我转动旋转编码器时,我正在从Glob列表(一个html文件)中选择一个值,并将服务器的索引设置为一个新网页。设置新网页时,我需要重新启动flask Web服务器,刷新python GTK webbrowser,并保持旋转编码器运行,而不更改其值


此外,Glob列表有一个最大值,我需要告诉旋转编码器,当它达到该最大值时,将默认返回到0并继续。根据任务的不同,全局列表可以有100万或100万个文件。

如果我理解正确,您有3个过程-一个获取基于IO的值,两个处理此数据。如果这是正确的,解决方案是使用某种形式的IPC机制。它们太多了,尤其是在unix上。我会选择命名管道。简单、健壮、快速。你能举个小例子,并把它作为答案加上去吗。我记得在管道和循环代码方面遇到了一些问题。我想我可以试着想象一些东西,但我也认为你应该相应地重新表述你的问题。你现在的问题相当混乱&我猜了很多。所以,一旦你做到了,我会想办法。或者,使用不同的IPC技术,如nanomsg。它实际上非常好,如果你把它作为你系统的软件包,你只需要使用它的ipc机制就行了。我也可以提供一个nanomsg的例子,但如果你知道它是否对你有用,那就好了。我在编辑这个问题时遇到了困难,因为现在我不确定我想用什么,我有一个线程的快速测试,但失败了,因为踏板没有停止,所以下一个线程没有开始。您可以提供的任何示例或文档都将非常有用。作为一个简要说明,我正在使用PythonFlask、gtk和xinit(X11)。