int parseRecvData(int first, int last, int steps, int data_byte) { printf("fisrt: %d, last: %d, steps: %d, data_byte: %d\n", first, last, steps, data_byte); int n; char buffer[pImpl::LineSize]; while ((n = readLine(buffer, LineSize, FirstTimeout)) > 0) { // !!! n が最大数の場合、行末が isLF であることで正当性を判定する // !!! data_byte 分だけ取り出してはバッファに追加し、変換する // !!! 余った分は、バッファに足しておく // !!! 次に登録するべきバイト数を保持しておけばよさげ // !!! 正当でないデータがきたら、その時点で処理を中止、 // !!! -> 全部なかったことにする // !!! -> 以降のデータをなかったことにする // !!! いずれにせよ、データは読み切ってしまうべき // !!! 変換結果の数値列をためるのは、vector なメンバ変数にしとけばよさげ //fprintf(stderr, "data: %s\n", buffer); } // !!! 正常に受信が終われば、データ格納クラスに展開して配置 return -1; }