1

外部デバイスからバッファを読み取る次の関数を作成しました(別の関数でシリアルポートを開きました)。ノンストップの結果が必要なため、これを for ループにしています。

int get_data(int fd)
{
  int n;

for (;;)
 {
   char buff[1000];
   n=read(fd,buff,1000);
   printf("%s\n\n", buff);
   sleep(1);
   memset(buff, 0, 1000);
 }
}

バッファは、次のように 10 秒ごとに異なる結果を返します。

machine 1:vol=3.44V, str=10.2
machine 2:vol=3.23V, str=10.00

10秒後

machine 1:vol=3.24V, str=11.2
machine 1:vol=3.27V, str=11.4

私の質問は、すべての vol 値を配列に保存し、2 番目の配列に str 値を保存するにはどうすればよいですか? 次のステップとして、これらのデータを配列から mysql データベースに保存します。strncpy を使用して文字列を新しい配列にコピーすることを考えましたが、それは良い考えではないと思います。例えば:

char vol[10];
strncpy(vol, buff + 15, 4);
printf("%s\n", vol);

あなたは私に何を提案しなければなりませんか?

4

2 に答える 2