Version 1 (modified by hig-iitk, 17 months ago) (diff) |
---|
リフレクティブメモリネットワーク割り込みの受信
intrx レコードタイプと組み合わせて、 ネットワーク割り込みの受信を行う。
Device Type 名は "intrx5565"
Synpsis
record(intrx, "pv-name") { field(DTYP, "intrx5565") field(SCAN, "I/O Intr") field(INP, "#C<card_number> S<int_type> @") field(SNAM, "<subroutine_name>") }
- card_number
The card number designated in argument card in RM5565Configure - int_type
Network-Interrupt type
1 ... Type 1 Network-Interrupt
2 ... Type 2 Network-Interrupt
3 ... Type 3 Network-Interrupt
4 ... Type 4 Network-Interrupt - subroutine_name
Network-Interrupt 発生時に呼び出す関数名
Usage
record(intrx, "RM5565:DEV0:INT1:RX") { field(DTYP, "intrx5565") field(SCAN, "I/O Intr") field(INP, "#C0 S1 @") field(SNAM, "int1func") ・ ・ ・ }
INP フィールドでカード番号/Network-Interrupt Type を指定する。
"C" に続く数字 (例では '0') でカード番号を、 "S" に続く数字 (例では '1') で Network-Interrupt Type を指定しておく。
他ノードから自ノードに対して指定した Network-Interrupt が送信されるとレコードがプロセスされる。
その際、下記フィールドには以下の値がセットされる。
Field | セットされる値 |
NID | Network-Interrupt を送信したノードのID |
VAL | Network-Interrupt Data |
また、フィールド SNAM で指定されたサブルーチン(例では int1func)がコールされる。
関数側の記述例は下記の通り。
void int1func(struct intrxRecord *prec) { ・ ・ ・ } epicsRegisterFunction(int1func);