伊夫這樣寫代碼,從傳感器讀取數據:處理數據 - C編程
char c;
do{
while(!read(fd, &c, 1));
} while (c!='$');
do{
while(!read(fd, &c, 1));
} while (c!=',');
do{
while(!read(fd, &c, 1));
printf("%c",c);
fp = fopen("/var/www/Sensor_data.txt", "a");
fprintf(fp, "%c%", c);
fclose(fp);
} while (c!='\n');
的文件,那麼看起來像
518.088131,0.272969,0.376242,0.522998,0.368944, 0.347478,0.343025,0.252323,0.612587,0.552753,0.120302,806.230415
我然後像一個辦法procces這個數據,所以我把DA ta編號2,3,4,5,6,7,8(粗體字),並轉換爲新文件。 任何人都可以舉一個這樣的程序的例子嗎?或者更喜歡修改我的程序,使其生成一個包含所有數據的文件,以及其他7個包含1個數據的文件。
我不太同意你讀數據的方式。如果您從傳感器讀取錯誤,您可能會陷入無限循環。 – SlySherZ 2014-10-31 13:34:09
在do循環內部打開和關閉是SLOW。在do循環之前僅打開一次,然後在循環退出後僅關閉一次。 – user3629249 2014-11-01 05:41:16
通過首先使用select()等待數據可用,將所有數據讀入緩衝區,然後丟棄前導$ ....然後寫入剩餘的數據,執行讀取將是一個非常好的主意,在單個寫入中輸出到輸出文件。這將更快,操作系統的負擔更小。 – user3629249 2014-11-01 05:44:05