| 1 | == エラーの監視 == |
| 2 | longin レコードタイプと組み合わせて、リフレクティブメモリのエラー監視を行う。 [[br]] |
| 3 | Device Type 名は "'''H/W error'''" |
| 4 | |
| 5 | '''Synopsis''' |
| 6 | {{{ |
| 7 | record(longin, "pv-name") { |
| 8 | field(DTYP, "H/W error") |
| 9 | field(SCAN, "I/O Intr") |
| 10 | field(INP, "#C<card_number> S @<error_type>[,<severity>]") |
| 11 | } |
| 12 | }}} |
| 13 | * '''card_number'''[[br]]The card number designated in argument ''card'' in RM5565PciConfigure |
| 14 | * '''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 |
| 15 | * '''severity'''[[br]]NO_ALARM ... NO_ALARM[[br]]MINOR ... MINOR_ALARM[[br]]MAJOR ... MAJOR_ALARM[[br]]INVALID ... INVALID_ALARM |
| 16 | |
| 17 | '''Usage''' |
| 18 | {{{ |
| 19 | record(longin, "RM5565:DEV0:BadData") { |
| 20 | field(DTYP, "H/W error") |
| 21 | field(SCAN, "I/O Intr") |
| 22 | field(INP, "#C0 S @BadData,MINOR") |
| 23 | ・ |
| 24 | ・ |
| 25 | ・ |
| 26 | } |
| 27 | }}} |
| 28 | INP フィールドでカード番号/エラータイプを指定する。 [[br]] |
| 29 | "C" に続く数字(例では '0')でカード番号を、 "@" に続く文字列(例では '!BadData')でエラータイプを指定しておく。 [[br]] |
| 30 | また、',' に続けて Severity (例では 'MINOR') を指定する事も可能である。 Severity 指定は省略も可能で、省略されると 'NO_ALARM' が指定されたのと同様の動作となる。 [[br]] |
| 31 | 指定されたエラーが発生すると、VAL が +1 されてレコードがプロセスされる。 [[br]] |
| 32 | この時、 INP での Severity 指定が NO_ALARM 以外だった場合、 レコードは指定された Severity で COMM_ALARM 状態となる。 [[br]] |
| 33 | 発生したエラーが解除されると、自動でレコードの Alarm 状態が解除されるが、 VAL の値は保持される。 [[br]] |
| 34 | つまり、IOC 起動後からの累積発生回数を保持するという事である。 |
| 35 | {{{ |
| 36 | $ camonitor RM5565:DEV0:BadData |
| 37 | RM5565:DEV0:BadData 2016-08-30 13:15:52.958786 0 |
| 38 | RM5565:DEV0:BadData 2016-08-30 13:17:32.982779 1 COMM MINOR ← Bad Data エラー発生 |
| 39 | RM5565:DEV0:BadData 2016-08-30 13:17:37.674690 1 ← Bad Data エラー解除 |
| 40 | }}} |