如何实时绘制静态范围的心电图?
How draw an ECG wave with a static range in real time?
我正在使用 CanvasJs 绘制实时 ECG Wave,如果我使用数组的大小,一切都很好,但是当我尝试设置该大小(例如 478 点)时,这不会显示新数据即将到来,图表是静态的,但我正在发送新数据。
该图表的代码是下一张:
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();
}
});
但是这张图显示了数组的所有数据,看起来很糟糕,如果你知道如何解决这个任务,请告诉我。
你检查这个 maxDataLength
的唯一地方是在你做循环之前:
if (result.length !== maxDataLength) {
当它到达 maxDataLength
时如何停止循环?这是您的工作代码,拼写错误已修复,并在 for
循环中进行一项额外检查,以将计数器与 maxDataLength
:
进行比较
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();
}
}
(这段代码充满了拼写错误,我不认为它首先会起作用。)
我正在使用 CanvasJs 绘制实时 ECG Wave,如果我使用数组的大小,一切都很好,但是当我尝试设置该大小(例如 478 点)时,这不会显示新数据即将到来,图表是静态的,但我正在发送新数据。
该图表的代码是下一张:
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();
}
});
但是这张图显示了数组的所有数据,看起来很糟糕,如果你知道如何解决这个任务,请告诉我。
你检查这个 maxDataLength
的唯一地方是在你做循环之前:
if (result.length !== maxDataLength) {
当它到达 maxDataLength
时如何停止循环?这是您的工作代码,拼写错误已修复,并在 for
循环中进行一项额外检查,以将计数器与 maxDataLength
:
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();
}
}
(这段代码充满了拼写错误,我不认为它首先会起作用。)