我从C ++脚本获得了高速数据输出,每隔800微秒(~1.6kHz)产生一个int,我已经玩过websocketd这个运行现场直播到一个冰沙图表同一台计算机上的Web服务器。我发现使图表尽可能平滑的最佳方法是输出100个数据点的数组到websocket。在我的思慕雪javascript里面,它会拆分数组,然后在最后一个数组和这个数组之间添加任意扩展X值的数据。
'
conn.onmessage = function(evt) {
$("#log").text("Connected");
var arrZ = evt.data.split(',');
newTime = new Date().getTime();
var timeInterval = (newTime - oldTime)*0.01
for (i=0;i<100;i++){
timeSeries.append(oldTime, arrZ[i]);
oldTime += timeInterval;
}
oldTime = new Date().getTime();};
'
数据图并不太棒,但有效。有没有其他(更快的)方式 - 架构明智 - 将这些数据传输到smoothiecharts?
SmoothieCharts绘制高速数据图表
谢谢,
答案 0 :(得分:0)
问题是,在下面,您使用的是TCP / IP数据包。每次更新时只有几位数据,这些数据包不会立即满。您的操作系统有合理的期望,等待一点可以提高带宽,因为它可以用更少的数据包标头发送相同数量的原始数据。
然而,这对你来说是适得其反。你关心延迟,而不是数据。最简单的解决方案是在数据包中填充虚拟数据。格式化和填充后,每个值应为~1500字节。