wiki:epics/epics/pcie5565/db/intrx

Version 1 (modified by hig-iitk, 3 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);