HAL Component
まとめを少々、その1。LinuxCNCでハードウェアをドライブするために必要な部分、HAL Componentを作成する必要があります。マニュアルには、Cで書くと冗長で退屈な作業になるみたいな事が書いてあって、代わりに、HAL Component Generatorを使うとありました。
基本、C言語の構文ですが、独自のパラメータやマクロ的なものを使用することで簡単になるかんじで、filename.compを書いて、compコマンドでコンパイル、インストールします。
sudo comp --install filename.comp
でコンパイル、インストール。
comp filename.comp
として、filename.cを生成、などができます。
さて、Componentの記述についてどうすればという事で、まずは、picncのコード、LinuxCNCのマニュアルを参考に、
- component
- description
- pin
- param
- variable
- option
- function
- license
- auther
- EXTRA_SETUP()
- EXTRA_CLEANUP()
- FUNCTION()
パラメータ部の構文
使用したもののみ説明します。component HALNAME (DOC);
コンポーネントの名称を定義。
description DOC;
使い方等の説明を記述。
pin PINDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;
入出力を定義。入出力の方向、bit, signed, unsigned、またはfloatの型、名称などを指定します。配列として定義することも可能。
param PARAMDIRECTION TYPE HALNAME ([SIZE]|[MAXSIZE: CONDSIZE]) (if CONDITION) (= STARTVALUE) (DOC) ;
パラメータ、r(ead)、w(rite)、またはrwの指定、bit, signed, unsigned、またはfloatの型、名称などを指定。
option OPT (VALUE);
singleton yes; - RPiにはGPIOは1個だけなので、インスタンスは1個を指定。
option extra_setup; - GPIOの入出力を設定。
option extra_cleanup; - GPIOの初期化。すべて入力に戻す。
function HALNAME (fp | nofp) (DOC);
ファンクションが1個だけの時は名前を省略できるようです。GPIOの入出力を設定するための関数。
license LICENSE;
ライセンスを記述。
auther AUTHOR;
作成者の記述。
以上の順序は特になく、最後に「;;」をつけてパラメータ部を区切ります。
続く・・・
0 件のコメント:
コメントを投稿