Merged
This commit is contained in:
@@ -1101,7 +1101,7 @@ namespace CordonelAssemblyLine.Model
|
||||
lblS04Color = _progressCurrent;
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
case PickingStateMachine.Compare:
|
||||
|
||||
@@ -45,8 +45,8 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
||||
|
||||
private void PreMeasurement()
|
||||
{
|
||||
//if (!SkipPreparationForTestBench)
|
||||
//{
|
||||
if (!SkipPreparationForTestBench)
|
||||
{
|
||||
|
||||
//TODO set display unit
|
||||
//TODO calculated overflow volume for display
|
||||
@@ -89,11 +89,11 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
||||
WriteRegister(Register.Genesisflow.StoreConfiguration, 1);
|
||||
|
||||
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// WriteLog($"wait for measurement is starting");
|
||||
//}
|
||||
}
|
||||
else
|
||||
{
|
||||
WriteLog($"wait for measurement is starting");
|
||||
}
|
||||
ProcessStatus = ProcessState.WaitForMeasurement;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -7,6 +7,7 @@
|
||||
{
|
||||
EMEA_433,
|
||||
EMEA_868,
|
||||
NA
|
||||
NA,
|
||||
EMEA
|
||||
}
|
||||
}
|
||||
|
||||
@@ -44,40 +44,29 @@ namespace Xylem.Common.Logic.ProductionOrderCore.OrderData
|
||||
|
||||
}
|
||||
var radioParams = OrderRadioParameter.GetRadioParams(pcbID, connectionString);
|
||||
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_RadioAddress", BitConverter.GetBytes(radioParams.RadioAddress).Reverse().ToArray()));
|
||||
|
||||
if (radioParams.FrqOffset.HasValue)
|
||||
if (radioParams.RadioAddress != 0)
|
||||
{
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_FrequencyOffset", BitConverter.GetBytes(radioParams.FrqOffset.Value).Reverse().ToArray()));
|
||||
}
|
||||
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_RadioAddress", BitConverter.GetBytes(radioParams.RadioAddress).Reverse().ToArray()));
|
||||
|
||||
if (radioParams.FrqOffset.HasValue)
|
||||
{
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_FrequencyOffset", BitConverter.GetBytes(radioParams.FrqOffset.Value).Reverse().ToArray()));
|
||||
}
|
||||
|
||||
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_EncryptionKey", radioParams.EncryptionKey.ToArray()));
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_EncryptionKey", radioParams.EncryptionKey.ToArray()));
|
||||
|
||||
|
||||
|
||||
if (radioParams.PowerLevel > 0 && radioParams.PowerLevelOption > 0 && radioParams.ImpedanceCodeNew > 0 && radioParams.ImpedanceCodeOption > 0)
|
||||
{
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_PowerLevel", BitConverter.GetBytes(radioParams.PowerLevel).Reverse().ToArray()));
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_PowerLevelOption", BitConverter.GetBytes(radioParams.PowerLevelOption).Reverse().ToArray()));
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_ImpedanceCodeNew", BitConverter.GetBytes(radioParams.ImpedanceCodeNew).Reverse().ToArray()));
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_ImpedanceCodeOption", BitConverter.GetBytes(radioParams.ImpedanceCodeOption).Reverse().ToArray()));
|
||||
if (radioParams.PowerLevel > 0 && radioParams.PowerLevelOption > 0 && radioParams.ImpedanceCodeNew > 0 && radioParams.ImpedanceCodeOption > 0)
|
||||
{
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_PowerLevel", BitConverter.GetBytes(radioParams.PowerLevel).Reverse().ToArray()));
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_PowerLevelOption", BitConverter.GetBytes(radioParams.PowerLevelOption).Reverse().ToArray()));
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_ImpedanceCodeNew", BitConverter.GetBytes(radioParams.ImpedanceCodeNew).Reverse().ToArray()));
|
||||
ret.Add(new ProgrammingParameters("SENSUSRADIO_ImpedanceCodeOption", BitConverter.GetBytes(radioParams.ImpedanceCodeOption).Reverse().ToArray()));
|
||||
}
|
||||
}
|
||||
|
||||
if (orderNr == 3144128)
|
||||
{
|
||||
orderNr = 3179323;
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
if (orderNr == 3148219)
|
||||
{
|
||||
orderNr = 3179323;
|
||||
}
|
||||
|
||||
var rawVako = VakoDbAdapter.GetRawVako(connectionString, orderNr);
|
||||
var rawMapping = VakoDbAdapter.GetVakoMapping(connectionString, rawVako.Type);
|
||||
var vakoData = VakoParser.Parse(rawVako, rawMapping);
|
||||
@@ -141,8 +130,13 @@ namespace Xylem.Common.Logic.ProductionOrderCore.OrderData
|
||||
ret.Add(new ProgrammingParameters(row["RegisterName"].ToString(), RegisterConverter.ConvertFrom(Convert.ToInt32(row["RegisterValue"]))));
|
||||
}
|
||||
}
|
||||
var ident = "GNS";
|
||||
if (meterSize >= 10)
|
||||
{
|
||||
ident = "GNSU";
|
||||
}
|
||||
|
||||
var retStr = LocalWebRequest.GetRequest($"http://sla12iis01/csdcore/csdservice/getstampings?CsdIdent={csdIdent}&GroupId=1&ProductIdent=GNS&ProductDn={rawVako.Dn}&ShowOnlyValidStampings=0", 8000);
|
||||
var retStr = LocalWebRequest.GetRequest($"http://sla12iis01/csdcore/csdservice/getstampings?CsdIdent={csdIdent}&GroupId=1&ProductIdent={ident}&ProductDn={rawVako.Dn}&ShowOnlyValidStampings=0", 8000);
|
||||
var retListRealCsd = JsonConvert.DeserializeObject<List<CsdParameterResult>>(retStr);
|
||||
if (retListRealCsd.Any())
|
||||
{
|
||||
|
||||
@@ -309,7 +309,7 @@ namespace ProductionUiCordonel
|
||||
SerialNumber = $"{SerialNumber} / {a[3]}";
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -416,9 +416,10 @@ namespace ProductionUiCordonel
|
||||
}
|
||||
tmrAutoDetect.Enabled = Settings.AutoDetect;
|
||||
}
|
||||
ProductionProcessCheckOrderNumber orderBarcode;
|
||||
ProductionProcessCheckSerialNumber serialBarcode;
|
||||
public void SetUpBlank(bool retry, bool abort =false)
|
||||
|
||||
private ProductionProcessCheckOrderNumber orderBarcode;
|
||||
private ProductionProcessCheckSerialNumber serialBarcode;
|
||||
public void SetUpBlank(bool retry, bool abort = false)
|
||||
{
|
||||
|
||||
pc.Processes = new List<IProductionProcess>();
|
||||
@@ -431,8 +432,8 @@ namespace ProductionUiCordonel
|
||||
|
||||
|
||||
|
||||
orderBarcode = new ProductionProcessCheckOrderNumber(OrderNumber);
|
||||
|
||||
orderBarcode = new ProductionProcessCheckOrderNumber(0);
|
||||
|
||||
|
||||
orderBarcode.isDone += CheckOrder_isDone;
|
||||
|
||||
@@ -440,28 +441,33 @@ namespace ProductionUiCordonel
|
||||
|
||||
serialBarcode = new ProductionProcessCheckSerialNumber(SerialNumber, RadioAdress.ToString());
|
||||
pc.Processes.Add(serialBarcode); //[x] [x] [x]
|
||||
//pc.Processes.Add(new ProductionProcessFullReadOut()); //[x] [x] [x]
|
||||
|
||||
//pc.Processes.Add(new ProductionProcessFullReadOut()); //[x] [x] [x]
|
||||
|
||||
pc.Processes.Add(new ProductionCheckShippingState()); //[x] [x] [x]
|
||||
|
||||
pc.Processes.Add(new ProductionProcessPasswordFile()); //[x] [x] [x]
|
||||
|
||||
|
||||
|
||||
//pc.Processes.Add(new ProductionProcessFinalParameterizationFix()); //[x] [x] []
|
||||
pc.Processes.Add(new ProductionProcessFinalParameterizationVakoCsd(connectProcess)); //[x] [x] []
|
||||
var radioCheck = new ProductionProcessRadioCheck();
|
||||
orderBarcode.isDone += delegate (object sender, EventArgs e)
|
||||
{
|
||||
radioCheck.Ordernumber = ((ProductionProcessCheckOrderNumber)sender).Ordernumber;
|
||||
};
|
||||
pc.Processes.Add(radioCheck); //[] [] []
|
||||
pc.Processes.Add(new ProductionProcessFinalParameterizationVakoCsd(connectProcess, RadioAdress != 0)); //[x] [x] []
|
||||
|
||||
if (RadioAdress != 0)
|
||||
{
|
||||
|
||||
var radioCheck = new ProductionProcessRadioCheck();
|
||||
|
||||
orderBarcode.isDone += delegate (object sender, EventArgs e)
|
||||
{
|
||||
radioCheck.Ordernumber = ((ProductionProcessCheckOrderNumber)sender).Ordernumber;
|
||||
};
|
||||
pc.Processes.Add(radioCheck); //[] [] []
|
||||
}
|
||||
|
||||
//pc.Processes.Add(new ProductionProcessSpecialConfig()); //[x] [x] []
|
||||
pc.Processes.Add(new ProductionProcessShippingMode(true)); //[] [] []
|
||||
pc.Processes.Add(new ProductionProcessShippingMode(true, RadioAdress != 0)); //[] [] []
|
||||
|
||||
pc.Processes.Add(new ProductionProcessFinalParameterizationVakoCsd(connectProcess)); //[x] [x] []
|
||||
pc.Processes.Add(new ProductionProcessShippingMode(false)); //[] [] []
|
||||
pc.Processes.Add(new ProductionProcessFinalParameterizationVakoCsd(connectProcess, RadioAdress != 0)); //[x] [x] []
|
||||
pc.Processes.Add(new ProductionProcessShippingMode(false, RadioAdress != 0)); //[] [] []
|
||||
|
||||
pc.Processes.Add(new ProductionProcessFullReadOut()); //[x] [x] [x]
|
||||
pc.Processes.Add(new ProductionProcessLogOff()); //[] [] []
|
||||
@@ -480,7 +486,7 @@ namespace ProductionUiCordonel
|
||||
|
||||
var successeP = new ProductionProcessDone(false);
|
||||
|
||||
successeP.isDone += allProcessesDone;
|
||||
successeP.isDone += allProcessesDone;
|
||||
pc.DoneProcess = successeP;
|
||||
|
||||
|
||||
@@ -491,10 +497,10 @@ namespace ProductionUiCordonel
|
||||
{
|
||||
runDetect();
|
||||
}
|
||||
else if(abort)
|
||||
else if (abort)
|
||||
{
|
||||
dpSubProcess.Children.Clear();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckOrder_isDone(object sender, EventArgs e)
|
||||
@@ -512,19 +518,19 @@ namespace ProductionUiCordonel
|
||||
OrderHasChanged?.Invoke(this, e);
|
||||
}
|
||||
|
||||
|
||||
private void allProcessesDone(object sender, Tuple<bool,bool, bool> e)
|
||||
|
||||
private void allProcessesDone(object sender, Tuple<bool, bool, bool> e)
|
||||
{
|
||||
detectIsLocked = false;
|
||||
if (e.Item3)
|
||||
{
|
||||
printErrorNote();
|
||||
}
|
||||
|
||||
SetUpBlank(e.Item1,e.Item2);
|
||||
|
||||
SetUpBlank(e.Item1, e.Item2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
private void meterHasChanged(GenesisMeter oldMeter, GenesisMeter newMeter)
|
||||
{
|
||||
@@ -697,7 +703,7 @@ namespace ProductionUiCordonel
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void BtnSwitchAutoDetect_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
Settings.AutoDetect = !Settings.AutoDetect;
|
||||
|
||||
@@ -7,9 +7,7 @@
|
||||
xmlns:uc="clr-namespace:ProductionUiCordonel"
|
||||
mc:Ignorable="d"
|
||||
Title="Cordonel Production UI" MinHeight="500" MinWidth="400" Height="600" Width="644" Initialized="Window_Initialized" Closing="Window_Closing">
|
||||
<Window.Resources>
|
||||
<local:QuantityToBackgroundConverter x:Key="BackgroundConverter" />
|
||||
</Window.Resources>
|
||||
|
||||
<DockPanel HorizontalAlignment="Right" Width="634" Height="569" VerticalAlignment="Top" Margin="0,0,2,0">
|
||||
<ToolBarTray DockPanel.Dock="Top">
|
||||
<ToolBar>
|
||||
|
||||
@@ -23,35 +23,35 @@ using Xylem.Common.Logic.SoftwareAccessHelper;
|
||||
|
||||
namespace ProductionUiCordonel
|
||||
{
|
||||
public class QuantityToBackgroundConverter : IValueConverter
|
||||
{
|
||||
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
var dc = DisplayCodes.None;
|
||||
//public class QuantityToBackgroundConverter : IValueConverter
|
||||
//{
|
||||
// public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
// {
|
||||
// var dc = DisplayCodes.None;
|
||||
|
||||
if (DisplayCodes.TryParse(value.ToString(), out dc))
|
||||
{
|
||||
string hex = "";
|
||||
int intValue;
|
||||
if (int.TryParse(value.ToString(), out intValue))
|
||||
{
|
||||
hex = intValue.ToString("X");
|
||||
}
|
||||
return $"{dc} ({hex})";
|
||||
}
|
||||
else
|
||||
{
|
||||
return "?";
|
||||
}
|
||||
// if (DisplayCodes.TryParse(value.ToString(), out dc))
|
||||
// {
|
||||
// string hex = "";
|
||||
// int intValue;
|
||||
// if (int.TryParse(value.ToString(), out intValue))
|
||||
// {
|
||||
// hex = intValue.ToString("X");
|
||||
// }
|
||||
// return $"{dc} ({hex})";
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// return "?";
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
}
|
||||
// public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
|
||||
// {
|
||||
// throw new NotImplementedException();
|
||||
// }
|
||||
//}
|
||||
|
||||
/// <summary>
|
||||
/// Interaction logic for MainWindow.xaml
|
||||
|
||||
+1
-2
@@ -150,8 +150,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
}
|
||||
reTrysLeft = reTrysLeft - 1;
|
||||
|
||||
currentProcessState = ProductionProcessState.Done;
|
||||
return;
|
||||
currentProcessState = ProductionProcessState.Error;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
||||
+14
-7
@@ -69,17 +69,24 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
|
||||
public override async void StartProcess()
|
||||
{
|
||||
|
||||
var a = LocalWebRequest.GetRequest($"{ServiceUrls.GenesisFinalCheckServiceUrl()}GetSingleVakoKey?ProductionOrderNumber={OrderNumber}&KeyName=C_GEN_PULS");
|
||||
var myJsonResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<VakoKeyValue>(a);
|
||||
if (myJsonResponse.Value.ToLower() == "q" || myJsonResponse.Value.ToLower() == "k")
|
||||
try
|
||||
{
|
||||
UserControl.SetDesc("Pulse Module anbauen!");
|
||||
var a = LocalWebRequest.GetRequest($"{ServiceUrls.GenesisFinalCheckServiceUrl()}GetSingleVakoKey?ProductionOrderNumber={OrderNumber}&KeyName=C_GEN_PULS");
|
||||
var myJsonResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<VakoKeyValue>(a);
|
||||
if (myJsonResponse.Value.ToLower() == "q" || myJsonResponse.Value.ToLower() == "k")
|
||||
{
|
||||
UserControl.SetDesc("Pulse Module anbauen!");
|
||||
}
|
||||
else
|
||||
{
|
||||
StepDone();
|
||||
}
|
||||
}
|
||||
else
|
||||
catch (Exception)
|
||||
{
|
||||
StepDone();
|
||||
UserControl.SetDesc("Bitte den Auftrag prüfen ob ein Pulse Module verbaut werden soll");
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+15
-17
@@ -15,14 +15,14 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
{
|
||||
private UcPlain UserControl;
|
||||
private ProductionProcessConnect connectProcess;
|
||||
private bool hasRadio;
|
||||
|
||||
|
||||
public ProductionProcessFinalParameterizationVakoCsd(ProductionProcessConnect connectProcess)
|
||||
public ProductionProcessFinalParameterizationVakoCsd(ProductionProcessConnect connectProcess, bool registerHasRadio = true)
|
||||
{
|
||||
this.connectProcess = connectProcess;
|
||||
name = "Kunden Parametrierung";
|
||||
currentProcessState = ProductionProcessState.Waiting;
|
||||
|
||||
hasRadio = registerHasRadio;
|
||||
}
|
||||
|
||||
public override void InitUserControl()
|
||||
@@ -117,14 +117,14 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
|
||||
foreach (var item in myJsonResponse.Where(m => m.Source == ProgrammingSource.Vako))
|
||||
{
|
||||
|
||||
|
||||
if (item.RegisterName == "CUSTOMER_LeakFlowThreshold")
|
||||
{
|
||||
|
||||
}
|
||||
//todo: find a better sln for SENSUSRADIO_EncryptionKey
|
||||
//SENSUSRADIO_EncryptionKey dont reserve SENSUSRADIO_EncryptionKey!
|
||||
if (item.RegisterName.ToLower().Contains("displaypow".ToLower()) || item.RegisterName.ToLower().Contains("METROLOGYASST_FlowPoint".ToLower()) )
|
||||
if (item.RegisterName.ToLower().Contains("displaypow".ToLower()) || item.RegisterName.ToLower().Contains("METROLOGYASST_FlowPoint".ToLower()))
|
||||
{
|
||||
overAllResult.Add(_currentGenesis_WriteRegister(item.RegisterName, new byte[] { item.RegisterValue.ToArray()[0] }, true, true));
|
||||
}
|
||||
@@ -137,9 +137,9 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
overAllResult.Add(_currentGenesis_WriteRegister(item.RegisterName, item.RegisterValue.Reverse().ToArray(), true, true));
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
//else if (!item.RegisterName.ToLower().Contains("apparrangement"))
|
||||
//{
|
||||
// overAllResult.Add(_currentGenesis_WriteRegister(item.RegisterName, item.RegisterValue.Reverse().ToArray(), true, true));
|
||||
@@ -184,16 +184,14 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
overAllResult.Add(_currentGenesis_WriteRegister("NFC_EraseRMA",
|
||||
(new Byte[] { 0x00, 0x00, 0x00, 0x01 }).Reverse().ToArray(), true, false));
|
||||
|
||||
overAllResult.Add(_currentGenesis_WriteRegister("PERIODICLOG_ResetCounter",
|
||||
(new Byte[] { 0x00, 0x00, 0x00, 0x00 }).Reverse().ToArray(), true, false));
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
overAllResult.Add(_currentGenesis_WriteRegister("GENESISFLOW_SealDisplay",
|
||||
(new Byte[] { 0x00, 0x00, 0x00, 0x01 }).Reverse().ToArray(), true, true));
|
||||
if (hasRadio)
|
||||
{
|
||||
overAllResult.Add(_currentGenesis_WriteRegister("PERIODICLOG_ResetCounter",
|
||||
(new Byte[] { 0x00, 0x00, 0x00, 0x00 }).Reverse().ToArray(), true, false));
|
||||
|
||||
overAllResult.Add(_currentGenesis_WriteRegister("GENESISFLOW_SealDisplay",
|
||||
(new Byte[] { 0x00, 0x00, 0x00, 0x01 }).Reverse().ToArray(), true, true));
|
||||
}
|
||||
|
||||
var ret = true;
|
||||
int done = 0;
|
||||
@@ -210,7 +208,7 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
}
|
||||
else
|
||||
{
|
||||
if (cTask.Result.Item1.ToLower().Contains("Metersize".ToLower()) || cTask.Result.Item1.ToLower().Contains("CUSTOMER_ExcessFlowVolumeThreshold".ToLower()) || cTask.Result.Item1.ToLower().Contains("NFC_EraseRMA".ToLower()) || cTask.Result.Item1.ToLower() == "SENSUSRADIO_MetroRadioLifeTimeCounter".ToLower() || cTask.Result.Item1.ToLower() == "CUSTOMER_LeakFlowThreshold".ToLower())
|
||||
if (cTask.Result.Item1.ToLower().Contains("Metersize".ToLower()) || cTask.Result.Item1.ToLower().Contains("NFC_EraseRMA".ToLower()) || cTask.Result.Item1.ToLower().Contains("CUSTOMER_ExcessFlowVolumeThreshold".ToLower()) || cTask.Result.Item1.ToLower().Contains("CUSTOMER_LeakFlowThreshold".ToLower()) || cTask.Result.Item1.ToLower() == "SENSUSRADIO_MetroRadioLifeTimeCounter".ToLower())
|
||||
{
|
||||
base.NewStatus($"Warnung!Schreiben des Parameter {cTask.Result.Item1} war nicht erfolgreich");
|
||||
}
|
||||
|
||||
+63
-13
@@ -14,11 +14,13 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
{
|
||||
private UcPlain UserControl;
|
||||
private bool doRestart = false;
|
||||
public ProductionProcessShippingMode(bool restart = false)
|
||||
private bool hasRadio = false;
|
||||
public ProductionProcessShippingMode(bool restart = false, bool registerHasRadio = true)
|
||||
{
|
||||
name = "Versandbereitschaft herstellen";
|
||||
currentProcessState = ProductionProcessState.Waiting;
|
||||
doRestart = restart;
|
||||
hasRadio = registerHasRadio;
|
||||
}
|
||||
public override void InitUserControl()
|
||||
{
|
||||
@@ -50,8 +52,8 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
|
||||
Meter.ResetAlarm(GenesisMeter.Alarm.EMPTY_PIPE);//(true, new byte[] { 0x00, 0x00, 0x00, 0x01 });
|
||||
|
||||
var useRadio = true;
|
||||
if (useRadio)
|
||||
|
||||
if (hasRadio)
|
||||
{
|
||||
if (Meter.StoreAllConfigurations())
|
||||
{
|
||||
@@ -76,21 +78,21 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
{
|
||||
if (doRestart)
|
||||
{
|
||||
|
||||
|
||||
var _meterResetPsu = new MeterResetPsu(Meter)
|
||||
{
|
||||
StoreConfigEnable = true
|
||||
};
|
||||
var rebootSucceeded = _meterResetPsu.MeterResetPsuExecute();
|
||||
var CheckValuesAufterBoot = new List<Tuple<string, byte[]>>();
|
||||
Thread.Sleep(10000);
|
||||
Meter.Login();
|
||||
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")));
|
||||
var _meterResetPsu = new MeterResetPsu(Meter)
|
||||
{
|
||||
StoreConfigEnable = true
|
||||
};
|
||||
var rebootSucceeded = _meterResetPsu.MeterResetPsuExecute();
|
||||
|
||||
Thread.Sleep(10000);
|
||||
Meter.Login();
|
||||
|
||||
|
||||
bool? hasDiffrences = null;
|
||||
foreach (var item in CheckValuesAufterBoot)
|
||||
@@ -137,7 +139,55 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
{
|
||||
if (Meter.StoreAllConfigurations())
|
||||
{
|
||||
base.currentProcessState = ProductionProcessState.Done;
|
||||
if (doRestart)
|
||||
{
|
||||
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")));
|
||||
|
||||
var _meterResetPsu = new MeterResetPsu(Meter)
|
||||
{
|
||||
StoreConfigEnable = true
|
||||
};
|
||||
var rebootSucceeded = _meterResetPsu.MeterResetPsuExecute();
|
||||
|
||||
Thread.Sleep(10000);
|
||||
Meter.Login();
|
||||
|
||||
|
||||
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
|
||||
{
|
||||
base.currentProcessState = ProductionProcessState.Done;
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -679,7 +679,7 @@ namespace XylemCommonUiLegacyGenCtl
|
||||
{
|
||||
TestsetuptContainer.meterTestSettings[slot] = new MeterTestSettings() { SerialNr = serialNumber, Slot = slot, FlowAdjustment = true, FlowTesting = true };
|
||||
}
|
||||
AddMeter(serialNumber, slot, false);
|
||||
AddMeter(serialNumber, slot, true);
|
||||
}
|
||||
|
||||
public void RemoveMeter(int slot)
|
||||
@@ -957,13 +957,13 @@ namespace XylemCommonUiLegacyGenCtl
|
||||
{
|
||||
((GenesisMeter)meter).InitCalibration();
|
||||
}
|
||||
else
|
||||
{
|
||||
((GenesisMeter)meter).InitMeasurement();
|
||||
}
|
||||
// Reboot, HighPeresur
|
||||
//ReadOut Alarms, Show and reset
|
||||
_logger.Debug($"Start CheckMetersAreReadyForTest");
|
||||
//else
|
||||
//{
|
||||
// ((GenesisMeter)meter).InitMeasurement();
|
||||
//}
|
||||
//// Reboot, HighPeresur
|
||||
////ReadOut Alarms, Show and reset
|
||||
//_logger.Debug($"Start CheckMetersAreReadyForTest");
|
||||
|
||||
}
|
||||
}));
|
||||
@@ -971,18 +971,15 @@ namespace XylemCommonUiLegacyGenCtl
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
listOfTasks.ForEach(t => t.Start());
|
||||
Task.WaitAll(listOfTasks.ToArray());
|
||||
listOfTasksInit.ForEach(t => t.Start());
|
||||
Task.WaitAll(listOfTasksInit.ToArray());
|
||||
TryInvoke(new Action(() =>
|
||||
{
|
||||
UpdateBatch();
|
||||
}));
|
||||
setBusy(false, "", true);
|
||||
|
||||
//CheckMetersAreReadyForTestStatic();
|
||||
setBusy(false, "", true);
|
||||
|
||||
}).ContinueWith(delegate
|
||||
{
|
||||
@@ -1001,85 +998,85 @@ namespace XylemCommonUiLegacyGenCtl
|
||||
|
||||
private void CheckMetersAreReadyForTestStatic()
|
||||
{
|
||||
var listOfTasks = new List<Task>();
|
||||
//var listOfTasks = new List<Task>();
|
||||
|
||||
foreach (var meter in batch.ListOfMeters)
|
||||
{
|
||||
listOfTasks.Add(new Task(() =>
|
||||
{
|
||||
if (!(meter is GenesisMeter))
|
||||
{
|
||||
return;
|
||||
}
|
||||
var i = 1;
|
||||
//foreach (var meter in batch.ListOfMeters)
|
||||
//{
|
||||
// listOfTasks.Add(new Task(() =>
|
||||
// {
|
||||
// if (!(meter is GenesisMeter))
|
||||
// {
|
||||
// return;
|
||||
// }
|
||||
// var i = 1;
|
||||
|
||||
var sleepTimeS = 1;
|
||||
_logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
|
||||
((GenesisMeter)meter).StartMeasurement();
|
||||
var MeterReadyForTest = false;
|
||||
// var sleepTimeS = 1;
|
||||
// _logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
|
||||
// ((GenesisMeter)meter).StartMeasurement();
|
||||
// var MeterReadyForTest = false;
|
||||
|
||||
|
||||
|
||||
while (i <= 7)
|
||||
{
|
||||
((GenesisMeter)meter).RequestIntermediateMeasurementState(0);
|
||||
Thread.Sleep(i * 2000);
|
||||
i = i + 1;
|
||||
try
|
||||
{
|
||||
var state = ((GenesisMeter)meter).GetMeasurementState(0);
|
||||
// while (i <= 7)
|
||||
// {
|
||||
// ((GenesisMeter)meter).RequestIntermediateMeasurementState(0);
|
||||
// Thread.Sleep(i * 2000);
|
||||
// i = i + 1;
|
||||
// try
|
||||
// {
|
||||
// var state = ((GenesisMeter)meter).GetMeasurementState(0);
|
||||
|
||||
|
||||
if (state != MeasurementStates.IsWaitingForStartData && state != MeasurementStates.NotStarted)
|
||||
{
|
||||
// if (state != MeasurementStates.IsWaitingForStartData && state != MeasurementStates.NotStarted)
|
||||
// {
|
||||
|
||||
var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true);
|
||||
// var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true);
|
||||
|
||||
if (r.DutVolumeCm != 0)
|
||||
{
|
||||
_logger.Info($" Meter {meter.Slot} Meter has progress (Volume{r.DutVolumeCm})");
|
||||
// if (r.DutVolumeCm != 0)
|
||||
// {
|
||||
// _logger.Info($" Meter {meter.Slot} Meter has progress (Volume{r.DutVolumeCm})");
|
||||
|
||||
MeterReadyForTest = true;
|
||||
break;
|
||||
}
|
||||
// MeterReadyForTest = true;
|
||||
// break;
|
||||
// }
|
||||
|
||||
|
||||
}
|
||||
_logger.Info($" Meter {meter.Slot} Meter no update display; loops left {i}; state {state}");
|
||||
// }
|
||||
// _logger.Info($" Meter {meter.Slot} Meter no update display; loops left {i}; state {state}");
|
||||
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// }
|
||||
// catch (Exception)
|
||||
// {
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
|
||||
|
||||
TryInvoke(new Action(() =>
|
||||
{
|
||||
updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel ", Color.LightYellow);
|
||||
}));
|
||||
// TryInvoke(new Action(() =>
|
||||
// {
|
||||
// updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel ", Color.LightYellow);
|
||||
// }));
|
||||
|
||||
}
|
||||
((GenesisMeter)meter).StopMeasurement();
|
||||
// }
|
||||
// ((GenesisMeter)meter).StopMeasurement();
|
||||
|
||||
if (!MeterReadyForTest)
|
||||
{
|
||||
//todo event remove meter
|
||||
_logger.Info($" Meter {meter.Slot} Meter has NO! progress");
|
||||
TryInvoke(new Action(() =>
|
||||
{
|
||||
updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
|
||||
}));
|
||||
}
|
||||
// if (!MeterReadyForTest)
|
||||
// {
|
||||
// //todo event remove meter
|
||||
// _logger.Info($" Meter {meter.Slot} Meter has NO! progress");
|
||||
// TryInvoke(new Action(() =>
|
||||
// {
|
||||
// updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
|
||||
// }));
|
||||
// }
|
||||
|
||||
|
||||
}));
|
||||
// }));
|
||||
|
||||
}
|
||||
//}
|
||||
|
||||
listOfTasks.ForEach(t => t.Start());
|
||||
Task.WaitAll(listOfTasks.ToArray());
|
||||
//listOfTasks.ForEach(t => t.Start());
|
||||
//Task.WaitAll(listOfTasks.ToArray());
|
||||
|
||||
|
||||
}
|
||||
@@ -1087,96 +1084,96 @@ namespace XylemCommonUiLegacyGenCtl
|
||||
|
||||
private void CheckMetersAreReadyForTest()
|
||||
{
|
||||
_logger.Trace($"CheckMetersAreReadyForTest");
|
||||
TryInvoke(new Action(() =>
|
||||
{
|
||||
lblAction.Text = "Warte auf Zählerstand wechsel von allen Zählern";
|
||||
//_logger.Trace($"CheckMetersAreReadyForTest");
|
||||
//TryInvoke(new Action(() =>
|
||||
//{
|
||||
// lblAction.Text = "Warte auf Zählerstand wechsel von allen Zählern";
|
||||
|
||||
}));
|
||||
//}));
|
||||
|
||||
|
||||
var listOfTasks = new List<Task>();
|
||||
//var listOfTasks = new List<Task>();
|
||||
|
||||
foreach (var meter in batch.ListOfMeters)
|
||||
{
|
||||
//foreach (var meter in batch.ListOfMeters)
|
||||
//{
|
||||
|
||||
|
||||
if (!(meter is GenesisMeter))
|
||||
{
|
||||
if (!(meter is GenesisMeter))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
}
|
||||
// if (!(meter is GenesisMeter))
|
||||
// {
|
||||
// if (!(meter is GenesisMeter))
|
||||
// {
|
||||
// continue;
|
||||
// }
|
||||
// }
|
||||
|
||||
TryInvoke(new Action(() =>
|
||||
{
|
||||
// TryInvoke(new Action(() =>
|
||||
// {
|
||||
|
||||
updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel", Color.LightYellow);
|
||||
}));
|
||||
// updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel", Color.LightYellow);
|
||||
// }));
|
||||
|
||||
|
||||
listOfTasks.Add(new Task(() =>
|
||||
{
|
||||
var i = 120;
|
||||
// listOfTasks.Add(new Task(() =>
|
||||
// {
|
||||
// var i = 120;
|
||||
|
||||
var sleepTimeS = 5;
|
||||
_logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
|
||||
((GenesisMeter)meter).StartMeasurement();
|
||||
var MeterReadyForTest = false;
|
||||
while (i >= 0)
|
||||
{
|
||||
Thread.Sleep(sleepTimeS * 1000);
|
||||
try
|
||||
{
|
||||
var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true);
|
||||
i = i - sleepTimeS;
|
||||
if (r.DutVolumeCm != 0)
|
||||
{
|
||||
_logger.Info($" Meter {meter.Slot} Meter has progress {r.DutVolumeCm}");
|
||||
TryInvoke(new Action(() =>
|
||||
{
|
||||
// updateCell($"Status", meter.Slot, $"Zählerstand wechsel erfasst Von:{r.DutStartRecord.GetVolumeCm()} Auf: {r.DutStopRecord.GetVolumeCm()}", Color.LimeGreen);
|
||||
}));
|
||||
MeterReadyForTest = true;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
_logger.Info($" Meter {meter.Slot} Meter no update display {r.DutVolumeCm}; loops left {i}");
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
// var sleepTimeS = 5;
|
||||
// _logger.Debug($" Meter {meter.Slot} CheckMetersAreReadyForTest loops {i};delay {sleepTimeS}S");
|
||||
// ((GenesisMeter)meter).StartMeasurement();
|
||||
// var MeterReadyForTest = false;
|
||||
// while (i >= 0)
|
||||
// {
|
||||
// Thread.Sleep(sleepTimeS * 1000);
|
||||
// try
|
||||
// {
|
||||
// var r = ((GenesisMeter)meter).GetMainMeasurementResult(null, null, true);
|
||||
// i = i - sleepTimeS;
|
||||
// if (r.DutVolumeCm != 0)
|
||||
// {
|
||||
// _logger.Info($" Meter {meter.Slot} Meter has progress {r.DutVolumeCm}");
|
||||
// TryInvoke(new Action(() =>
|
||||
// {
|
||||
// // updateCell($"Status", meter.Slot, $"Zählerstand wechsel erfasst Von:{r.DutStartRecord.GetVolumeCm()} Auf: {r.DutStopRecord.GetVolumeCm()}", Color.LimeGreen);
|
||||
// }));
|
||||
// MeterReadyForTest = true;
|
||||
// break;
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// _logger.Info($" Meter {meter.Slot} Meter no update display {r.DutVolumeCm}; loops left {i}");
|
||||
// }
|
||||
// }
|
||||
// catch (Exception)
|
||||
// {
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
|
||||
|
||||
TryInvoke(new Action(() =>
|
||||
{
|
||||
updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel ", Color.LightYellow);
|
||||
}));
|
||||
// TryInvoke(new Action(() =>
|
||||
// {
|
||||
// updateCell($"Status", meter.Slot, $"Warte auf Zählerstand wechsel ", Color.LightYellow);
|
||||
// }));
|
||||
|
||||
}
|
||||
((GenesisMeter)meter).StopMeasurement();
|
||||
// }
|
||||
// ((GenesisMeter)meter).StopMeasurement();
|
||||
|
||||
if (MeterReadyForTest)
|
||||
{
|
||||
_logger.Info($" Meter {meter.Slot} Meter has NO! progress");
|
||||
TryInvoke(new Action(() =>
|
||||
{
|
||||
updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
|
||||
}));
|
||||
}
|
||||
// if (MeterReadyForTest)
|
||||
// {
|
||||
// _logger.Info($" Meter {meter.Slot} Meter has NO! progress");
|
||||
// TryInvoke(new Action(() =>
|
||||
// {
|
||||
// updateCell($"Status", meter.Slot, $"Zählerstand wechsel nicht erfasst", Color.LightPink);
|
||||
// }));
|
||||
// }
|
||||
|
||||
}));
|
||||
// }));
|
||||
|
||||
|
||||
|
||||
}
|
||||
listOfTasks.ForEach(t => t.Start());
|
||||
Task.WaitAll(listOfTasks.ToArray());
|
||||
//}
|
||||
//listOfTasks.ForEach(t => t.Start());
|
||||
//Task.WaitAll(listOfTasks.ToArray());
|
||||
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user