関数win_readChannelBlock マニュアル

(The documentation of function win_readChannelBlock)

Last Update: 2023/3/23


◆機能・用途(Purpose)

WINファイルからチャンネルブロックを読み込む。
Read a channel block from a WIN file.


◆形式(Format)

#include <win/readwrite.h>
inline struct win_channelBlock win_readChannelBlock
(const unsigned char ∗dataStr, const struct humanTime time_channel_block)


◆引数(Arguments)

dataStr WINファイルから読み込んだ部分バイト列。 先頭がチャンネルブロックの先頭に対応し、 かつ少なくともそのチャンネルブロック全体を含んでいなければならない。 それ以降のバイト列が続いていても構わない。
A partial byte sequence read from a WIN file. This sequence must start from the beginning of a channel block, and must consist of at least the entire data of the channel block. The byte sequence may contain data after the channel block.
time_channel_block チャンネルブロックの時刻。
The time of the channel block.


◆戻り値(Return value)

読み込んだチャンネルブロックを代入した構造体。各メンバの値は以下のようになる。
A structure that represents the channel block read, composed of the following members.

メンバ
Member

Value
channelCode dataStr[0]から始まるチャンネルブロックの チャンネルコード。
The channel code of the channel block starting from dataStr[0].
sampleSize dataStr[0]から始まるチャンネルブロックの 2番目以降のデータサンプルの1サンプルあたりのバイト数。
The number of bytes per each data sample (except for the first sample) of the channel block starting from dataStr[0].
samplingRate dataStr[0]から始まるチャンネルブロックの サンプリングレート(Hz)。 総サンプル数でもある(1秒分のデータなので)。
The sampling rate (Hz) of the channel block starting from dataStr[0]. This value is equal to the number of data samples in the channel block because the data is 1-s long.
size dataStr[0]から始まるチャンネルブロックの サイズ(バイト数)。
The size (the number of bytes) of the channel block starting from dataStr[0].
initialValue dataStr[0]から始まるチャンネルブロックの 先頭のデータサンプルの値(整数値)。
The value (integer) of the 1st data sample of the channel block starting from dataStr[0].
data_diff dataStr[0]から始まるチャンネルブロックの 2番目以降のデータサンプルの値 (直前のサンプルとの差分、整数値)から成る配列。
An array composed of the values of 2nd and later data samples of the channel block starting from dataStr[0]. Each data sample is the increment from the previous data sample and is represented by an integer.

なお、1サンプルあたりのバイト数は0-4にならなければならないが、 どういうわけかそれ以外の値が読み込まれることがある。 このような場合であってもそれ以降の時刻のデータの読み込みを可能にするため、 エラーとはせず警告を出すのみに留め、 この関数ではメンバsizeに0を代入して返す。
The number of bytes per each data sample must be 0-4; however, other values sometimes appear for an unresolved reason. Even in this case, this function does not issue an error to continue reading the following data. Instead, this function issues just a warning, and return with 0 for member size.


◆使用例(Example)

FILE ∗fp=fopen("data.win","rb");
fread(size_char,4,1,fp);
long size=win_binary2long(size_char,4);
fread(dataStr,size,1,fp);
struct win_channelBlock channelBlock =win_readChannelBlock(&dataStr[6]);
fclose(fp);

この例ではファイルdata.winから最初の1秒分のデータを読み込んで その最初のチャンネルブロックを構造体channelBlockに代入する。
In this example, the first 1-s data is read from a file data.win and its first channel block is inserted into a structure channelBlock.