Merge branch 'main' of https://slm.sms-esaap.com/la_operations/laa_production
This commit is contained in:
@@ -155,7 +155,7 @@
|
||||
</site>
|
||||
<site name="MeterProcessState" id="2">
|
||||
<application path="/" applicationPool="Clr4IntegratedAppPool">
|
||||
<virtualDirectory path="/" physicalPath="D:\Projekte\SENSUS_GitLab\laa_production\Common\Service\MeterProcessState" />
|
||||
<virtualDirectory path="/" physicalPath="C:\Users\drabesch_ro\Repo\lab\la_operations\laa_production\Common\Service\MeterProcessState" />
|
||||
</application>
|
||||
<bindings>
|
||||
<binding protocol="http" bindingInformation="*:56011:localhost" />
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
<appSettings>
|
||||
<add key="PickingSlot" value="1"/>
|
||||
<add key="PickingBarcode" value="COM22"/>
|
||||
<add key="PickingBarcode" value="COM20"/>
|
||||
|
||||
<add key="LeakSlot" value="2"/>
|
||||
<add key="LeakStationId" value="1"/>
|
||||
|
||||
<add key="MarriageSlot" value="4"/>
|
||||
<add key="MarriageBarcode" value="COM19"/>
|
||||
<add key="MarriageBarcode" value="COM21"/>
|
||||
|
||||
|
||||
</appSettings>
|
||||
|
||||
@@ -24,6 +24,8 @@ namespace Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol
|
||||
|
||||
public abstract List<Byte> DecodeDataForLogicLayer(List<Byte> rawData);
|
||||
|
||||
public abstract List<byte> DecodeDataForPhysicalLayerUI1236(byte[] payload);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -22,6 +22,8 @@ namespace Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol
|
||||
/// </summary>
|
||||
void SetDefaultResponseTimeout();
|
||||
|
||||
List<byte> DecodeDataForPhysicalLayerUI1236(byte[] payload);
|
||||
|
||||
/// <summary>
|
||||
/// Send out data (including transport protocol specific data like CRC) to physical port (like UART or IrDA)
|
||||
/// </summary>
|
||||
|
||||
@@ -169,5 +169,25 @@ namespace Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol
|
||||
|
||||
return irdaRecord;
|
||||
}
|
||||
|
||||
public override List<byte> DecodeDataForPhysicalLayerUI1236(byte[] requestProtocolPayload)
|
||||
{
|
||||
List<byte> collection = new List<byte>()
|
||||
{
|
||||
(byte) 35,
|
||||
(byte) (requestProtocolPayload.Length / 2)
|
||||
};
|
||||
collection.AddRange((IEnumerable<byte>)requestProtocolPayload);
|
||||
ushort reversedLsb8408 = Xylem.Common.Utils.Crc16Ccitt.Crc16Ccitt.CalculateReversedLsb8408(collection.ToArray());
|
||||
List<byte> byteList = new List<byte>()
|
||||
{
|
||||
(byte) 155
|
||||
};
|
||||
byteList.AddRange((IEnumerable<byte>)collection);
|
||||
byteList.Add((byte)((uint)reversedLsb8408 & (uint)byte.MaxValue));
|
||||
byteList.Add((byte)((uint)reversedLsb8408 >> 8));
|
||||
this.Logger.Info("DecodeDataForPhysicalLayerUI1236 PC->Cordonel(" + BitConverter.ToString(byteList.ToArray()) + ")");
|
||||
return byteList;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -47,5 +47,7 @@ namespace Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol
|
||||
{
|
||||
return rawData;
|
||||
}
|
||||
|
||||
public override List<byte> DecodeDataForPhysicalLayerUI1236(byte[] payload) => throw new ApplicationException("Streaming port cannot send data");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -144,7 +144,22 @@ namespace Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol
|
||||
|
||||
return uartRecord;
|
||||
}
|
||||
|
||||
public override List<byte> DecodeDataForPhysicalLayerUI1236(byte[] requestProtocolPayload)
|
||||
{
|
||||
List<byte> byteList1 = new List<byte>();
|
||||
List<byte> list = ((IEnumerable<byte>)requestProtocolPayload).ToList<byte>();
|
||||
List<byte> byteList2 = new List<byte>();
|
||||
byteList1.Add((byte)(requestProtocolPayload.Length + 4 + 2));
|
||||
byteList1.Add((byte)0);
|
||||
byteList1.Add((byte)0);
|
||||
ushort num = this.CrcCalc(byteList1, list);
|
||||
byteList2.Add((byte)91);
|
||||
byteList2.AddRange((IEnumerable<byte>)byteList1);
|
||||
byteList2.Add((byte)((uint)num & (uint)byte.MaxValue));
|
||||
byteList2.Add((byte)((uint)num >> 8));
|
||||
byteList2.AddRange((IEnumerable<byte>)list);
|
||||
return byteList2;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1878,6 +1878,16 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public byte[] SendUI1236Command(byte[] UI1236Frame,bool waitForResult = true,bool checkRegister = false,ushort skipRetryErrorCode = 4)
|
||||
{
|
||||
this._logger.Info(string.Format("Slot:{0} - Sending Ui-1236 frame: {1} ", (object)this.Slot, (object)UI1236Frame));
|
||||
RequestRecord sendFifoUi1236 = this.RequestProtocol.AddRecordToSendFifoUI1236(UI1236Frame);
|
||||
this.RequestProtocolProcess();
|
||||
return sendFifoUi1236.ResponsePayload.ToArray();
|
||||
}
|
||||
|
||||
|
||||
#endregion
|
||||
|
||||
#region Class handling
|
||||
|
||||
@@ -11,6 +11,8 @@ using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisConfig;
|
||||
using Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.ProtocolCore;
|
||||
using Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol.Consts;
|
||||
using Xylem.Common.Hardware.WaterMeter.Genesis.Registers;
|
||||
using Xylem.Common.Hardware.Interfaces.Protocols.TransmitProtocol;
|
||||
using Xylem.Common.Hardware.Interfaces.Ports.PortCore;
|
||||
|
||||
namespace Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol
|
||||
{
|
||||
@@ -305,6 +307,27 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.Protocols.RequestProtocol
|
||||
return recordForSendFifo;
|
||||
}
|
||||
|
||||
|
||||
public RequestRecord AddRecordToSendFifoUI1236(
|
||||
byte[] payload,
|
||||
RegisterDefinition register = null,
|
||||
bool hideDataInLog = false,
|
||||
ushort skipRetryErrorCode = 4)
|
||||
{
|
||||
byte maxValue = byte.MaxValue;
|
||||
List<byte> requestProtocolData = new List<byte>()
|
||||
{
|
||||
maxValue
|
||||
};
|
||||
requestProtocolData.AddRange((IEnumerable<byte>)payload);
|
||||
ITransmitProtocol transmitProtocol = this.GetTransmitProtocol();
|
||||
List<byte> encodedRequestData = transmitProtocol.DecodeDataForPhysicalLayerUI1236(payload);
|
||||
TransmitPortSettings transmitPortSettings = transmitProtocol.GetTransmitPortSettings();
|
||||
RequestRecord sendFifoUi1236 = new RequestRecord(maxValue, requestProtocolData, encodedRequestData, transmitPortSettings.ResponseTimeoutMs, register, hideDataInLog, skipRetryErrorCode);
|
||||
this._recordsSendFifo.Enqueue(sendFifoUi1236);
|
||||
return sendFifoUi1236;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Called after successful response.
|
||||
/// Decode and check record, handle Errors and dispatch result.
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
5ed75d99ee45ff67821090f1b3dbb001dd9e4fe3
|
||||
46bd00889699f5a20a4981a22f62b66368323855
|
||||
|
||||
@@ -3,7 +3,9 @@ namespace Xylem.Common.Logic.ProductionOrderCore.KitronTestResults
|
||||
{
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Converters;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Globalization;
|
||||
|
||||
public partial class RadioTest
|
||||
@@ -271,304 +273,74 @@ namespace Xylem.Common.Logic.ProductionOrderCore.KitronTestResults
|
||||
}
|
||||
alternateReturnObj.StartDt = newFromat.JsonObject.StartDT;
|
||||
alternateReturnObj.TestStepLoopCalibrate = new TestStep();
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values = new Value[12];
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values = new Value[23];
|
||||
|
||||
var add = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop1;
|
||||
add.LengthCode = newFromat.JsonObject.LengthCodeLoop1;
|
||||
add.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
var TestStepLoopCalibrateToAdd = new List<Value>();
|
||||
|
||||
JObject joResponse = JObject.Parse(json);
|
||||
|
||||
|
||||
add.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop1;
|
||||
add.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop1;
|
||||
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add, 0);
|
||||
var Hit = true;
|
||||
|
||||
|
||||
var add2 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add2.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop2;
|
||||
add2.LengthCode = newFromat.JsonObject.LengthCodeLoop2;
|
||||
add2.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add2.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop2;
|
||||
add2.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop2;
|
||||
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add2, 1);
|
||||
|
||||
|
||||
var add3 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add3.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop3;
|
||||
add3.LengthCode = newFromat.JsonObject.LengthCodeLoop3;
|
||||
add3.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add3.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop3;
|
||||
add3.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop3;
|
||||
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add3, 2);
|
||||
|
||||
|
||||
var add4 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add4.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop4;
|
||||
add4.LengthCode = newFromat.JsonObject.LengthCodeLoop4;
|
||||
add4.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add4.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop4;
|
||||
add4.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop4;
|
||||
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add4, 3);
|
||||
|
||||
|
||||
var add5 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add5.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop5;
|
||||
add5.LengthCode = newFromat.JsonObject.LengthCodeLoop5;
|
||||
add5.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add5.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop5;
|
||||
add5.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop5;
|
||||
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add5, 4);
|
||||
|
||||
|
||||
var add6 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add6.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop6;
|
||||
add6.LengthCode = newFromat.JsonObject.LengthCodeLoop6;
|
||||
add6.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add6.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop6;
|
||||
add6.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop6;
|
||||
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add6, 5);
|
||||
|
||||
var add7 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add7.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop7;
|
||||
add7.LengthCode = newFromat.JsonObject.LengthCodeLoop7;
|
||||
add7.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add7.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop7;
|
||||
add7.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop7;
|
||||
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add7, 6);
|
||||
|
||||
|
||||
var add8 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add8.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop8;
|
||||
add8.LengthCode = newFromat.JsonObject.LengthCodeLoop8;
|
||||
add8.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add8.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop8;
|
||||
add8.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop8;
|
||||
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add8, 7);
|
||||
|
||||
|
||||
|
||||
|
||||
var add9 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add9.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop9;
|
||||
add9.LengthCode = newFromat.JsonObject.LengthCodeLoop9;
|
||||
add9.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add9.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop9;
|
||||
add9.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop9;
|
||||
if (add9.ResultCalibration == null)
|
||||
int loopCount = 0;
|
||||
foreach (var item in joResponse["JsonObject"].Children())
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add9, 8);
|
||||
|
||||
|
||||
var add10 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add10.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop10;
|
||||
add10.LengthCode = newFromat.JsonObject.LengthCodeLoop10;
|
||||
add10.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add10.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop10;
|
||||
add10.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop10;
|
||||
if (add10.ResultCalibration == null)
|
||||
if (item is JProperty pitem)
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add10, 9);
|
||||
|
||||
|
||||
var add11 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add11.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop11;
|
||||
add11.LengthCode = newFromat.JsonObject.LengthCodeLoop11;
|
||||
add11.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add11.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop11;
|
||||
add11.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop11;
|
||||
if (add11.ResultCalibration == null)
|
||||
if (pitem.Name == $"ResultCalibration Loop_{loopCount +1}")
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add11, 10);
|
||||
|
||||
var add12 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add12.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop12;
|
||||
add12.LengthCode = newFromat.JsonObject.LengthCodeLoop12;
|
||||
add12.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add12.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop12;
|
||||
add12.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop12;
|
||||
if (add12.ResultCalibration == null)
|
||||
if (pitem.Value.ToString() == "ok")
|
||||
{
|
||||
return alternateReturnObj;
|
||||
|
||||
TestStepLoopCalibrateToAdd.Add(new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value());
|
||||
TestStepLoopCalibrateToAdd[loopCount].ResultCalibration = pitem.Value.ToString();
|
||||
TestStepLoopCalibrateToAdd[loopCount].SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
loopCount = loopCount + 1;
|
||||
}
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add12, 11);
|
||||
|
||||
var add13 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add13.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop13;
|
||||
add13.LengthCode = newFromat.JsonObject.LengthCodeLoop13;
|
||||
add13.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add13.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop13;
|
||||
add13.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop13;
|
||||
if (add13.ResultCalibration == null)
|
||||
if (pitem.Name == $"LengthCode Loop_{loopCount}")
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add13, 12);
|
||||
|
||||
|
||||
var add14 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add14.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop14;
|
||||
add14.LengthCode = newFromat.JsonObject.LengthCodeLoop14;
|
||||
add14.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add14.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop14;
|
||||
add14.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop14;
|
||||
if (add14.ResultCalibration == null)
|
||||
if (TestStepLoopCalibrateToAdd.Count == loopCount)
|
||||
{
|
||||
return alternateReturnObj;
|
||||
TestStepLoopCalibrateToAdd[loopCount-1].LengthCode = pitem.Value.ToString();
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add14, 13);
|
||||
|
||||
|
||||
var add15 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add15.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop15;
|
||||
add15.LengthCode = newFromat.JsonObject.LengthCodeLoop15;
|
||||
add15.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add15.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop15;
|
||||
add15.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop15;
|
||||
if (add15.ResultCalibration == null)
|
||||
}
|
||||
if (pitem.Name == $"PowerLevelCalculated Loop_{loopCount}")
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add15, 14);
|
||||
|
||||
|
||||
var add16 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add16.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop16;
|
||||
add16.LengthCode = newFromat.JsonObject.LengthCodeLoop16;
|
||||
add16.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add16.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop16;
|
||||
add16.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop16;
|
||||
if (add16.ResultCalibration == null)
|
||||
if (TestStepLoopCalibrateToAdd.Count == loopCount)
|
||||
{
|
||||
return alternateReturnObj;
|
||||
TestStepLoopCalibrateToAdd[loopCount-1].IPowerLevelCalculated = pitem.Value.ToString();
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add16, 15);
|
||||
|
||||
}
|
||||
|
||||
var add17 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add17.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop17;
|
||||
add17.LengthCode = newFromat.JsonObject.LengthCodeLoop17;
|
||||
add17.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add17.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop17;
|
||||
add17.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop17;
|
||||
if (add17.ResultCalibration == null)
|
||||
if (pitem.Name == $"AntennaMatching Loop_{loopCount}")
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add17, 16);
|
||||
|
||||
|
||||
var add18 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add18.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop18;
|
||||
add18.LengthCode = newFromat.JsonObject.LengthCodeLoop18;
|
||||
add18.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add18.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop18;
|
||||
add18.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop18;
|
||||
if (add18.ResultCalibration == null)
|
||||
if (TestStepLoopCalibrateToAdd.Count == loopCount)
|
||||
{
|
||||
return alternateReturnObj;
|
||||
TestStepLoopCalibrateToAdd[loopCount-1].IAntennaMatching = pitem.Value.ToString();
|
||||
}
|
||||
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add18, 17);
|
||||
|
||||
|
||||
var add19 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add19.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop19;
|
||||
add19.LengthCode = newFromat.JsonObject.LengthCodeLoop19;
|
||||
add19.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
}
|
||||
//if (item.Name
|
||||
//{
|
||||
|
||||
add19.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop19;
|
||||
add19.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop19;
|
||||
if (add19.ResultCalibration == null)
|
||||
//}
|
||||
|
||||
}
|
||||
int i = 0;
|
||||
foreach (var item in TestStepLoopCalibrateToAdd)
|
||||
{
|
||||
return alternateReturnObj;
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(item, i);
|
||||
i = i + 1;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add19, 18);
|
||||
|
||||
|
||||
var add20 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add20.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop20;
|
||||
add20.LengthCode = newFromat.JsonObject.LengthCodeLoop20;
|
||||
add20.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add20.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop20;
|
||||
add20.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop20;
|
||||
if (add20.ResultCalibration == null)
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add20, 19);
|
||||
|
||||
|
||||
var add21 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add21.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop21;
|
||||
add21.LengthCode = newFromat.JsonObject.LengthCodeLoop21;
|
||||
add21.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add21.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop21;
|
||||
add21.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop21;
|
||||
if (add21.ResultCalibration == null)
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add21, 20);
|
||||
|
||||
|
||||
var add22 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add22.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop22;
|
||||
add22.LengthCode = newFromat.JsonObject.LengthCodeLoop22;
|
||||
add22.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add22.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop22;
|
||||
add22.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop22;
|
||||
if (add22.ResultCalibration == null)
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add22, 21);
|
||||
|
||||
|
||||
var add23 = new Xylem.Common.Logic.ProductionOrderCore.KitronTestResults.Value();
|
||||
add23.ResultCalibration = newFromat.JsonObject.ResultCalibrationLoop23;
|
||||
add23.LengthCode = newFromat.JsonObject.LengthCodeLoop23;
|
||||
add23.SLookupTablePower = newFromat.JsonObject.AttachmentFile.ToLower();
|
||||
|
||||
add23.IPowerLevelCalculated = newFromat.JsonObject.PowerLevelCalculatedLoop23;
|
||||
add23.IAntennaMatching = newFromat.JsonObject.AntennaMatchingLoop23;
|
||||
if (add23.ResultCalibration == null)
|
||||
{
|
||||
return alternateReturnObj;
|
||||
}
|
||||
alternateReturnObj.TestStepLoopCalibrate.Values.SetValue(add23, 22);
|
||||
|
||||
return alternateReturnObj;
|
||||
|
||||
|
||||
@@ -6,8 +6,8 @@
|
||||
xmlns:local="clr-namespace:ProductionUiCordonel"
|
||||
xmlns:uc="clr-namespace:ProductionUiCordonel"
|
||||
mc:Ignorable="d"
|
||||
Title="FinalTest" MinHeight="500" MinWidth="400" Height="603" Width="646" Initialized="Window_Initialized" Closing="Window_Closing">
|
||||
<DockPanel HorizontalAlignment="Stretch" Width="634" Height="569" VerticalAlignment="Top" Margin="0,0,2,0">
|
||||
Title="FinalTest" MinHeight="500" MinWidth="600" Height="638" Width="800" Initialized="Window_Initialized" Closing="Window_Closing" PreviewKeyDown="Window_PreviewKeyDown">
|
||||
<DockPanel HorizontalAlignment="Stretch" Width="800" Height="600" VerticalAlignment="Top" Margin="0,0,2,0">
|
||||
<ToolBarTray DockPanel.Dock="Top" Visibility="Collapsed">
|
||||
<ToolBar>
|
||||
<Label>Slot:</Label>
|
||||
@@ -75,18 +75,19 @@
|
||||
<RowDefinition Height="30"/>
|
||||
<RowDefinition Height="30"/>
|
||||
<RowDefinition Height="30"/>
|
||||
<RowDefinition Height="238" MinHeight="150"/>
|
||||
<RowDefinition Height="28"/>
|
||||
<RowDefinition Height="28"/>
|
||||
<RowDefinition Height="255" MinHeight="150"/>
|
||||
<RowDefinition Height="38"/>
|
||||
<RowDefinition Height="34"/>
|
||||
<RowDefinition MinHeight="50"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition MinWidth="125" Width="125*"/>
|
||||
<ColumnDefinition MinWidth="148" Width="158*"/>
|
||||
<ColumnDefinition MinWidth="125" Width="221*" />
|
||||
<ColumnDefinition MinWidth="125" Width="172*" />
|
||||
<ColumnDefinition Width="49*"/>
|
||||
<ColumnDefinition MinWidth="100" Width="130*"/>
|
||||
</Grid.ColumnDefinitions>
|
||||
<Button Name="btnStart" IsEnabled="False" Content="Start" Click="ButtonBase_OnClick" HorizontalAlignment="Left" Height="58" Margin="0,0,0,1" VerticalAlignment="Bottom" Width="122" Grid.Row="0" Grid.Column="3" Grid.RowSpan="2" />
|
||||
<!--<Button Name="btnStart" IsEnabled="False" Content="Start" Click="ButtonBase_OnClick" HorizontalAlignment="Left" Height="58" Margin="0,0,0,1" VerticalAlignment="Bottom" Width="122" Grid.Row="0" Grid.Column="4" Grid.RowSpan="2" />-->
|
||||
<Label Content="SerialNumber" HorizontalAlignment="Left" Margin="10,1,0,0" VerticalAlignment="Top" Grid.Row="0" Grid.Column="0" Height="26" Width="82" />
|
||||
<Label Content="RadioAdress" HorizontalAlignment="Left" Margin="10,2,0,0" VerticalAlignment="Top" Grid.Row="1" Grid.Column="0" Height="26" Width="76" />
|
||||
<Label Content="OrderNumber" HorizontalAlignment="Left" Margin="10,3,0,0" VerticalAlignment="Top" Grid.Row="2" Grid.Column="0" Height="26" Width="84" />
|
||||
@@ -95,16 +96,20 @@
|
||||
<Label Content="" Name="lblSerialNumber" HorizontalAlignment="Left" Margin="10,1,0,0" VerticalAlignment="Top" Grid.Row="0" Grid.Column="1" Height="26" Width="240" Grid.ColumnSpan="2" />
|
||||
<Label Content="" Name="lblRadioAdress" HorizontalAlignment="Left" Margin="10,2,0,0" VerticalAlignment="Top" Grid.Row="1" Grid.Column="1" Height="26" Width="221" Grid.ColumnSpan="2" />
|
||||
<Label Content="" Name="lblOrderNumber" HorizontalAlignment="Left" Margin="10,3,0,0" VerticalAlignment="Top" Grid.Row="2" Grid.Column="1" Height="26" Width="221" Grid.ColumnSpan="2" />
|
||||
<TextBox Text="" Name="txtInputHidden" HorizontalAlignment="Left" Margin="10,3,0,0" VerticalAlignment="Top" Grid.Row="2" Grid.Column="3" Height="26" Width="6" />
|
||||
|
||||
<Label Content="Status" HorizontalAlignment="Left" Margin="10,3,0,0" VerticalAlignment="Top" Grid.Row="3" Grid.Column="0" Height="26" Width="84" />
|
||||
<Label Content="Warte auf Zähler" Name="lblCurrentProcess" Margin="10,3,10,0" VerticalAlignment="Top" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="3" Height="26" RenderTransformOrigin="0.607,0.577" />
|
||||
<Label Content="Warte auf Zähler" Name="lblCurrentProcess" Margin="10,3,10,0" VerticalAlignment="Top" Grid.Row="3" Grid.Column="1" Grid.ColumnSpan="4" Height="26" RenderTransformOrigin="0.607,0.577" />
|
||||
|
||||
<DataGrid Name="dgTotalProcess" ItemsSource="{Binding}" AutoGenerateColumns="True" HorizontalAlignment="Left" Margin="10,4,0,5" Width="267" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" Grid.RowSpan="2" SelectionMode="Single" IsReadOnly="True" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserSortColumns="False" IsEnabled="False"/>
|
||||
<DockPanel Name="dpSubProcess" Grid.Column="2" Margin="18,12,8,8" Grid.Row="4" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" Grid.ColumnSpan="2"/>
|
||||
<DataGrid Name="dgTotalProcess" ItemsSource="{Binding}" AutoGenerateColumns="True" Margin="10,4,30,5" Grid.Column="0" Grid.Row="4" Grid.ColumnSpan="2" Grid.RowSpan="2" SelectionMode="Single" IsReadOnly="True" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserSortColumns="False" IsEnabled="False"/>
|
||||
<StackPanel Name="dpSubProcess" Grid.Column="2" Margin="18,12,8,8" Grid.Row="4" VerticalAlignment="Stretch" HorizontalAlignment="Left" Grid.ColumnSpan="3">
|
||||
|
||||
<TextBox Name="txtLog" Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="7" TextWrapping="Wrap" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,73,10" />
|
||||
<ProgressBar Name="pbTotalProgress" Grid.Column="0" Grid.ColumnSpan="4" Grid.Row="6" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,73,0" />
|
||||
<ProgressBar Name="pbSubProgress" Grid.ColumnSpan="2" Grid.Column="2" Grid.Row="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,73,0"/>
|
||||
|
||||
</StackPanel>
|
||||
|
||||
<TextBox Name="txtLog" Grid.Column="0" Grid.ColumnSpan="5" Grid.Row="7" TextWrapping="Wrap" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,10,73,38" />
|
||||
<ProgressBar Name="pbTotalProgress" Grid.Column="0" Grid.ColumnSpan="5" Grid.Row="6" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,73,0" />
|
||||
<ProgressBar Name="pbSubProgress" Grid.ColumnSpan="3" Grid.Column="2" Grid.Row="5" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Margin="0,0,73,0"/>
|
||||
<Button x:Name="btnDetect" IsEnabled="false" Content="Detect" Click="BtnDetect_Click" HorizontalAlignment="Left" Height="58" Margin="97,0,0,0" VerticalAlignment="Bottom" Width="114" Grid.Row="0" Grid.Column="2" Grid.RowSpan="2" />
|
||||
</Grid>
|
||||
|
||||
|
||||
@@ -2,12 +2,14 @@
|
||||
using ProductionUiCordonel.ProductionProcesses;
|
||||
using ProductionUiCordonel.ProductionProcesses.Actions;
|
||||
using ProductionUiCordonel.ProductionProcesses.Enum;
|
||||
using ProductionUiCordonel.UserControls.FinalTest;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Data;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Timers;
|
||||
using System.Windows;
|
||||
@@ -30,6 +32,7 @@ namespace ProductionUiCordonel
|
||||
public event EventHandler OnLockMeter;
|
||||
public event EventHandler OnReleaseMeter;
|
||||
public event EventHandler OrderHasChanged;
|
||||
public event EventHandler KeyInputMainFrom;
|
||||
#region prop
|
||||
|
||||
private GenesisMeter genesisMeter;
|
||||
@@ -129,7 +132,7 @@ namespace ProductionUiCordonel
|
||||
public FinalRadioTest()
|
||||
{
|
||||
InitializeComponent();
|
||||
SetUpBlank();
|
||||
SetUpBlank(false);
|
||||
|
||||
|
||||
|
||||
@@ -413,9 +416,9 @@ namespace ProductionUiCordonel
|
||||
}
|
||||
tmrAutoDetect.Enabled = Settings.AutoDetect;
|
||||
}
|
||||
|
||||
|
||||
public void SetUpBlank()
|
||||
ProductionProcessCheckOrderNumber orderBarcode;
|
||||
ProductionProcessCheckSerialNumber serialBarcode;
|
||||
public void SetUpBlank(bool retry, bool abort =false)
|
||||
{
|
||||
|
||||
pc.Processes = new List<IProductionProcess>();
|
||||
@@ -428,11 +431,15 @@ namespace ProductionUiCordonel
|
||||
|
||||
|
||||
|
||||
var CheckOrder = new ProductionProcessCheckOrderNumber(OrderNumber);
|
||||
CheckOrder.isDone += CheckOrder_isDone;
|
||||
orderBarcode = new ProductionProcessCheckOrderNumber(OrderNumber);
|
||||
|
||||
pc.Processes.Add(CheckOrder); //[x] [x] [x]
|
||||
pc.Processes.Add(new ProductionProcessCheckSerialNumber(SerialNumber)); //[x] [x] [x]
|
||||
|
||||
orderBarcode.isDone += CheckOrder_isDone;
|
||||
|
||||
pc.Processes.Add(orderBarcode); //[x] [x] [x]
|
||||
|
||||
serialBarcode = new ProductionProcessCheckSerialNumber(SerialNumber);
|
||||
pc.Processes.Add(serialBarcode); //[x] [x] [x]
|
||||
//pc.Processes.Add(new ProductionProcessFullReadOut()); //[x] [x] [x]
|
||||
|
||||
pc.Processes.Add(new ProductionCheckShippingState()); //[x] [x] [x]
|
||||
@@ -443,7 +450,7 @@ namespace ProductionUiCordonel
|
||||
//pc.Processes.Add(new ProductionProcessFinalParameterizationFix()); //[x] [x] []
|
||||
pc.Processes.Add(new ProductionProcessFinalParameterizationVakoCsd(connectProcess)); //[x] [x] []
|
||||
var radioCheck = new ProductionProcessRadioCheck();
|
||||
CheckOrder.isDone += delegate (object sender, EventArgs e)
|
||||
orderBarcode.isDone += delegate (object sender, EventArgs e)
|
||||
{
|
||||
radioCheck.Ordernumber = ((ProductionProcessCheckOrderNumber)sender).Ordernumber;
|
||||
};
|
||||
@@ -460,7 +467,7 @@ namespace ProductionUiCordonel
|
||||
pc.Processes.Add(new ProductionProcessLogOff()); //[] [] []
|
||||
|
||||
var checkAttach = new ProductionProcessCheckAttachment(OrderNumber);
|
||||
CheckOrder.isDone += (x, g) =>
|
||||
orderBarcode.isDone += (x, g) =>
|
||||
{
|
||||
checkAttach.OrderNumber = ((ProductionProcessCheckOrderNumber)x).Ordernumber; ;
|
||||
};
|
||||
@@ -480,6 +487,14 @@ namespace ProductionUiCordonel
|
||||
|
||||
updateStatusGrid();
|
||||
UiElmEnable(btnDetect, true);
|
||||
if (retry)
|
||||
{
|
||||
runDetect();
|
||||
}
|
||||
else if(abort)
|
||||
{
|
||||
dpSubProcess.Children.Clear();
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckOrder_isDone(object sender, EventArgs e)
|
||||
@@ -497,12 +512,20 @@ namespace ProductionUiCordonel
|
||||
OrderHasChanged?.Invoke(this, e);
|
||||
}
|
||||
|
||||
private void allProcessesDone(object sender, EventArgs e)
|
||||
|
||||
private void allProcessesDone(object sender, Tuple<bool,bool, bool> e)
|
||||
{
|
||||
detectIsLocked = false;
|
||||
SetUpBlank();
|
||||
if (e.Item3)
|
||||
{
|
||||
printErrorNote();
|
||||
}
|
||||
|
||||
SetUpBlank(e.Item1,e.Item2);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void meterHasChanged(GenesisMeter oldMeter, GenesisMeter newMeter)
|
||||
{
|
||||
if (newMeter == null && oldMeter == null)
|
||||
@@ -513,7 +536,6 @@ namespace ProductionUiCordonel
|
||||
{
|
||||
//remove all
|
||||
CurrentProcess = "Warte auf Zähler";
|
||||
UiElmEnable(btnStart, false);
|
||||
UiElmEnable(btnDetect, true);
|
||||
Task.Run(() => { LoadDetails(); });
|
||||
return;
|
||||
@@ -524,7 +546,6 @@ namespace ProductionUiCordonel
|
||||
return;
|
||||
}
|
||||
|
||||
UiElmEnable(btnStart, true);
|
||||
UiElmEnable(btnDetect, false);
|
||||
CurrentProcess = "Bitte den Startknopf drücken";
|
||||
Task.Run(() => { LoadDetails(); });
|
||||
@@ -554,7 +575,7 @@ namespace ProductionUiCordonel
|
||||
{
|
||||
if (e != null)
|
||||
{
|
||||
txtLog.Text = e.Data;
|
||||
txtLog.Text = e.Data + System.Environment.NewLine + txtLog.Text;
|
||||
}
|
||||
}
|
||||
));
|
||||
@@ -635,7 +656,7 @@ namespace ProductionUiCordonel
|
||||
{
|
||||
dpSubProcess.Children.Clear();
|
||||
dpSubProcess.Children.Add(c);
|
||||
DockPanel.SetDock(c, Dock.Top & Dock.Left & Dock.Right);
|
||||
DockPanel.SetDock(c, Dock.Top & Dock.Left);
|
||||
}
|
||||
));
|
||||
|
||||
@@ -657,11 +678,7 @@ namespace ProductionUiCordonel
|
||||
|
||||
private void ButtonBase_OnClick(Object sender, RoutedEventArgs e)
|
||||
{
|
||||
OnLockMeter?.Invoke(sender, EventArgs.Empty);
|
||||
btnStart.IsEnabled = false;
|
||||
CurrentGenesisMeter.SerialNumber = SerialNumber;
|
||||
CurrentProcess = "gestartet";
|
||||
pc.Start(CurrentGenesisMeter);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -704,10 +721,58 @@ namespace ProductionUiCordonel
|
||||
Settings.Slot = (int)cbxSlotBox.SelectedValue;
|
||||
storeSetting();
|
||||
}
|
||||
private void runDetect()
|
||||
{
|
||||
var hasDetect = Detect(true, 1);
|
||||
btnDetect.IsEnabled = false;
|
||||
if (hasDetect)
|
||||
{
|
||||
OnLockMeter?.Invoke(null, EventArgs.Empty);
|
||||
|
||||
CurrentGenesisMeter.SerialNumber = SerialNumber;
|
||||
CurrentProcess = "gestartet";
|
||||
pc.Start(CurrentGenesisMeter);
|
||||
}
|
||||
}
|
||||
private void BtnDetect_Click(object sender, RoutedEventArgs e)
|
||||
{
|
||||
var hasDetect = Detect(true,1);
|
||||
runDetect();
|
||||
}
|
||||
private void printErrorNote()
|
||||
{
|
||||
var sb = new StringBuilder();
|
||||
var fileName = $"{DateTime.Now.ToString("yyyyMMddHHmmss")}_ReturnNoteTxt_{lblPcbID.Content}.txt";
|
||||
sb.AppendLine($"Aufallschein {DateTime.Now}");
|
||||
sb.AppendLine($"----------------------------------");
|
||||
sb.AppendLine($"PcbId {lblPcbID.Content}");
|
||||
sb.AppendLine($"Auftrag {lblOrderNumber.Content}");
|
||||
sb.AppendLine($"Seriennummer {lblSerialNumber.Content}");
|
||||
sb.AppendLine($"Status {lblMessage.Text}");
|
||||
sb.AppendLine($"-------------Meldung---------------");
|
||||
sb.Append($"{txtLog.Text}");
|
||||
File.WriteAllText(fileName, sb.ToString());
|
||||
//txtLog.Text
|
||||
System.Diagnostics.Process.Start(fileName);
|
||||
}
|
||||
|
||||
private void Window_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e)
|
||||
{
|
||||
|
||||
txtInputHidden.Focus();
|
||||
if (e.Key == System.Windows.Input.Key.Enter)
|
||||
{
|
||||
if (serialBarcode?.GetUserControl() is UcBarcodeInput bar)
|
||||
{
|
||||
bar?.inputKey(txtInputHidden.Text);
|
||||
}
|
||||
if (orderBarcode?.GetUserControl() is UcBarcodeInput obar)
|
||||
{
|
||||
obar?.inputKey(txtInputHidden.Text);
|
||||
}
|
||||
txtInputHidden.Clear();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -425,7 +425,7 @@ namespace ProductionUiCordonel
|
||||
private void UcFinalRadioTest_OnReleaseMeter(object sender, EventArgs e)
|
||||
{
|
||||
detectIsLocked = false;
|
||||
ucFinalRadioTest.SetUpBlank();
|
||||
ucFinalRadioTest.SetUpBlank(false);
|
||||
}
|
||||
|
||||
|
||||
|
||||
+3
-2
@@ -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())
|
||||
|
||||
+4
-3
@@ -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);
|
||||
}
|
||||
|
||||
private void StepError()
|
||||
var retry = false;
|
||||
var abort = false;
|
||||
var print = false;
|
||||
if (Error)
|
||||
{
|
||||
switch (Result)
|
||||
{
|
||||
|
||||
UserControl.SetDesc("Errors occur");
|
||||
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(string ErrorText = "Ein Fehler ist aufgetreten")
|
||||
{
|
||||
|
||||
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();
|
||||
|
||||
});
|
||||
|
||||
+39
@@ -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
|
||||
{
|
||||
@@ -70,8 +71,46 @@ namespace ProductionUiCordonel.ProductionProcesses.Actions
|
||||
var SENSUSRADIO_MainAlarmMask = Meter.ReadRegister("SENSUSRADIO_MainAlarmMask");
|
||||
var SENSUSRADIO_ExtendedAlarmMask = Meter.ReadRegister("SENSUSRADIO_ExtendedAlarmMask");
|
||||
if (radioResetSuccess[0] == 0x02 && writeList.All(a => a == true) && SENSUSRADIO_MainAlarmMask[0] != 0)
|
||||
{
|
||||
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();
|
||||
|
||||
@@ -5,12 +5,12 @@
|
||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||
xmlns:local="clr-namespace:ProductionUiCordonel.UserControls.FinalTest"
|
||||
mc:Ignorable="d"
|
||||
d:DesignHeight="180" d:DesignWidth="320" MouseDown="UserControl_MouseDown" Background="AliceBlue">
|
||||
d:DesignHeight="300" d:DesignWidth="420" MouseDown="UserControl_MouseDown">
|
||||
<Grid Margin="0,0,0,0">
|
||||
<Label Content="" HorizontalAlignment="Left" Height="7" VerticalAlignment="Top" Width="264" Margin="10,0,0,0"/>
|
||||
<Label Name="lblDescription" Content="" Margin="0,0,26,10" HorizontalAlignment="Right" Width="284" Height="129" VerticalAlignment="Bottom"/>
|
||||
<Label Content="Scanner Input" Margin="0,0,227,144" RenderTransformOrigin="0.5,0.5" MaxHeight="25" FontSize="10" Height="29" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="83" />
|
||||
<Label Name="lblInput" Background="Beige" Content="" Margin="0,0,74,144" FontSize="10" MaxHeight="25" MouseDown="LblInput_MouseDown" Height="24" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="168"/>
|
||||
<Label Name="lblDescription" Content="" Margin="17,53,0,0" HorizontalAlignment="Left" Width="423" Height="237" VerticalAlignment="Top"/>
|
||||
<Label Content="Scanner Input" Margin="0,0,334,259" RenderTransformOrigin="0.5,0.5" MaxHeight="25" FontSize="10" Height="29" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="83" />
|
||||
<Label Name="lblInput" Background="Beige" Content="" Margin="0,0,161,259" FontSize="10" MaxHeight="25" MouseDown="LblInput_MouseDown" Height="24" VerticalAlignment="Bottom" HorizontalAlignment="Right" Width="168"/>
|
||||
<TextBox Name="txtHiddenInput" KeyDown="txtHiddenInput_KeyDown" Margin="118,29,125,25" Width="0" >
|
||||
|
||||
|
||||
|
||||
@@ -1,18 +1,7 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows;
|
||||
using System.Windows.Controls;
|
||||
using System.Windows.Data;
|
||||
using System.Windows.Documents;
|
||||
using System.Windows.Input;
|
||||
using System.Windows.Media;
|
||||
using System.Windows.Media.Imaging;
|
||||
using System.Windows.Navigation;
|
||||
using System.Windows.Shapes;
|
||||
using System.Windows.Threading;
|
||||
|
||||
namespace ProductionUiCordonel.UserControls.FinalTest
|
||||
@@ -23,7 +12,7 @@ namespace ProductionUiCordonel.UserControls.FinalTest
|
||||
public partial class UcBarcodeInput : UserControl
|
||||
{
|
||||
|
||||
public event EventHandler<KeyEventArgs> BarcodeInput;
|
||||
public event EventHandler<string> BarcodeInput;
|
||||
|
||||
public UcBarcodeInput()
|
||||
{
|
||||
@@ -85,17 +74,27 @@ namespace ProductionUiCordonel.UserControls.FinalTest
|
||||
));
|
||||
}
|
||||
|
||||
public void inputKey(string input)
|
||||
{
|
||||
this.Dispatcher.Invoke(DispatcherPriority.Send,
|
||||
new Action(() =>
|
||||
{
|
||||
BarcodeInput?.Invoke(this,input);
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
private void txtHiddenInput_KeyDown(object sender, KeyEventArgs e)
|
||||
{
|
||||
if (e.Key == Key.Enter)
|
||||
{
|
||||
//if (e.Key == Key.Enter)
|
||||
//{
|
||||
|
||||
BarcodeInput?.Invoke(sender, e);
|
||||
}
|
||||
else
|
||||
{
|
||||
lblInput.Content = txtHiddenInput.Text;
|
||||
}
|
||||
// BarcodeInput?.Invoke(sender, e);
|
||||
//}
|
||||
//else
|
||||
//{
|
||||
// lblInput.Content = txtHiddenInput.Text;
|
||||
//}
|
||||
|
||||
|
||||
}
|
||||
@@ -105,7 +104,7 @@ namespace ProductionUiCordonel.UserControls.FinalTest
|
||||
this.Dispatcher.Invoke(DispatcherPriority.Send,
|
||||
new Action(() =>
|
||||
{
|
||||
txtHiddenInput.Focus();
|
||||
//txtHiddenInput.Focus();
|
||||
}
|
||||
));
|
||||
}
|
||||
@@ -115,7 +114,7 @@ namespace ProductionUiCordonel.UserControls.FinalTest
|
||||
this.Dispatcher.Invoke(DispatcherPriority.Send,
|
||||
new Action(() =>
|
||||
{
|
||||
txtHiddenInput.Focus();
|
||||
//txtHiddenInput.Focus();
|
||||
}
|
||||
));
|
||||
}
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
<Label Name="lblCordMax" Content="-" HorizontalAlignment="Left" Height="25" Margin="0,0,0,0" Grid.Row="2" Grid.Column="3" VerticalAlignment="Top" Width="50" Grid.ColumnSpan="2"/>
|
||||
<Label Name="lblSirtMax" Content="-" HorizontalAlignment="Left" Height="25" Margin="0,0,0,0" Grid.Row="3" Grid.Column="3" VerticalAlignment="Top" Width="50"/>
|
||||
<Button Content="Done" IsEnabled="False" Name="BtnDone" HorizontalAlignment="Left" Height="25" Grid.Row="5" VerticalAlignment="Top" Width="100" Click="BtnDone_Click"/>
|
||||
<Button Content="Skip" IsEnabled="True" x:Name="BtnDone_Copy" HorizontalAlignment="Left" Height="25" Grid.Row="4" VerticalAlignment="Top" Width="100" Click="BtnDone_Copy_Click" />
|
||||
<Button Content="Skip" IsEnabled="True" Visibility="Hidden" x:Name="BtnDone_Copy" HorizontalAlignment="Left" Height="25" Grid.Row="4" VerticalAlignment="Top" Width="100" Click="BtnDone_Copy_Click" />
|
||||
<Button x:Name="btnfrocePam" Content="Force a PAM" Click="BtnfrocePam_Click" HorizontalAlignment="Left" Width="72" Grid.Row="5" Grid.Column="2" Margin="1,0,0,0" Grid.ColumnSpan="2"/>
|
||||
|
||||
|
||||
|
||||
@@ -126,12 +126,17 @@ namespace Service.MeterProcessState.Controllers
|
||||
|
||||
var radio = OrderRadioParameter.GetRadioPramas(PcbID, GlobalConfig.connectionString.Value, withPressure ? "p" : "");
|
||||
if (radio != null)
|
||||
{
|
||||
|
||||
if (radio.EncryptionKey != null)
|
||||
{
|
||||
var builder = new StringBuilder();
|
||||
foreach (var t in radio.EncryptionKey)
|
||||
{
|
||||
builder.Append(t.ToString("x2"));
|
||||
}
|
||||
}
|
||||
|
||||
return Request.CreateResponse(HttpStatusCode.OK, radio);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -735,7 +735,7 @@ namespace Service.MeterProcessState.Controllers
|
||||
ret.SkipRadioParameters = (bool)item["SkipRadioParameters"];
|
||||
ret.SkipFWCheck = (bool)item["SkipFWCheck"];
|
||||
ret.SkipBatteyCheck = (bool)item["SkipBatteyCheck"];
|
||||
ret.SkipBatteyCheck = (bool)item["SkipLUT"];
|
||||
ret.SkipLUT = (bool)item["SkipLUT"];
|
||||
ret.Date = (DateTime)item["Date"];
|
||||
ret.Name = item["Name"].ToString();
|
||||
}
|
||||
|
||||
@@ -97,7 +97,7 @@ namespace Xylem.Common.Service.MeterProcessState.Controllers
|
||||
/// <returns></returns>
|
||||
private bool GetLimitsFromDB(Int16 Frequenz, Int16 Nennweite, Int16 Baulaenge, Int16 BoxHead, int Variant_o, int Variant_p, out byte RSSI_Pam_Min, out byte RSSI_Pam_Max, out byte RSSI_SEMI_Min, out byte RSSI_SEMI_Max, out UInt32 LimitId)
|
||||
{
|
||||
string sql = $"SELECT top 1 * FROM [Cordonel_Radio_RSSI_Limits] WHERE [Box_Head]={BoxHead} and [Frequency] = {Frequenz} and [Nennweite] = {Nennweite} and [Baulaenge] = {Baulaenge} order by id desc "; //and [Variant_o] = {Variant_o} and [Variant_p] = {Variant_p} ";
|
||||
string sql = $"SELECT top 1 * FROM [Cordonel_Radio_RSSI_Limits] WHERE [Box_Head]={BoxHead} and [Frequency] = {Frequenz} and [Nennweite] = {Nennweite} and ([Baulaenge] = {Baulaenge} or [Baulaenge] = 0) order by id desc "; //and [Variant_o] = {Variant_o} and [Variant_p] = {Variant_p} ";
|
||||
|
||||
using (SqlCommand sqlcommand = new SqlCommand(sql, connection))
|
||||
{
|
||||
|
||||
@@ -80,7 +80,7 @@ namespace Xylem.Common.Logic.SoftwareAccessHelper
|
||||
{
|
||||
|
||||
var client = new RestClient(Url);
|
||||
|
||||
WebRequest.DefaultWebProxy = null;
|
||||
var request = new RestRequest(Method.POST);
|
||||
|
||||
ServicePointManager.Expect100Continue = false;
|
||||
@@ -124,7 +124,7 @@ namespace Xylem.Common.Logic.SoftwareAccessHelper
|
||||
{
|
||||
|
||||
var client = new RestClient(Url);
|
||||
|
||||
WebRequest.DefaultWebProxy = null;
|
||||
var request = new RestRequest(Method.POST);
|
||||
|
||||
ServicePointManager.Expect100Continue = false;
|
||||
@@ -167,7 +167,7 @@ namespace Xylem.Common.Logic.SoftwareAccessHelper
|
||||
{
|
||||
|
||||
var client = new RestClient(Url);
|
||||
|
||||
WebRequest.DefaultWebProxy = null;
|
||||
var request = new RestRequest(Method.POST);
|
||||
|
||||
ServicePointManager.Expect100Continue = false;
|
||||
@@ -217,6 +217,7 @@ namespace Xylem.Common.Logic.SoftwareAccessHelper
|
||||
{
|
||||
|
||||
var client = new RestClient(Url);
|
||||
WebRequest.DefaultWebProxy = null;
|
||||
ServicePointManager.Expect100Continue = false;
|
||||
var request = new RestRequest(Method.POST);
|
||||
|
||||
@@ -275,7 +276,7 @@ namespace Xylem.Common.Logic.SoftwareAccessHelper
|
||||
{
|
||||
|
||||
var client = new RestClient(Url);
|
||||
|
||||
WebRequest.DefaultWebProxy = null;
|
||||
var request = new RestRequest(Method.GET);
|
||||
ServicePointManager.Expect100Continue = false;
|
||||
if (!TimeoutMS.HasValue)
|
||||
|
||||
+1
-1
@@ -1 +1 @@
|
||||
f64d563def603c89cafafa61a3219ba97e1e344c
|
||||
81d60b90addc793525740e9993e19bf6665bd401
|
||||
|
||||
@@ -15,6 +15,7 @@ namespace XylemCommonUiLegacyGenCtl
|
||||
void AddMeter(string serialNumber, int slot);
|
||||
void AddAllMeters();
|
||||
void MeterDone(int slot, bool Succeed);
|
||||
void MeterDoneWithDetails(int slot, bool Succeed, out string LutCrc, out bool MeterHasPreadjustment);
|
||||
|
||||
void SetErrorFrame(int slot, double errorFrame = 0.0);
|
||||
|
||||
@@ -48,7 +49,6 @@ namespace XylemCommonUiLegacyGenCtl
|
||||
|
||||
bool IsBusy();
|
||||
|
||||
|
||||
void Dispose(bool fromCode);
|
||||
|
||||
void SetTestSetupContainer(dynamic container);
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
using ByteArrayStyle;
|
||||
using Newtonsoft.Json;
|
||||
using NLog;
|
||||
using System;
|
||||
using System.Collections.Concurrent;
|
||||
@@ -14,9 +15,11 @@ using System.Text;
|
||||
using System.Threading;
|
||||
using System.Threading.Tasks;
|
||||
using System.Windows.Forms;
|
||||
using Xylem.Common.CommonCore.Configuration;
|
||||
using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore;
|
||||
using Xylem.Common.Hardware.WaterMeter.Genesis.Registers;
|
||||
using Xylem.Common.Hardware.WaterMeter.WaterMeterCore;
|
||||
using Xylem.Common.Logic.SoftwareAccessHelper;
|
||||
using Xylem.Common.Metrology.Measurements;
|
||||
using Xylem.Common.Metrology.Measurements.Consts;
|
||||
using Xylem.Common.Utils.Logging;
|
||||
@@ -700,6 +703,36 @@ namespace XylemCommonUiLegacyGenCtl
|
||||
}
|
||||
}
|
||||
|
||||
public void MeterDoneWithDetails(int slot, bool Succeed, out string LutCrc, out bool MeterHasPreadjustment)
|
||||
{
|
||||
LutCrc = "";
|
||||
MeterHasPreadjustment = false;
|
||||
MeterDone(slot, Succeed);
|
||||
var meter = batch.ListOfMeters.First(f => f.Slot == slot);
|
||||
if (meter != null && meter is GenesisMeter gen)
|
||||
{
|
||||
LutCrc = gen.LutCrc;
|
||||
try
|
||||
{
|
||||
var responseJson = LocalWebRequest.GetRequest($"{ServiceUrls.MeterInfoForTestBench()}{gen.PcbId}");
|
||||
var a = JsonConvert.DeserializeObject<string[]>(responseJson);
|
||||
var SerialNumber = a[0];
|
||||
if (!String.IsNullOrEmpty(SerialNumber))
|
||||
{
|
||||
int tmp;
|
||||
MeterHasPreadjustment = int.TryParse(a[4], out tmp);
|
||||
}
|
||||
}
|
||||
catch (Exception)
|
||||
{
|
||||
|
||||
throw;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public void MeterDone(int slot, bool Succeed)
|
||||
@@ -750,14 +783,19 @@ namespace XylemCommonUiLegacyGenCtl
|
||||
if (!genMeter.IsLoggedOn)
|
||||
{
|
||||
genMeter.Login();
|
||||
|
||||
}
|
||||
genMeter.WriteRegister(Register.Genesisflow.SampleRate, 2);
|
||||
genMeter.WriteRegister(Register.Genesisflow.LedMode, 0,true);
|
||||
|
||||
meter.WriteLog($"MeterIsDone {state} {genMeter.LutCrc }");
|
||||
}
|
||||
else
|
||||
{
|
||||
meter.WriteLog($"MeterIsDone {state} ");
|
||||
}
|
||||
|
||||
|
||||
meter.WriteLog($"MeterIsDone {state}");
|
||||
|
||||
|
||||
}).ContinueWith(delegate
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user