From bf278bea3fa0c19b45dba84d25de85a8489be5d9 Mon Sep 17 00:00:00 2001 From: Rem0o Date: Fri, 7 Jul 2023 13:05:15 -0400 Subject: [PATCH] Wrap stream.getfeature in try/catch (#1113) --- .../Controller/AquaComputer/AquastreamXT.cs | 15 ++++++++++++--- .../Hardware/Controller/AquaComputer/MPS.cs | 13 +++++++++++-- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/LibreHardwareMonitorLib/Hardware/Controller/AquaComputer/AquastreamXT.cs b/LibreHardwareMonitorLib/Hardware/Controller/AquaComputer/AquastreamXT.cs index 896185a..9e3b820 100644 --- a/LibreHardwareMonitorLib/Hardware/Controller/AquaComputer/AquastreamXT.cs +++ b/LibreHardwareMonitorLib/Hardware/Controller/AquaComputer/AquastreamXT.cs @@ -5,6 +5,7 @@ using System; using System.Diagnostics.CodeAnalysis; +using System.IO; using HidSharp; namespace LibreHardwareMonitor.Hardware.Controller.AquaComputer; @@ -119,8 +120,16 @@ internal sealed class AquastreamXT : Hardware //TODO: Check tested and fix unknown variables public override void Update() { - _rawData[0] = 0x4; - _stream.GetFeature(_rawData); + try + { + _rawData[0] = 0x4; + _stream.GetFeature(_rawData); + } + catch (IOException) + { + return; + } + if (_rawData[0] != 0x4) return; @@ -156,4 +165,4 @@ internal sealed class AquastreamXT : Hardware MODE_FAN_AMP = 2, MODE_FAN_CONTROLLER = 4 } -} \ No newline at end of file +} diff --git a/LibreHardwareMonitorLib/Hardware/Controller/AquaComputer/MPS.cs b/LibreHardwareMonitorLib/Hardware/Controller/AquaComputer/MPS.cs index 8c30c97..ea39fad 100644 --- a/LibreHardwareMonitorLib/Hardware/Controller/AquaComputer/MPS.cs +++ b/LibreHardwareMonitorLib/Hardware/Controller/AquaComputer/MPS.cs @@ -4,6 +4,7 @@ // All Rights Reserved. using System; +using System.IO; using HidSharp; namespace LibreHardwareMonitor.Hardware.Controller.AquaComputer; @@ -76,8 +77,15 @@ internal sealed class MPS : Hardware public override void Update() { - _rawData[0] = MPS_REPORT_ID; - _stream.GetFeature(_rawData); + try + { + _rawData[0] = MPS_REPORT_ID; + _stream.GetFeature(_rawData); + } + catch (IOException) + { + return; + } if (_rawData[0] != MPS_REPORT_ID) return; @@ -96,6 +104,7 @@ internal sealed class MPS : Hardware } _temperatures[1].Value = BitConverter.ToUInt16(_rawData, InternalWaterTemperature) / 100f; + } private ushort ExtractFirmwareVersion()