小编use*_*808的帖子

pyserial与多处理给我一个ctype错误

嗨,我正在尝试编写一个模块,该模块可以让我通过读取和发送数据pyserial。我必须能够并行读取主脚本中的数据。随着计算器用户的帮助下,我有一个基本的和工作框架方案,但是当我尝试添加一个类我创建了一个使用pyserial(句柄找到端口,速度等),发现在这里我得到以下错误:

File "<ipython-input-1-830fa23bc600>", line 1, in <module>
    runfile('C:.../pythonInterface1/Main.py', wdir='C:/Users/Daniel.000/Desktop/Daniel/Python/pythonInterface1')

  File "C:...\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 827, in runfile
    execfile(filename, namespace)

  File "C:...\Anaconda3\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 110, in execfile
    exec(compile(f.read(), filename, 'exec'), namespace)

  File "C:/Users/Daniel.000/Desktop/Daniel/Python/pythonInterface1/Main.py", line 39, in <module>
    p.start()

  File "C:...\Anaconda3\lib\multiprocessing\process.py", line 112, in start
    self._popen = self._Popen(self)

  File "C:...\Anaconda3\lib\multiprocessing\context.py", line 223, in _Popen
    return _default_context.get_context().Process._Popen(process_obj)

  File "C:...\Anaconda3\lib\multiprocessing\context.py", line 322, in _Popen
    return Popen(process_obj)

  File "C:...\Anaconda3\lib\multiprocessing\popen_spawn_win32.py", line 89, in __init__
    reduction.dump(process_obj, to_child)

  File "C:...\Anaconda3\lib\multiprocessing\reduction.py", line 60, in dump
    ForkingPickler(file, …
Run Code Online (Sandbox Code Playgroud)

python pickle multiprocessing pyserial python-3.x

7
推荐指数
1
解决办法
140
查看次数

多处理显示 matplotlib 图

我正在尝试打开多个图,但遇到了一些问题。当我尝试使用线程创建绘图时,python 首先会打开多个窗口,然后关闭除第一个窗口之外的所有窗口。

在另一个问题中,建议我使用我已经尝试过的多处理。代码运行没有错误,只是不显示任何情节。
在继续我的主要项目之前,我正在尝试做一些非常简单的事情。

# Import the necessary packages and modules
import matplotlib.pyplot as plt
import numpy as np


#from threading import Thread
import multiprocessing

def plot(datax, datay, name):
    # Prepare the data
    x = datax
    y = datay**2
    # Plot the data
    plt.scatter(x, y, label=name)

    # Add a legend
    plt.legend()

    # Show the plot
    plt.show()



#plot(3,3,)
'''
for i in range(10):
    t = Thread(target=plot, args=(i,i+1,i,))
    t.start()
    '''
for i in range(2):
    p = multiprocessing.Process(target=plot, args=(i, i, i))
    p.start()
Run Code Online (Sandbox Code Playgroud)

更新:由于某种原因,多处理再次停止工作。我尝试创建一个函数 …

matplotlib multiprocessing python-3.x

5
推荐指数
1
解决办法
1万
查看次数

如何在gtk和glade中嵌入情节

我正在尝试使用 C 中的 Glade 和 gtk 创建一个简单的 gui。在 GUI 中,我想添加一个绘制数据的小部件(我只需要线图和直方图)(不断更新),但我不知道该做什么用。我已经看到 gnuplot 很流行,但我不知道如何在应用程序中使用它。我想要一些建议和一些说明,因为我找不到它。

这是我用作基础的一些示例代码,只是为了给您一个想法

更新:我在我的电脑上构建了 gnuplot,现在当我运行代码时,它不会打开一个新窗口,而且似乎在我的窗口内绘图。唯一的问题是我的 gtkbox 容器中的小部件没有调整大小,所以它看起来像一个小白条。我假设它正在工作,因为我删除了

gui.graph = gnuplot_init() ;
    gnuplot_setstyle(gui.graph, "lines") ;
    gnuplot_cmd(gui.graph, "set terminal x11 window \"%x\"", (int)gtk_socket_get_id (gui.socket));
    gnuplot_plot_slope(gui.graph, 1.0, 0.0, "unity slope") ;
Run Code Online (Sandbox Code Playgroud)

并在单独的终端上运行命令,我提到的白条会弹出。

#include <gtk/gtk.h>
#include <gtk/gtkx.h>
#include "variables.h"
#include "gnuplot_i.h"

struct test tv;
struct GUI gui;

// Functions
void GUISetup();

int main(int argc, char *argv[])
{
    gtk_init(&argc, &argv);
    gui.builder = gtk_builder_new_from_file("glade/window_main.glade");

    gui.window = GTK_WIDGET(gtk_builder_get_object(gui.builder, "window_main"));
    gtk_builder_connect_signals(gui.builder, NULL);
    
    GUISetup();
    
    g_object_unref(gui.builder);
    // start fullbuilderscreen
    gtk_window_fullscreen(GTK_WINDOW(gui.window)); …
Run Code Online (Sandbox Code Playgroud)

c gtk glade

5
推荐指数
1
解决办法
809
查看次数

在课堂上制作 pyqtgraph 动画

我正在尝试编写一个程序,通过串口从 arduino 获取串行数据,并实时绘制它。我使用 matplotlib 编写了代码,但我希望对结果感到满意,所以我试图让它在 pyqtgraph 上工作(学习如何使用它的资源要少得多)。我的问题是代码显示了一个空图。似乎 _update 仅被调用一次,但是当我将其放入循环中时,图表甚至不显示。

\n\n

我编写了一些其他代码来实现我想要的功能,即实时绘制数据,在数据通过阈值后,它在数据上绘制新线,显示线性回归。我从这里得到了一个示例(https://github.com/JaFeKl/joystick_real_time_plot_with_pyqtgraph/blob/master/real_time_plot.py),因为我希望我的代码是可调用的(在函数中,但我无法让它工作.到目前为止,我正在从 python 中生成数据以简化调试

\n\n
import sys\nimport pyqtgraph as pg\nimport pyqtgraph.exporters\nfrom pyqtgraph.Qt import QtGui, QtCore\nimport numpy as np\n\nimport serial\n\n# test\nimport math\nimport time\n\n\nclass Graph(QtGui.QMainWindow):\n    def __init__(self, parent=None):\n        super(Graph, self).__init__(parent)\n        self.n = 3\n        self.mainbox = QtGui.QWidget()\n        self.setCentralWidget(self.mainbox)\n        self.mainbox.setLayout(QtGui.QVBoxLayout())\n\n        self.canvas = pg.GraphicsLayoutWidget()             # create GrpahicsLayoutWidget obejct  \n        self.mainbox.layout().addWidget(self.canvas)\n\n        #  Set up plot\n        self.analogPlot = self.canvas.addPlot(title=\'Signal from serial port\')\n        self.analogPlot.setYRange(-1,1123)                # set axis range\n        self.analogPlot.setXRange(-1,1123)\n        self.analogPlot.showGrid(x=True, y=True, alpha=0.5) # show Grid\n        x_axis = …
Run Code Online (Sandbox Code Playgroud)

python pyqtgraph

2
推荐指数
1
解决办法
1478
查看次数