public void Test_ReceiveUpsEvent_FromSubscription() { var pause = new ManualResetEvent(false); var testFilePath = "TestData/apcupsd.events.test"; File.Copy("TestData/apcupsd.events", testFilePath, true); var listener = new ApcupsdEventListener(); var messagesReceived = 0; listener.UpsEventReceived += (sender, args) => { messagesReceived++; Assert.AreEqual(1, args.Events.Length); Assert.AreEqual(DateTime.Parse("2020-05-11 00:14:59 +0100"), args.Events[0].Timestamp); Assert.AreEqual("Power is back. UPS running on mains.", args.Events[0].Message); pause.Set(); }; listener.SubscribeToEventsFile(testFilePath); File.AppendAllLines(testFilePath, new List <string>() { "2020-05-11 00:14:59 +0100 Power is back. UPS running on mains." }); Assert.True(pause.WaitOne(500)); Assert.AreEqual(1, messagesReceived); listener.UnsubscribeFromEventsFile(); }
static async Task Main(string[] args) { var client = new ApcupsdClient("10.1.200.10"); // Get status via NIS Console.WriteLine("UPS Status"); Console.WriteLine("----------"); var resp = client.GetStatus(); Console.WriteLine(resp); // Get events via NIS Console.WriteLine("UPS Events"); Console.WriteLine("----------"); var events = client.GetEvents(); foreach (var evt in events) { Console.WriteLine(evt); } // Get events from file events = client.GetEventsFromFile(); foreach (var evt in events) { Console.WriteLine(evt); } // Subscribe to event file var listener = new ApcupsdEventListener(); listener.UpsEventReceived += (sender, args) => { // args contains an array of UpsEvent. foreach (var evt in args.Events) { Console.WriteLine($"Received: {evt.Timestamp.ToString()} {evt.Message}"); } }; // This should match the EVENTSFILE key in the apcupsd.conf. listener.SubscribeToEventsFile(); Thread.Sleep(10000); listener.UnsubscribeFromEventsFile(); }