SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

組込みコンポーネントシステムTECS

【第3回】コンポーネント記述言語TECS CDL


セルタイプtSmapleMainの定義

 セルタイプは、セルの持つ受け口、呼び口、属性、変数を定義します。以下は、sample1のsample_mainセルに対応するセルタイプの定義です。

[singleton]
  celltype tSampleMain {
    entry sMain   eMain;
    call  sTask   cTask[3];
    call  sSystem cSysMain;
    call  sCyc    cCyc;
  };

 この定義は、シンプルなもので、属性、変数はありません。受け口はentryに続けてシグニチャ名と受け口名を書きます。この例ではeMainが受け口になります。呼び口はcallに続いてシグニチャ名と呼び口名を書きます。この例では3つの呼び口が記されています。cTaskは呼び口配列になります。

 この例にありませんでしたが属性(attribute)と変数(var)の、ごく簡単な例を以下に示します。これらは、セルごとに記憶域が確保されます。

attribute {
      int16    attr1;
    };
    var {
      int32    var1;
    };

 attributeはセルの定義時に初期値を与えることができますが、varはセルタイプの定義時にのみ初期値を与えることができます。また、ポインタ変数が配列を指す場合には、指定子size_isにより配列の大きさを指定します。

 この他に、attributeの属性宣言にはrwomit指定子として指定できますが、ここでの説明は省略します。

セルの定義

 シグニチャ、セルタイプと、お膳立てが済んだら組上げを記述できます。

 セルの定義では、属性の初期値と呼び口の結合先を指定します。呼び口を、他のセルの受け口につないでいくことでシステムが組上がっていきます。

 以下の例は、セルタイプcTask(コンポーネント化されたITRONのタスク)に属するmainセルを定義しています。

cell tTask main {
    cMain = sample_main.eMain;
    tskatr = C_EXP( "TA_ACT" );
    itskpri = MAIN_PRIORITY;
  };

 cMainは呼び口で、sample_mainの受け口eMainに結合されます。

 tskatrは属性で、ITRONのタスクを生成するための静的APIであるCRE_TSKattr引数に与える値になります。

 右辺にC_EXPとあるのは、初期値がC言語の式であることを表し、( )内の" "で囲まれた文字列がTECSのジェネレータによって評価されず、そのままC言語ソースに出力されることを意味します。import_Cではtypedefしか取込まれません。このため#defineで定義した定数値を参照するにはC_EXPを使って指定する必要があります。

 ここでジェネレータが出てきましたが、これは前回冒頭で説明したTECSでのアプリケーション開発の流れにあるようにTECS CDLからインタフェースコードを始めとするC言語のプログラムを生成するもので、次回その働きを説明します。

 itskpriも属性で、タスクのプライオリティを指定します。右辺は、先ほど定義した定数です。この右辺はジェネレータによって評価が行われます。

まとめ

 今回は、sample1を元にコンポーネント記述言語TECS CDLについて一通り説明しました。前回のコンポーネント図と併せて、TECSによるコンポーネントの組上げができます。

 次回は、セルタイプコードの書き方を説明します。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
組込みコンポーネントシステムTECS連載記事一覧

もっと読む

この記事の著者

大山 博司(おおやま ひろし)

TOPPERSプロジェクト コンポーネント仕様ワーキンググループ主査オークマ株式会社 FA システム本部 主管技師オークマ株式会社(当時は大隈鉄工所)に入社以来、数値制御装置の制御ソフトウェア開発に従事する。博士(工学)

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3807 2009/04/03 11:37

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー