| 1 | == リフレクティブメモリネットワーク割り込みの受信 == |
| 2 | intrx レコードタイプと組み合わせて、 ネットワーク割り込みの受信を行う。 [[br]] |
| 3 | Device Type 名は "'''intrx5565'''" |
| 4 | |
| 5 | '''Synpsis''' |
| 6 | {{{ |
| 7 | record(intrx, "pv-name") { |
| 8 | field(DTYP, "intrx5565") |
| 9 | field(SCAN, "I/O Intr") |
| 10 | field(INP, "#C<card_number> S<int_type> @") |
| 11 | field(SNAM, "<subroutine_name>") |
| 12 | } |
| 13 | }}} |
| 14 | * card_number[[br]]The card number designated in argument card in RM5565Configure |
| 15 | * int_type[[br]]Network-Interrupt type[[br]]1 ... Type 1 Network-Interrupt[[br]]2 ... Type 2 Network-Interrupt[[br]]3 ... Type 3 Network-Interrupt[[br]]4 ... Type 4 Network-Interrupt |
| 16 | * subroutine_name[[br]]Network-Interrupt 発生時に呼び出す関数名 |
| 17 | |
| 18 | '''Usage''' |
| 19 | {{{ |
| 20 | record(intrx, "RM5565:DEV0:INT1:RX") { |
| 21 | field(DTYP, "intrx5565") |
| 22 | field(SCAN, "I/O Intr") |
| 23 | field(INP, "#C0 S1 @") |
| 24 | field(SNAM, "int1func") |
| 25 | ・ |
| 26 | ・ |
| 27 | ・ |
| 28 | } |
| 29 | }}} |
| 30 | INP フィールドでカード番号/Network-Interrupt Type を指定する。 [[br]] |
| 31 | "C" に続く数字 (例では '0') でカード番号を、 "S" に続く数字 (例では '1') で Network-Interrupt Type を指定しておく。 [[br]] |
| 32 | 他ノードから自ノードに対して指定した Network-Interrupt が送信されるとレコードがプロセスされる。 [[br]] |
| 33 | その際、下記フィールドには以下の値がセットされる。 [[br]] |
| 34 | ||Field||セットされる値 || |
| 35 | ||NID ||Network-Interrupt を送信したノードのID|| |
| 36 | ||VAL ||Network-Interrupt Data || |
| 37 | |
| 38 | また、フィールド SNAM で指定されたサブルーチン(例では int1func)がコールされる。 [[br]] |
| 39 | 関数側の記述例は下記の通り。 |
| 40 | {{{ |
| 41 | void int1func(struct intrxRecord *prec) |
| 42 | { |
| 43 | ・ |
| 44 | ・ |
| 45 | ・ |
| 46 | } |
| 47 | epicsRegisterFunction(int1func); |
| 48 | }}} |