From ca255b96fef293b7a9ceb85e38fca5f40dcbc56f Mon Sep 17 00:00:00 2001 From: Stoyan Zlatev Date: Wed, 17 Dec 2025 12:03:14 +0100 Subject: [PATCH] RebootCounter check until the new VFM released! --- .../Model/PickingModel.cs | 51 ++++++++++++++++--- Common/CordonelAssemblyLine/Picking.xaml.cs | 1 - 2 files changed, 45 insertions(+), 7 deletions(-) diff --git a/Common/CordonelAssemblyLine/Model/PickingModel.cs b/Common/CordonelAssemblyLine/Model/PickingModel.cs index ab0fab90..54079b7b 100644 --- a/Common/CordonelAssemblyLine/Model/PickingModel.cs +++ b/Common/CordonelAssemblyLine/Model/PickingModel.cs @@ -558,10 +558,8 @@ namespace CordonelAssemblyLine.Model { using (var batch = new MeterBatch()) { - using (var meter = new GenesisMeter()) { - meter.SetupFromConfigFile(_slotNr); batch.AddMeter(meter); SetState("Am Zähler anmelden"); @@ -1142,11 +1140,52 @@ namespace CordonelAssemblyLine.Model { SetState($"Pcb gefunden {_pcbId}"); Log($"New PcbID detected {_pcbId}"); - _state = PickingStateMachine.GetOrderDetails; - lblS02Text = _pcbId; - lblS02Color = _progressDone; - lblS03Color = _progressWaiting; + try + { + for (var i = 0; i < 3 && tryMeter.Login(); i++) + { + var frequencyBytes = tryMeter.ReadRegister("SENSUSRADIO_FrequencyIndicator"); + var frequencyValue = RegisterConverter.ByteArrayToValue(frequencyBytes); + + if (frequencyValue != 0) + { + var rebootBytes = tryMeter.ReadRegister("CUSTOMER_RebootCount"); + var rebootsCount = RegisterConverter.ByteArrayToValue(rebootBytes); + + if (rebootsCount > 0) + { + var action = MessageBox.Show( + $"{_pcbId} hat {rebootsCount}-mal neu gestartet!" + + $"{Environment.NewLine}" + + $"{Environment.NewLine}Möchten Sie fortfahren?" + , $"PcbId: {_pcbId}" + , MessageBoxButton.YesNo + , MessageBoxImage.Error); + + if (action == MessageBoxResult.No) + { + Log($"{_pcbId} hat {rebootsCount} mal neuegestarted!"); + _state = PickingStateMachine.MeterError; + break; + } + } + } + } + } + catch (Exception e) + { + Log(e.Message); + } + + if (_state != PickingStateMachine.MeterError) + { + _state = PickingStateMachine.GetOrderDetails; + + lblS02Text = _pcbId; + lblS02Color = _progressDone; + lblS03Color = _progressWaiting; + } } else { diff --git a/Common/CordonelAssemblyLine/Picking.xaml.cs b/Common/CordonelAssemblyLine/Picking.xaml.cs index b696c145..58f49892 100644 --- a/Common/CordonelAssemblyLine/Picking.xaml.cs +++ b/Common/CordonelAssemblyLine/Picking.xaml.cs @@ -31,7 +31,6 @@ namespace CordonelAssemblyLine private void Window_Loaded(Object sender, RoutedEventArgs e) { - _model.StartPicking(_globalCancellationToken, _scannerPort, _slotNr);