From 2f35889a614a27b3573062c34850b4df1c5d4e50 Mon Sep 17 00:00:00 2001 From: IceStormNG Date: Sun, 30 Jul 2023 10:56:01 +0200 Subject: [PATCH] Measure mouse I/O for diagnostics purpose. --- app/Peripherals/Mouse/AsusMouse.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/Peripherals/Mouse/AsusMouse.cs b/app/Peripherals/Mouse/AsusMouse.cs index 4fefb989..b7432202 100644 --- a/app/Peripherals/Mouse/AsusMouse.cs +++ b/app/Peripherals/Mouse/AsusMouse.cs @@ -240,6 +240,17 @@ namespace GHelper.Peripherals.Mouse #endif } + + protected virtual long MeasuredIO(Action ioFunc, byte[] param) + { + var watch = System.Diagnostics.Stopwatch.StartNew(); + + ioFunc(param); + + watch.Stop(); + return watch.ElapsedMilliseconds; + } + [MethodImpl(MethodImplOptions.Synchronized)] protected virtual byte[]? WriteForResponse(byte[] packet) { @@ -250,9 +261,11 @@ namespace GHelper.Peripherals.Mouse if (IsPacketLoggerEnabled()) Logger.WriteLine(GetDisplayName() + ": Sending packet: " + ByteArrayToString(packet)); - Write(packet); + long time = MeasuredIO(Write, packet); + Logger.WriteLine(GetDisplayName() + ": Write took " + time + "ms"); - Read(response); + time = MeasuredIO(Read, response); + Logger.WriteLine(GetDisplayName() + ": Read took " + time + "ms"); if (IsPacketLoggerEnabled()) Logger.WriteLine(GetDisplayName() + ": Read packet: " + ByteArrayToString(response));