== エラーの監視 == longin レコードタイプと組み合わせて、リフレクティブメモリのエラー監視を行う。 [[br]] Device Type 名は "'''H/W error'''" '''Synopsis''' {{{ record(longin, "pv-name") { field(DTYP, "H/W error") field(SCAN, "I/O Intr") field(INP, "#C S @[,]") } }}} * '''card_number'''[[br]]The card number designated in argument ''card'' in RM5565PciConfigure * '''error_type'''[[br]]!BadData ... Bad Data[[br]]FIFOFull ... RX FIFO Full[[br]]!RogueDet ... Rogue Packet Detected and Removed[[br]]FIFOAFull ... RX FIFO Almost Full[[br]]!SyncLoss ... Sync Loss * '''severity'''[[br]]NO_ALARM ... NO_ALARM[[br]]MINOR ... MINOR_ALARM[[br]]MAJOR ... MAJOR_ALARM[[br]]INVALID ... INVALID_ALARM '''Usage''' {{{ record(longin, "RM5565:DEV0:BadData") { field(DTYP, "H/W error") field(SCAN, "I/O Intr") field(INP, "#C0 S @BadData,MINOR") ・ ・ ・ } }}} INP フィールドでカード番号/エラータイプを指定する。 [[br]] "C" に続く数字(例では '0')でカード番号を、 "@" に続く文字列(例では '!BadData')でエラータイプを指定しておく。 [[br]] また、',' に続けて Severity (例では 'MINOR') を指定する事も可能である。 Severity 指定は省略も可能で、省略されると 'NO_ALARM' が指定されたのと同様の動作となる。 [[br]] 指定されたエラーが発生すると、VAL が +1 されてレコードがプロセスされる。 [[br]] この時、 INP での Severity 指定が NO_ALARM 以外だった場合、 レコードは指定された Severity で COMM_ALARM 状態となる。 [[br]] 発生したエラーが解除されると、自動でレコードの Alarm 状態が解除されるが、 VAL の値は保持される。 [[br]] つまり、IOC 起動後からの累積発生回数を保持するという事である。 {{{ $ camonitor RM5565:DEV0:BadData RM5565:DEV0:BadData 2016-08-30 13:15:52.958786 0 RM5565:DEV0:BadData 2016-08-30 13:17:32.982779 1 COMM MINOR ← Bad Data エラー発生 RM5565:DEV0:BadData 2016-08-30 13:17:37.674690 1 ← Bad Data エラー解除 }}}