diff --git a/checks/Mimosa.cs b/checks/Mimosa.cs
new file mode 100644
index 0000000..825ad1e
--- /dev/null
+++ b/checks/Mimosa.cs
@@ -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()
+ { }
+
+ }
+
+
+ }
+}
diff --git a/checks/SkyCheck.cs b/checks/SkyCheck.cs
index f14eb31..688b558 100644
--- a/checks/SkyCheck.cs
+++ b/checks/SkyCheck.cs
@@ -42,6 +42,7 @@ namespace ln.skyscanner.checks
{
AddSkyCheck(new Hostalive());
AddSkyCheck(new Ubiquiti());
+ AddSkyCheck(new Mimosa());
AddSkyCheck(new APC());
}
}
diff --git a/ln.skyscanner.csproj b/ln.skyscanner.csproj
index 950c0c4..d1fb0e1 100644
--- a/ln.skyscanner.csproj
+++ b/ln.skyscanner.csproj
@@ -104,6 +104,7 @@
+