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