我是一名电子工程师,我可以使用C.我正在编写一个从ECG模块获取数据并使用插槽数据发送到另一台远程PC的程序。一切正常。我的问题是,我需要在实时流中绘制数据。
为了流数据,我尝试使用gnuplot,一切正常但是当我将fprintf
代码放入while循环中以刷新数组并写入新数据时,它停止工作。
这是我在c程序中调用gnuplot的原始代码的一部分:
FILE* gnuplot = popen("gnuplot -persist", "w");
while(1) {
//pulizia buffer e lettura
bzero(buffer, sizeof(buffer));
n = read(newsockfd,buffer,sizeof(buffer));
if (n < 0) error("Errore nella lettura del Socket");
for (j=0; j <= 255; j++){
printf("%d ",buffer[j]);
}
//comunico con gnuplot e invio i miei dati
fprintf(gnuplot, "plot '-' \n");
for (i = 0; i < NUM_POINTS; i++)
{
fprintf(gnuplot, "%d %d\n", (r+i), buffer[i]);
}
r = r+i+1;
fflush(gnuplot);
}
当我添加printf
时,为什么程序停止工作,我该如何解决?