hipcconfig

名前

hipcconfig - HIPCコンフィギュレーションファイルから、ユーザープログラムのビルドに必要なファイルを生成する

書式

hipcconfig FILE

解説

hipcconfigFILEで指定されたコンフィギュレーションファイルを基に、以下のファイルを出力する。ファイル名の例は、FILEfoo.ymlのときのものである。

出力ファイル

コンフィギュレーションファイルの書式

設定ファイルはYAML形式で記述する。一部の設定項目は記述の省略が可能である。

cfgid:

コンフィギュレーションの識別子を設定する。具体的には、以下の識別子要素を並べることで設定する。上から下に並べられた要素は左から右に連結され、これが最終的な識別子となる。

cfgid:をファイルに書かず設定を省略した場合は、以下の設定をしたことと同じになる。

cfgid:
- baseid:
- ;
- datetime:
- ;
- hexdigest:
- ;
- randbase64:

設定例

cfgid:
- 'datetime:'
- datetime:
- ',digest: 2:'
- digest: 2
- ',hexdigest: 4:'
- hexdigest: 4
- ',rand: 3:'
- rand: 3
- ',randbase64: 4:'
- randbase64: 4

以上の設定から生成される識別子の例:

"datetime:2015-06-11T08:16:46+09:00,digest: 2:\xA0=,hexdigest: 4:a03d,rand: 3:\xA1dI,randbase64: 4:VPBE"

structs:

構造体名とメンバーを設定する。

stru_name:

構造体名はstru_name:の後に文字列で設定する。例: stru_name: STRUbar

members:

構造体メンバーを設定する。

type:

メンバー変数の型を設定する。ポインタなどを含め表記方法は基本的にC言語に準じるが、設定ファイルの前で設定した別の構造体型を指定する場合は例外であり、波括弧{}を使った表記が必要となる。

変数の型がint16_tへのポインタである場合の設定例: type: int16_t *

変数の型がelmという名前の構造体である場合の設定例: type: {struct: elm}

name:

メンバー名を設定する

変数名がfooである場合の設定例: name: foo

array:

メンバーを配列にする。省略が可能で、省略した場合は配列でない普通のメンバー変数となる。配列の要素数は角括弧[]で囲んで記す。配列が多次元の場合は、カンマで数字を区切る。

4要素の配列が8つある二次元配列の設定例: array: [8,4]

出力される構造体定義ヘッダファイルの先頭に挿入する文字列を設定する。省略可能。

出力される構造体定義ヘッダファイルの最後に挿入する文字列を設定する。省略可能。

TIPS:
HIPCの処理を避けてデータを直接やりとりする場合には、1バイト長型の配列が利用できる。
例: { type: unsigned char, array: [32] }

設定ファイルの例

header: |+
 #include <stdint.h>
 #define ARRAY_SIZE 8

cfgid:
- 'datetime:'
- datetime:
- ',digest: 2:'
- digest: 2
- ',hexdigest: 4:'
- hexdigest: 4
- ',rand: 3:'
- rand: 3
- ',randbase64: 4:'
- randbase64: 4

structs:

- stru_name: simple_structure
  members:
  - type: uint8_t
    name: foo
  - type: int16_t *
    name: bar

- stru_name: complex_structure
  members:
  - type: int16_t
    name: simple_array
    array: [ARRAY_SIZE]
  - type: uint8_t
    name: two_dimensional_array
    array: [5,7]
  - type: {struct: simple_structure}
    name: structure
  - type: {struct: simple_structure}
    array: [11]
    name: array_of_structure

footer: |+
 typedef struct complex_structure compstru;

注意事項


TOPページ

Last modified: 2015/07/27 08:00:59 +09:00