イベントファイル フォーマット アルタスK2、エトナ

イベントファイル( .evt形式)の構造

【注】
・struct K2_HEADERのフォーマットは、将来、機能追加のためのバージョンアップにより、変更されることがありますので、
 あらかじめご了承ください。
 C言語で、K2_HEADERの中の情報を参照するプログラムを作成する場合には、kwhdrs.hで定義された構造体の利用
 を推奨いたします。
・表中の型、および変数は、ファイルフォーマットを定義したC言語用のヘッダファイル、kwhdrs.hの構造体宣言の中で
 使用されているものです。
・表に示される型は、すべてモトローラオーダ、すなわちビッグエンディアンです。
・型のサイズは、char=1byte, short=2bytes, int=2bytes, long=4bytes, floaat=4bytesです。

項目

バイト

説明

A

struct KFF_TAG

16

KFF_TAGのlengthが、次に続くK2_HEADERのバイト数を示しています。

B

struct K2_HEADER

KFF_TAGのlength

K2ヘッダです。機器、測定条件、測定日時等の情報を含んでいます。

A

struct KFF_TAG

16

KFF_TAGの以下の変数に、次に続くフレームヘッダ、およびデータ部のサイズが示されています。
length:次のフレームヘッダのバイト数
dataLength:フレームヘッダに続くデータ部のサイズ

C

struct FRAME_HEADER

KFF_TAGのlength

フレームヘッダ

D

符号付整数
2、3、4バイト長

KFF_TAGのdataLength

データ部(0.1秒分)

-

以下A、C、Dの繰り返し

- -

A. KFF_TAG(16バイト)

項目

変数名

バイト数

バイト位置

説明

A.1

unsigned char

sync

1

0

同期キャラクタ'K'

A.2

unsigned char

byteOrder

1

1

バイト順。常に1。
0=INTEL( リトルエンディアン)、
1=MOTOROLA(ビッグエンディアン)

A.3

unsigned char

version

1

2

ファイルフォーマットバージョン =1

A.4

unsigned char

instrumentType

1

3

機器種別コード

A.5

unsigned long

type

4

4

構造体タイプコード

A.6

unsigned short

length

2

8

構造体サイズ(バイト)

A.7

unsigned short

dataLength

2

10

構造体に続くデータサイズ(バイト)

A.8

unsigned short

id

2

12

機器の製造番号

A.9

unsigned short

checksum

2

14

構造体とデータの16ビットチェックサム

C. FRAME_HEADER(32バイト)

項目

変数

バイト

バイト位置

説明

C.1

unsigned char

frameType

1

0

フレームタイプ (K2の場合は3

C.2

unsigned char

instrumentCode

1

1

測定ード

C.3

unsigned short

recorderID

2

2

製造番号

C.4

unsigned short

frameSize

2

4

当該フレームのサイズ(フレームヘッダ32バイトを含む)

C.5

unsigned long

blockTime

4

6

ブロックタイム

C.6

unsigned short

channelBitMap

2

10

使用チャンネルビットマップ ch.1=bit0、ch.2=bit1 …
使用チャンネルのビットは1にセットされます。

C.7

unsigned short

streamPar

2

12

Bits 0-11 =サンプリングレート 1..4095(sps)
Bits 12-15 = Stream number 0..15

C.8

unsigned char

frameStatus

1

14

Bits 0-3 =フレームシーケンス番号 0..9
Bit4=フレームがトリガレベルを超えていれば1
Bit5=圧縮フラグ(1の時圧縮)
Bits 6-7 =サンプルサイズ
1=2 bytes、2=3 bytes、3=4 bytes

C.9

unsigned char

frameStatus2

1

15

Bit 0 = ADD SCAN commandが実行されていれば1
Bits 1-7 現在未使用.

C.10

unsigned short

msec

2

16

時刻msec 0..999

C.11

unsigned char

channelBitMap1

1

18

拡張チャンネルビットマップ ch17-24

C.12

unsigned char

timeCode

[TIMECODE_BYTES]

13

19

タイムコード
timeCode[0]:Bits 4-7=タイムコードタイプ(TBD)
timeCode[0]:Bit 3 =先頭サンプルのタイムコードビット
timeCode[0]:Bit 2= 2サンプル目のタイムコードビット.
以下順に続く
timeCode[12]:Bit 0=最終サンプルのタイムコードビット
(タイムコードビットは、0=low, 1=high)

D. データ部

項目 型名 バイト 説明
D.1 int data [nch] ........D#1 D#1 最初のサンプルのデータです。
・・・ int data [nch] ........D#1 D#1 n番目のサンプルのデータです。
D.X int data [nch] ........D#1 D#1 最終サンプルのデータです。 D#2

D#1
 ただし、このintのサイズは2,3,4バイトの何れかの符号付整数です。
 FRAME_HEADRのframe_Statusのbit6-7から知ることができます。
 アルタスK2では通常3バイトです。
 また、nchはチャンネル数で、FRAME_HEADERのchannelBitMapで、1にセットされている
 ビットの数から知ることができます。
 データは、小さいチャンネルから大きいチャンネルの順に並んでいます。

D#2
 1フレームには0.1秒分のデータが含まれます。したがって、サンプリングレートによりデータ数が
 異なります。サンプリングレートが100Hzの場合、10サンプルです。