接收异步数据源以便与Chaco进行绘图的可行方法是什么?

时间:2013-10-29 08:36:20

标签: python sockets enthought chaco traitsui

我正在探索来自TraitsTraitsUI / Chaco / Enthought个软件包,因为我想利用强大的动态绘图工具。我有来自外部源的数据,我希望用它来更新一组Chaco图。我研究了spectrum.pydata_stream.py示例,但是他们经常在定期的Timer事件中从流/文件/源中提取数据,而不是接收异步输入事件。

我不清楚如何删除Timer而是异步触发Array更新。有可能使用Timer进行轮询,但是我想扩展以包含几个不同的外部源,我需要某种“服务器”进程来管理它 - 它实际上不能被GUI主循环阻止。截至目前,我想要合并一个TCP服务器,它接受不可预测的传入客户端连接,每个连接都提供新的数据来绘制。

是否可以设置第二个线程来处理所有套接字通信并使用它来调用.set_data()来触发绘图重绘?或者这会干扰GUI主循环和/或导致Traits / Chaco中的竞争条件吗?

还是有另一种方法可以考虑这个在Traits范例中更有意义的问题吗?

1 个答案:

答案 0 :(得分:2)

'set_data'会触发重绘,因此不需要计时器。但请注意,重绘发生在主要的gui线程中。