2017-01-26 1 views
1

私はCanvasJsでリアルタイムのECG Waveを描画していますが、配列のサイズを使用するとすべてがうまく動作しますが、そのサイズを設定すると478ポイントになると新しいデータが表示されず、グラフは静的ですが、私は新しいデータを送信しています。リアルタイムで静的な範囲のECG波を描くにはどうすればよいですか?

ECG wave

そのチャートのコードは次のものである:

maxDataLength = 478; 
dataLenght = 0; 

    if (result.length !== maxDataLength) { 
     for (var i = dataLength; i < result.length; i++) 
      { 
       data.push({ 
        x: parseInt(result[i].valorx), 
        y: parseFloat(result[i].valory) 
       }); 
       if (data.length > maxDataLength) { 
       data.shift()} 
      } 
      dataLength = result.length; 
      chart.render(); 
     } 
    }); 

問題グラフは、新しいデータをロードしないことです。

次のコードは、私の作品:

dataLength = 0; 

if (dataLength !== result.length) { 
    for (var i = dataLength; i < result.length; i++) 
     { 
      data.push({ 
       x: parseInt(result[i].valorx), 
       y: parseFloat(result[i].valory) 
      }); 
      if (data.length > result.length) { 
      data.shift()} 
     } 
     dataLength = result.length; 
     chart.render(); 
    } 
}); 

しかし、このグラフは、アレイのすべてのデータを表示し、あなたはどのようにこのタスクを解決する知っている場合、私に知らせてください、ひどい見えます。

+0

JSコンソールにエラーがありますか?最初のコードに誤字があります: 'dataLenght' – miken32

+0

コンソールで次のエラーを表示します:err_insufficient_resources –

答えて

1

あなたがループを実行する前にこのmaxDataLengthをチェックする唯一の場所は次のとおりです。

if (result.length !== maxDataLength) { 

それはmaxDataLengthことを得るとき、どのようにこれがループを停止しますか?ここにあなたの作業コードはmaxDataLengthにカウンターを比較するために、固定タイプミスとforループ内の1つの余分なチェックで、次のとおりです。

maxDataLength = 478; 
dataLength = 0; 

if (dataLength !== result.length) { 
    for (var i = dataLength; i < result.length && i <= maxDataLength; i++) { 
     data.push({ 
      x: parseInt(result[i].valorx), 
      y: parseFloat(result[i].valory) 
     }); 
     if (data.length > result.length) { 
      data.shift(); 
     } 
     dataLength = result.length; 
     chart.render(); 
    } 
} 

(このコードは、タイプミスでいっぱいだった、私はそれがで働いていたことがわかりません最初の場所です)

関連する問題