adding NA meters to the Proccess (Picking, Webservice and Finaltest)

This commit is contained in:
Roland Drabesch
2022-10-28 15:48:24 +02:00
parent 4fc949d328
commit c150c538c2
8 changed files with 151 additions and 83 deletions
@@ -1 +1 @@
46bd00889699f5a20a4981a22f62b66368323855
5ed75d99ee45ff67821090f1b3dbb001dd9e4fe3
@@ -44,6 +44,8 @@ namespace Xylem.Common.Logic.ProductionOrderCore.OrderData
}
var radioParams = OrderRadioParameter.GetRadioParams(pcbID, connectionString);
if (radioParams.RadioAddress != 0)
{
ret.Add(new ProgrammingParameters("SENSUSRADIO_RadioAddress", BitConverter.GetBytes(radioParams.RadioAddress).Reverse().ToArray()));
@@ -64,7 +66,7 @@ namespace Xylem.Common.Logic.ProductionOrderCore.OrderData
ret.Add(new ProgrammingParameters("SENSUSRADIO_ImpedanceCodeNew", BitConverter.GetBytes(radioParams.ImpedanceCodeNew).Reverse().ToArray()));
ret.Add(new ProgrammingParameters("SENSUSRADIO_ImpedanceCodeOption", BitConverter.GetBytes(radioParams.ImpedanceCodeOption).Reverse().ToArray()));
}
}
var rawVako = VakoDbAdapter.GetRawVako(connectionString, orderNr);
var rawMapping = VakoDbAdapter.GetVakoMapping(connectionString, rawVako.Type);
var vakoData = VakoParser.Parse(rawVako, rawMapping);
@@ -128,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())
{
+14 -8
View File
@@ -416,8 +416,9 @@ namespace ProductionUiCordonel
}
tmrAutoDetect.Enabled = Settings.AutoDetect;
}
ProductionProcessCheckOrderNumber orderBarcode;
ProductionProcessCheckSerialNumber serialBarcode;
private ProductionProcessCheckOrderNumber orderBarcode;
private ProductionProcessCheckSerialNumber serialBarcode;
public void SetUpBlank(bool retry, bool abort = false)
{
@@ -431,7 +432,7 @@ namespace ProductionUiCordonel
orderBarcode = new ProductionProcessCheckOrderNumber(OrderNumber);
orderBarcode = new ProductionProcessCheckOrderNumber(0);
orderBarcode.isDone += CheckOrder_isDone;
@@ -448,20 +449,25 @@ namespace ProductionUiCordonel
//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] []
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()); //[] [] []
@@ -69,7 +69,8 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
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")
@@ -80,6 +81,12 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
{
StepDone();
}
}
catch (Exception)
{
UserControl.SetDesc("Bitte den Auftrag prüfen ob ein Pulse Module verbaut werden soll");
}
@@ -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()
@@ -184,16 +184,14 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
overAllResult.Add(_currentGenesis_WriteRegister("NFC_EraseRMA",
(new Byte[] { 0x00, 0x00, 0x00, 0x01 }).Reverse().ToArray(), true, false));
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");
}
@@ -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)
@@ -136,8 +138,56 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
else
{
if (Meter.StoreAllConfigurations())
{
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;
}
}
@@ -1 +1 @@
81d60b90addc793525740e9993e19bf6665bd401
0d85a5b3a7561b41163c20e5dc7713bcd0d65555