Version 3 (modified by hig-iitk, 10 years ago) (diff) |
---|
transferArrayレコードについて
transferArrayとは
waveformをベースにしたレコードで、あるレコードの任意の範囲を、異なるレコードの任意位置に転送する機能をもつレコードです。
自身の内容は、基本的に転送する領域と同じ内容になります。
また、オプションの指定で、転送領域以降を0クリアすることも可能です。
transferArrayレコードの使用方法について
waveformに対して追加されるパラメータフィールドは下表の通りです。
Field | Summary | Type | DCT | Initial | Access | Modify | Rec Proc Monitor | PP |
OUT | 出力先のレコード | OUTLINK | Yes | 0 | No | No | N/A | No |
TASI | 転送元の要素番号 | ULONG | Yes | 0 | Yes | No | No | No |
TADI | 転送先の要素番号 | ULONG | Yes | 0 | Yes | No | No | No |
TATC | 転送する要素数 | ULONG | Yes | 0 | Yes | No | No | No |
TAZF | Zero-fillフラグ | ULONG | Yes | 0 | Yes | No | No | No |
- OUTフィールドで、転送先のレコードを指定します。
- TASIフィールドで、転送元レコードのどこから転送を開始するかを、要素番号で指定します。指定は0オリジンですので、先頭の要素であれば、0を指定します。転送元レコードの要素数を超える値を指定することはできません。指定するとエラーとなり転送は行われません。
- TADIフィールドで、転送先レコードのどこに転送するかを、要素番号で指定します。TASIフィールドと同様に0オリジンでの指定になります。転送先レコードの要素数を超える値を指定することはできません。指定するとエラーとなり転送は行われません。
- TATCフィールドで、転送する要素数を指定します。転送元レコードや転送先レコードの領域を超えるような転送数を指定した場合、超えた分を無視して可能な分だけ転送を行います。この場合、レコードにLINK_ALARM/ALARM_MINORがセットされます。
サンプル.dbファイル
record(waveform, "hig-iitk:src") { field(NELM, "10") field(FTVL, "LONG") } record(waveform, "hig-iitk:dst") { field(NELM, "10") field(FTVL, "LONG") } record(transferArray, "hig-iitk:ta") { field(NELM, "10") field(FTVL, "LONG") field(INP, "hig-iitk:src") field(OUT, "hig-iitk:dst") field(TASI, "0") field(TADI, "0") field(TATC, "5") field(TAZF, "0") }
Attachments (1)
-
ta-image01.png
(20.6 KB) -
added by hig-iitk 10 years ago.
transferArray動作イメージ01
Download all attachments as: .zip