我有一个关于八度音中实时绘图的问题。这个想法非常简单,但不幸的是我无法在互联网上找到解决方案。在我的项目中,我使用netcat
对数据进行抽样,并awk
对其进行过滤,例如:
nc 172.16.254.1 23 | awk ' /point/ '
通过这种方式,我每4-10毫秒获得一个新的数据点(大约),以及一个时间戳。 现在我想将这些数据传输到八度并实时绘制。有没有人有任何想法?
更新
在我看来
nc 172.16.254.1 23 | awk ' /point/ ' | octave --silent --persist --eval "sample(stdin)"
将数据传输到我的八度脚本sample
,该脚本执行绘图。但现在仍然存在一个问题:重新绘制速度很慢,并且在采样数据期间速度变慢(我获得了数千个数据点)。我有
function sample(stream)
t = NaN; r = NaN; k = 1;
figure(1)
plot(t,r,'o')
hold on
while(~feof(stream))
s = fgets(stream);
t(k) = str2double(s(1:6));
r(k) = str2double(s(8:11));
plot(t(k),r(k),'o')
drawnow()
k = k + 1;
end
我应该添加/更改什么?
答案 0 :(得分:0)
经过一番研究,feedgnuplot似乎满足了我实时绘图的目的:
nc 172.16.254.1 23 |
awk ' /point/ ' |
feedgnuplot --domain --points --stream 0.01