From 89e9e10b6e88742f41c5254251cbca469304d9ca Mon Sep 17 00:00:00 2001 From: Jonas Arnold Date: Fri, 23 Dec 2022 12:53:33 +0100 Subject: [PATCH] updates in UI, added present counter --- ADIS_Csharp/RobotClientWpf/MainWindow.xaml | 2 +- ADIS_Csharp/RobotClientWpf/MainWindow.xaml.cs | 4 ++-- .../RobotClientWpf/Views/MainView.xaml | 7 ++++-- .../RobotClientWpf/Views/MainView.xaml.cs | 24 ++++++++++++++----- ADIS_Csharp/RobotLib/Battery/DevBattery.cs | 2 +- 5 files changed, 27 insertions(+), 12 deletions(-) diff --git a/ADIS_Csharp/RobotClientWpf/MainWindow.xaml b/ADIS_Csharp/RobotClientWpf/MainWindow.xaml index ae999e5..18f9127 100644 --- a/ADIS_Csharp/RobotClientWpf/MainWindow.xaml +++ b/ADIS_Csharp/RobotClientWpf/MainWindow.xaml @@ -12,7 +12,7 @@ - + diff --git a/ADIS_Csharp/RobotClientWpf/MainWindow.xaml.cs b/ADIS_Csharp/RobotClientWpf/MainWindow.xaml.cs index e1c58d2..edbccd0 100644 --- a/ADIS_Csharp/RobotClientWpf/MainWindow.xaml.cs +++ b/ADIS_Csharp/RobotClientWpf/MainWindow.xaml.cs @@ -61,7 +61,7 @@ namespace RobotClientWpf // set color according to assessed state if(e.Online == false) { - log.Warn("Robot Stationary seems to be offline."); + log.Warn($"Robot Stationary seems to be offline. No response in {e.Seconds}s."); } else { @@ -75,7 +75,7 @@ namespace RobotClientWpf // set color according to assessed state if (e.Online == false) { - log.Warn("Robot Mobile seems to be offline."); + log.Warn($"Robot Mobile seems to be offline. No response in {e.Seconds}s."); } else { diff --git a/ADIS_Csharp/RobotClientWpf/Views/MainView.xaml b/ADIS_Csharp/RobotClientWpf/Views/MainView.xaml index 1aa0a06..584efeb 100644 --- a/ADIS_Csharp/RobotClientWpf/Views/MainView.xaml +++ b/ADIS_Csharp/RobotClientWpf/Views/MainView.xaml @@ -5,7 +5,7 @@ xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:RobotClientWpf.Views" mc:Ignorable="d" - d:DesignHeight="430" d:DesignWidth="1200" FontSize="15" KeyDown="UserControl_KeyDown"> + d:DesignHeight="430" d:DesignWidth="1200" FontSize="15"> @@ -19,7 +19,10 @@ - + + + + diff --git a/ADIS_Csharp/RobotClientWpf/Views/MainView.xaml.cs b/ADIS_Csharp/RobotClientWpf/Views/MainView.xaml.cs index 97d125c..1f731de 100644 --- a/ADIS_Csharp/RobotClientWpf/Views/MainView.xaml.cs +++ b/ADIS_Csharp/RobotClientWpf/Views/MainView.xaml.cs @@ -1,4 +1,5 @@ using RobotClientWpf.Utilities; +using RobotLib.Status; using System.Windows.Controls; using System.Windows.Input; @@ -12,7 +13,7 @@ namespace RobotClientWpf.Views private static readonly NLog.Logger log = NLog.LogManager.GetCurrentClassLogger(); private ChallengeFactory? challenge; private MainWindow? mainWindow; - private const int AMOUNT_SPEED_ADDED_PER_CLICK = 200; + private const int AMOUNT_SPEED_ADDED_PER_CLICK = 350; private const int TURN_ANGLE_PER_CLICK = 30; public MainView() @@ -27,6 +28,22 @@ namespace RobotClientWpf.Views // subscribe to events this.challenge.RobotStationary.SplitFlap.SplitFlapDisplayChanged += this.SplitFlap_SplitFlapDisplayChanged; this.challenge.RobotMobile.Battery.BatteryChanged += Battery_BatteryChanged; + this.challenge.RobotMobile.Status.PresentChanged += Status_PresentChanged; + this.challenge.RobotMobile.Status.StatusChanged += Status_StatusChanged; + } + + private void Status_StatusChanged(object? sender, RobotLib.Status.StatusEventArgs e) + { + // if status manual is set => reset present counter + if(e.Status == RoboStatus.Manual || e.Status == RoboStatus.Auto) + { + UIAccessHelpers.SetTextboxText(tbPresentCount, ""); + } + } + + private void Status_PresentChanged(object? sender, RobotLib.Status.PresentEventArgs e) + { + UIAccessHelpers.SetTextboxText(tbPresentCount, e.Present.ToString()); } private void Battery_BatteryChanged(object? sender, RobotLib.Battery.BatteryEventArgs e) @@ -101,10 +118,5 @@ namespace RobotClientWpf.Views e.Handled = true; } } - - private void UserControl_KeyDown(object sender, KeyEventArgs e) - { - this.HandleKeyDownEvent(sender, e); - } } } diff --git a/ADIS_Csharp/RobotLib/Battery/DevBattery.cs b/ADIS_Csharp/RobotLib/Battery/DevBattery.cs index abe7907..8906b61 100644 --- a/ADIS_Csharp/RobotLib/Battery/DevBattery.cs +++ b/ADIS_Csharp/RobotLib/Battery/DevBattery.cs @@ -11,7 +11,7 @@ namespace RobotLib.Battery { private float voltage; private int lastResponseS = 1000; // seconds since last response - private const int offlineTresholdS = 11; // treshold when to assess a robot as offline (no response for x sec) + private const int offlineTresholdS = 25; // treshold when to assess a robot as offline (no response for x sec) private Stopwatch stopwatchLastResponse = new(); private const string TOPIC_ROBO_REQ_BATTERY = "/both/cmd/battery/get_volt";