85 lines
2.7 KiB
C#
85 lines
2.7 KiB
C#
using System;
|
|
using ln.skyscanner.entities;
|
|
using ln.types;
|
|
using ln.snmp;
|
|
using ln.logging;
|
|
using ln.snmp.types;
|
|
using System.Drawing;
|
|
using ln.skyscanner.services;
|
|
|
|
namespace ln.skyscanner.checks
|
|
{
|
|
public class Mimosa : SkyCheck
|
|
{
|
|
public Mimosa()
|
|
:base("mimosa")
|
|
{}
|
|
|
|
public override void Check(CheckService checkService, ref SkyCheckState checkState, Node node)
|
|
{
|
|
MimosaCheckState mimosaCheckState = checkState as MimosaCheckState;
|
|
|
|
foreach (URI snmpUri in node.FindURIs("snmp"))
|
|
{
|
|
try
|
|
{
|
|
using (SnmpInterface snmp = SnmpInterface.FromURI(snmpUri, checkService.SNMPEngine))
|
|
{
|
|
Sequence[][] sigData = snmp.snmpWalk(new string[] {
|
|
"1.3.6.1.4.1.43356.2.1.2.6.1.1.3", // Signal Level
|
|
"1.3.6.1.4.1.43356.2.1.2.6.1.1.5", // SNR
|
|
});
|
|
|
|
for (int n = 0; n < 4; n++)
|
|
{
|
|
if ((sigData.Length <= n))
|
|
break;
|
|
|
|
double sig = (sigData[n][0].Items[1] as Integer).LongValue / 10.0;
|
|
double snr = (sigData[n][1].Items[1] as Integer).LongValue / 10.0;
|
|
|
|
node.WritePerformanceValue(checkService.PerformanceValueService, Name, String.Format("ptp_rx_pwr_{0}",n), sig, -75.0, 0, -80.0, 0);
|
|
node.WritePerformanceValue(checkService.PerformanceValueService, Name, String.Format("ptp_rx_snr_{0}",n), snr, 12, 99, 8, 99);
|
|
|
|
|
|
}
|
|
|
|
}
|
|
break;
|
|
} catch (Exception e)
|
|
{
|
|
Logging.Log(LogLevel.ERROR, "Exception caught in Mimosa(SkyCheck): {0}", e);
|
|
Logging.Log(e);
|
|
}
|
|
}
|
|
}
|
|
public override bool IsValid(Node node)
|
|
{
|
|
return (node.Vendor != null) && node.Vendor.Equals("mimosa");
|
|
}
|
|
|
|
public override SkyCheckState PrepareCheckState(CheckService skyChecker, Node node)
|
|
{
|
|
return new MimosaCheckState(this, node);
|
|
}
|
|
|
|
class MimosaCheckState : SkyCheckState
|
|
{
|
|
public dVdT RXRate { get; private set; }
|
|
public dVdT TXRate { get; private set; }
|
|
|
|
public MimosaCheckState(SkyCheck skyCheck, Node node)
|
|
: base(skyCheck, node)
|
|
{
|
|
RXRate = new dVdT();
|
|
TXRate = new dVdT();
|
|
}
|
|
private MimosaCheckState()
|
|
{ }
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|