2017-06-19 9 views
0

私はC++スクリプトから高速データ出力を得ています。intは800マイクロ秒(〜1.6kHz)ごとに生成されています。これはwebsocketdで実行しています。それを同じマシン上のWebサーバー上のスムージーチャートにストリームします。私は可能な限り滑らかなグラフを作るための最善の方法は、websocketに100 datapointsの配列を出力することを発見した。私のスムージーの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
enter image description here
おかげで、

答えて

0

問題は下に、あなたはTCP/IPパケットを使用していることです。そして、毎回の更新でほんの数ビットのデータで、これらのパケットはすぐにいっぱいになりません。あなたのOSは、より少ないパケットヘッダで同じ量の生データを送ることができるので、少し待つことで帯域幅が改善されるという妥当な予想があります。

しかし、これはあなたのために逆行します。あなたはデータではなくレイテンシを気にします。最も簡単な解決策は、ダミーデータをパケットに入れることです。一度フォーマットされ、パディングされた各値は〜1500バイトでなければなりません。