//SeisNetWatch RuleSet File // // Comments begin with // or # or appear within /* */ #test '#'-style comments /* test 'C'-style comments */ //Usage Level Definitions: [Usages] usageFull //name used in this file { name = "Full" //name used externally value = 4 color = White desc = "Usage Level Full" } usageEval //name used in this file { name = "Evaluation" //name used externally value = 3 symbol = "E" description = "Usage Level Evaluation" } usageTelem //name used in this file { name = "TelemetryOnly" //name used externally value = 2 symbol = "T" desc = "Usage Level Telemetry-Only" } usageOff //name used in this file { name = "Off" //name used externally value = 1 symbol = "X" desc = "Usage Level Off" } usageUndefined //name used in this file { name = "Undefined" //name used externally value = 0 color = Black desc = "Usage Level Undefined" } //Status Level Definitions: [Statuses] statusGood //name used in this file { name = "Good" //name used externally value = 3 color = Green desc = "Status Level Good" } statusFair //name used in this file { name = "Fair" //name used externally value = 2 color = Yellow desc = "Status Level Fair" } statusBad //name used in this file { name = "Bad" //name used externally value = 1 color = Red desc = "Status Level Bad" } statusUnknown //name used in this file { name = "Unknown" //name used externally value = 0 color = Black desc = "Status Level Unknown" } //Station Template Definitions: [DefaultRuleSet] usageFull { "Secs Since Last Packet of Chan HLZ.uFull" "Secs Since Last Packet of Chan EHZ.uFull" "Secs Since Last Packet of Chan SCZ.uFull" "Secs Since Last Packet of Chan HHZ.uFull" "Secs Since Last Packet of Chan BHZ.uFull" "Secs of Latency for Chan HLZ.uFull" "Secs of Latency for Chan EHZ.uFull" "Secs of Latency for Chan SCZ.uFull" "Secs of Latency for Chan HHZ.uFull" "Secs of Latency for Chan BHZ.uFull" DataLatency.uFull ClockQuality.uFull MassPosition.uFull BooleanTest.uFull ChangingParamOne.uFull } usageEval { "Secs of Latency for Chan HLZ.uFull" "Secs of Latency for Chan EHZ.uFull" "Secs of Latency for Chan SCZ.uFull" "Secs of Latency for Chan HHZ.uFull" "Secs of Latency for Chan BHZ.uFull" DataLatency.uEval ClockQuality.uEval MassPosition.uEval BooleanTest.uFull //reuse Full usage ChangingParamOne.uEval } usageTelem { DataLatency.uTelem ClockQuality.uEval //reuse Eval usage MassPosition.uTelem BooleanTest.uFull //reuse Full usage ChangingParamOne.uTelem } usageOff { DataLatency.uOff ClockQuality.uOff MassPosition.uOff BooleanTest.uFull //reuse Full usage ChangingParamOne.uOff } [BasicQuanterraRuleSet] usageFull { DataLatency.uFull ClockQuality.uFull ChangingParamOne.uFull } usageEval { DataLatency.uEval ClockQuality.uEval ChangingParamOne.uEval } usageTelem { DataLatency.uTelem ClockQuality.uEval //reuse Eval usage ChangingParamOne.uTelem } usageOff { DataLatency.uOff ClockQuality.uOff ChangingParamOne.uOff } [BasicK2RuleSet] usageFull { "Secs of Latency for Chan HLZ.uFull" DataLatency.uFull ClockQuality.uFull MassPosition.uFull BooleanTest.uFull ChangingParamOne.uFull } usageEval { "Secs of Latency for Chan HLZ.uFull" DataLatency.uEval ClockQuality.uEval MassPosition.uEval BooleanTest.uFull //reuse Full usage ChangingParamOne.uEval } usageTelem { "Secs of Latency for Chan HLZ.uFull" DataLatency.uTelem ClockQuality.uEval //reuse Eval usage MassPosition.uTelem BooleanTest.uFull //reuse Full usage ChangingParamOne.uTelem } usageOff { DataLatency.uOff ClockQuality.uOff MassPosition.uOff BooleanTest.uFull //reuse Full usage ChangingParamOne.uOff } [BasicOrbRuleSet] usageFull { DataLatency.uFull ClockQuality.uFull MassPosition.uFull BooleanTest.uFull ChangingParamOne.uFull } usageEval { DataLatency.uEval ClockQuality.uEval MassPosition.uEval BooleanTest.uFull //reuse Full usage ChangingParamOne.uEval } usageTelem { DataLatency.uTelem ClockQuality.uEval //reuse Eval usage MassPosition.uTelem BooleanTest.uFull //reuse Full usage ChangingParamOne.uTelem } usageOff { DataLatency.uOff ClockQuality.uOff MassPosition.uOff BooleanTest.uFull //reuse Full usage ChangingParamOne.uOff } //Criteria Definitions: [Criterias] "Secs of Latency for Chan HHZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent DataLatency = system time - end_time_timestamp on packet: Negative values indicate a positive drift of the station clock OR, more likely, a poorly timed server (get NTP)." } "Secs of Latency for Chan SCZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent DataLatency = system time - end_time_timestamp on packet: Negative values indicate a positive drift of the station clock OR, more likely, a poorly timed server (get NTP)." } "Secs of Latency for Chan BHZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent DataLatency = system time - end_time_timestamp on packet: Negative values indicate a positive drift of the station clock OR, more likely, a poorly timed server (get NTP)." } "Secs of Latency for Chan EHZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent DataLatency = system time - end_time_timestamp on packet: Negative values indicate a positive drift of the station clock OR, more likely, a poorly timed server (get NTP)." } "Secs Since Last Packet of Chan HHZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent last good: This is the number of seconds since the ewagent has seen a good packet for the channel specified. If this number is very large then there is a problem with the data delivery for this channel or the latency of constructing packets for this sample rate is so large that the poll time of the ewagent is too small." } "Secs Since Last Packet of Chan BHZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent last good: This is the number of seconds since the ewagent has seen a good packet for the channel specified. If this number is very large then there is a problem with the data delivery for this channel or the latency of constructing packets for this sample rate is so large that the poll time of the ewagent is too small." } "Secs Since Last Packet of Chan EHZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent last good: This is the number of seconds since the ewagent has seen a good packet for the channel specified. If this number is very large then there is a problem with the data delivery for this channel or the latency of constructing packets for this sample rate is so large that the poll time of the ewagent is too small." } "Secs Since Last Packet of Chan SCZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent last good: This is the number of seconds since the ewagent has seen a good packet for the channel specified. If this number is very large then there is a problem with the data delivery for this channel or the latency of constructing packets for this sample rate is so large that the poll time of the ewagent is too small." } "Secs Since Last Packet of Chan HLZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent last good: This is the number of seconds since the ewagent has seen a good packet for the channel specified. If this number is very large then there is a problem with the data delivery for this channel or the latency of constructing packets for this sample rate is so large that the poll time of the ewagent is too small." } "Secs of Latency for Chan HLZ" { uFull { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uEval { statusBad >= -100 statusGood >= 0 statusFair >= 25 statusBad >= 50 } uTelem { statusGood >= 0 statusFair >= 25 statusBad >= 50 } uOff { statusGood >= 0 } helpString = "ewagent DataLatency = system time - end_time_timestamp on packet: Negative values indicate a positive drift of the station clock OR, more likely, a poorly timed server (get NTP)." } DataLatency { uFull { statusBad >= 0 statusFair >= 50 statusGood >= 75 } uEval { statusBad >= 0 statusFair >= 25 statusGood >= 50 } uTelem { statusFair >= 5 statusGood >= 10 } uOff { statusGood >= 0 } helpString = "DataLatency help string" } ClockQuality { helpString = "ClockQuality help string" uFull { statusGood >= 1 statusFair >= 2 statusBad >= 3 } uEval { statusGood >= 2 statusBad >= 4 } uOff { statusGood >= 0 } } MassPosition { uFull { statusBad >= 0.0 statusFair >= 10.0 statusGood >= 18.0 } uEval { statusBad >= 0.0 statusFair >= 5.0 statusGood >= 10.0 } helpString = "MassPosition help string" uTelem { statusBad >= 0.0 statusGood >= 1.0 } uOff { statusGood >= 0.0 } } BooleanTest { uFull { statusBad >= false statusGood >= true } uOff { statusGood >= false } helpString = "BooleanTest help string" } ChangingParamOne { uFull { statusBad >= 0 statusFair >= 1000 statusGood >= 1100 } uEval { statusBad >= 0 statusFair >= 900 statusGood >= 1000 } uTelem { statusFair >= 0 statusGood >= 900 } uOff { statusGood >= 0 } helpString = "ChangingParamOne help string" } "Time of this EW Poll" { helpString = "This is the local time on the system when the last poll of the ewagent was made." } "Secs since last EW Poll" { helpString = "The number of seconds expired since the ewagent last polled the WAVE ring. This is a timeout that is configurable in the ewagent.d file and is the intervals between polls." } "Secs Duration of this EW Poll" { helpString = "How long in seconds the ewagent was polling the WAVE ring and examining the trace_buf packets. This is a configurable quantity in the ewagent.d file." }