private static void PrintUPSVar(UPS ups, string varName) { UPSDClient client = new UPSDClient(ups.Host); try { client.Connect(); string result = client.GetUPSVar(ups.Name, varName); Console.WriteLine(result); } catch (SocketException sockex) { Console.WriteLine("Error: " + sockex.Message); } catch (UPSException upsex) { Console.WriteLine("Error: " + upsex.Description); } finally { client.Disconnect(); } }
public void UpdateStatus() { try { if (this.Connected == false) { this.Status = UPSMonStatus.NOCOMMS; return; } string upsdStatus = upsd.GetUPSVar(this.Device.Name, "ups.status"); this.Status &= ~UPSMonStatus.ALLUPSD; string[] parts = upsdStatus.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); foreach (string status in parts) { switch (status.ToUpper()) { case "OL": this.Status |= UPSMonStatus.ONLINE; break; case "OB": this.Status |= UPSMonStatus.ONBATT; break; case "LB": this.Status |= UPSMonStatus.LOWBATT; break; case "HB": this.Status |= UPSMonStatus.HIGHBATT; break; case "RB": this.Status |= UPSMonStatus.REPLACEBATT; break; case "CHRG": this.Status |= UPSMonStatus.CHARGING; break; case "DISCHRG": this.Status |= UPSMonStatus.DISCHARGING; break; case "BYPASS": this.Status |= UPSMonStatus.BYPASS; break; case "CAL": this.Status |= UPSMonStatus.CALIBRATION; break; case "OFF": this.Status |= UPSMonStatus.OFF; break; case "OVER": this.Status |= UPSMonStatus.OVERLOADED; break; case "TRIM": this.Status |= UPSMonStatus.TRIM; break; case "BOOST": this.Status |= UPSMonStatus.BOOST; break; case "FSD": this.Status |= UPSMonStatus.FSD; break; } } this.LastUpdate = DateTime.Now; } catch (SocketException sockex) { UPSMonThreads.AppendLog("Network error communicating to UPS " + this.Device.ToString() + "! " + sockex.Message); if (this.Status != UPSMonStatus.NOCOMMS) { this.Status &= ~UPSMonStatus.COMMOK; this.Status |= UPSMonStatus.COMMBAD; } upsd.Disconnect(); } catch (UPSException upsex) { UPSMonThreads.AppendLog("Error on UPS " + this.Device.ToString() + "! " + upsex.Message); if (this.Status != UPSMonStatus.NOCOMMS) { this.Status &= ~UPSMonStatus.COMMOK; this.Status |= UPSMonStatus.COMMBAD; } } }