Add SkyCheck for Mimosa

broken
Harald Wolff 2019-07-09 12:49:47 +02:00
parent 7029fa9b30
commit dd62a40f4e
3 changed files with 85 additions and 0 deletions

83
checks/Mimosa.cs 100644
View File

@ -0,0 +1,83 @@
using System;
using ln.skyscanner.entities;
using ln.types;
using ln.snmp;
using ln.logging;
using ln.snmp.types;
using System.Drawing;
namespace ln.skyscanner.checks
{
public class Mimosa : SkyCheck
{
public Mimosa()
:base("mimosa")
{}
public override void Check(SkyChecker skyChecker, ref SkyCheckState checkState, Node node)
{
MimosaCheckState mimosaCheckState = checkState as MimosaCheckState;
foreach (URI snmpUri in node.FindURIs("snmp"))
{
try
{
using (SnmpInterface snmp = SnmpInterface.FromURI(snmpUri, skyChecker.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;
mimosaCheckState.WritePerformanceValue(String.Format("ptp_rx_pwr_{0}",n), sig, -75.0, 0, -80.0, 0);
mimosaCheckState.WritePerformanceValue(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(SkyChecker 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()
{ }
}
}
}

View File

@ -42,6 +42,7 @@ namespace ln.skyscanner.checks
{
AddSkyCheck(new Hostalive());
AddSkyCheck(new Ubiquiti());
AddSkyCheck(new Mimosa());
AddSkyCheck(new APC());
}
}

View File

@ -104,6 +104,7 @@
<Compile Include="checks\PerformanceValue.cs" />
<Compile Include="import\skytron\SkytronImport.cs" />
<Compile Include="entities\L2Segment.cs" />
<Compile Include="checks\Mimosa.cs" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />