FinalCheck is ready for fai

This commit is contained in:
Roland Drabesch
2022-08-26 16:14:40 +02:00
parent 0f24aac129
commit f2bff1d39c
14 changed files with 224 additions and 87 deletions
@@ -76,14 +76,15 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
UserControl.SetDesc(msg);
UserControl.SetFocusMe();
//UserControl.Focus();
base.NewStatus(msg);
UserControl.BarcodeInput += UserControl_KeyDown;
}
private void UserControl_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
private void UserControl_KeyDown(object sender, string input)
{
var a = UserControl.txtHiddenInput.Text;
var a = input;
UserControl.txtHiddenInput.Text = "";
if (OldOrderNumber.HasValue && a == Ordernumber.ToString())
@@ -72,15 +72,16 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
private void StepMismatch(string msg)
{
base.currentProcessState = ProductionProcessState.Error;
base.NewStatus(msg);
isDone?.Invoke(this, EventArgs.Empty);
}
private void UserControl_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
private void UserControl_KeyDown(object sender, string input)
{
var a = UserControl.txtHiddenInput.Text;
var a = input;
UserControl.txtHiddenInput.Text = "";
if (a.Trim().Contains(PcbSerialNumber.Trim()))
@@ -102,7 +103,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
}
else
{
StepMismatch($"Falsche oder fehlerhafter Scan! {Environment.NewLine} Dieser Zähler müsste die ({PcbSerialNumber}) haben");
StepMismatch($"Falsche oder fehlerhafter Scan! {Environment.NewLine} Dieser Zähler müsste die ({PcbSerialNumber}) haben. gescannt wurde {a}");
}
}
@@ -14,7 +14,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
{
public class ProductionProcessDone : BaseProductionProcess
{
public event EventHandler isDone;
public event EventHandler<Tuple<bool,bool, bool>> isDone;
private UcDialog UserControl;
public DialogResult Result = DialogResult.None;
public enum DialogResult
@@ -56,13 +56,35 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
private void StepDone()
{
base.currentProcessState = ProductionProcessState.Done;
isDone?.Invoke(null, EventArgs.Empty);
var retry = false;
var abort = false;
var print = false;
if (Error)
{
switch (Result)
{
case DialogResult.Retry:
retry = true;
break;
case DialogResult.Print:
abort = true;
print = true;
break;
case DialogResult.Abort:
abort = true;
break;
default:
break;
}
}
isDone?.Invoke(null, new Tuple<bool, bool,bool>(retry, abort, print));
}
private void StepError()
private void StepError(string ErrorText = "Ein Fehler ist aufgetreten")
{
UserControl.SetDesc("Errors occur");
UserControl.SetDesc(ErrorText);
var errorOptionList = new List<UcDialog.DialogOption>();
var retry = new UcDialog.DialogOption("Wiederholen", "Alle Schritte werden wiederholt", () =>
{
@@ -79,7 +101,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
});
var print = new UcDialog.DialogOption("Rückläuferschein drucken", "Rückläuferschein beim Zähler lassen und auf Klärung durch QS warten", () =>
{
Result = DialogResult.Retry;
Result = DialogResult.Print;
StepDone();
});
@@ -6,6 +6,7 @@ using System.Linq;
using System.Threading;
using System.Windows.Controls;
using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore;
using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisFile;
namespace ProductionUiCordonel.ProductionProcesses.Actions
{
@@ -71,7 +72,45 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
var SENSUSRADIO_ExtendedAlarmMask = Meter.ReadRegister("SENSUSRADIO_ExtendedAlarmMask");
if (radioResetSuccess[0] == 0x02 && writeList.All(a => a == true) && SENSUSRADIO_MainAlarmMask[0] != 0)
{
base.currentProcessState = ProductionProcessState.Done;
var _meterResetPsu = new MeterResetPsu(Meter)
{
StoreConfigEnable = true
};
var rebootSucceeded = _meterResetPsu.MeterResetPsuExecute();
var CheckValuesAufterBoot = new List<Tuple<string, byte[]>>();
CheckValuesAufterBoot.Add(new Tuple<string, byte[]>("METROLOGYASST_PulseLength", Meter.ReadRegister("METROLOGYASST_PulseLength")));
CheckValuesAufterBoot.Add(new Tuple<string, byte[]>("POWERMON_BatteryQuantity", Meter.ReadRegister("POWERMON_BatteryQuantity")));
CheckValuesAufterBoot.Add(new Tuple<string, byte[]>("GENESISFLOW_MeterSize", Meter.ReadRegister("GENESISFLOW_MeterSize")));
CheckValuesAufterBoot.Add(new Tuple<string, byte[]>("GENESISFLOW_CalFactor1", Meter.ReadRegister("GENESISFLOW_CalFactor1")));
CheckValuesAufterBoot.Add(new Tuple<string, byte[]>("SENSUSRADIO_RadioAddress", Meter.ReadRegister("SENSUSRADIO_RadioAddress")));
bool? hasDiffrences = null;
foreach (var item in CheckValuesAufterBoot)
{
if (!item.Item2.SequenceEqual(Meter.ReadRegister(item.Item1)))
{
hasDiffrences = true;
}
else
{
if (!hasDiffrences.HasValue)
{
hasDiffrences = false;
}
}
}
if (rebootSucceeded && hasDiffrences.HasValue && !hasDiffrences.Value)
{
base.currentProcessState = ProductionProcessState.Done;
}
else
{
Meter.WriteLog("reboot compare failed");
base.currentProcessState = ProductionProcessState.Error;
}
}
else
{
@@ -57,8 +57,12 @@ namespace ProductionUiCordonel.ProductionProcesses
AddProccessEvents(showLastStep);
showLastStep.Start(meter, canncelToken.Token);
RemoveProccessEvents(showLastStep);
CalcAndPushOverAllProcess();
});
t.Start();