gnuplot直播与c

时间:2017-07-26 14:50:46

标签: c raspberry-pi gnuplot electronics

我是一名电子工程师,我可以使用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时,为什么程序停止工作,我该如何解决?

0 个答案:

没有答案