diff --git a/Common/.shared/SharedAssemblyInfo.cs b/Common/.shared/SharedAssemblyInfo.cs index 4e2e3419..3176818f 100644 --- a/Common/.shared/SharedAssemblyInfo.cs +++ b/Common/.shared/SharedAssemblyInfo.cs @@ -13,4 +13,4 @@ using System.Reflection; // //[assembly: AssemblyVersion("1.2.*.0")] -[assembly: AssemblyVersion("2.8.5.*")] +[assembly: AssemblyVersion("2.8.6.*")] diff --git a/Common/CommonCore.Configuration/ServiceUrlsBackUp_New.cs b/Common/CommonCore.Configuration/ServiceUrlsBackUp_New.cs index 3ac4493b..e1d10030 100644 --- a/Common/CommonCore.Configuration/ServiceUrlsBackUp_New.cs +++ b/Common/CommonCore.Configuration/ServiceUrlsBackUp_New.cs @@ -34,6 +34,9 @@ namespace Xylem.Common.CommonCore.Configuration private static readonly String DefaultGetOrderOverviewServiceUrl = $"{ServerDns}/MeterProcessState/api/FinalCheck/GetOrderOverview?ProductionOrderNumber="; + private static readonly String DefaultGetOrderDetailsServiceUrl = + $"{ServerDns}/MeterProcessState/api/FinalCheck/GetOrderDetails?ProductionOrderNumber="; + private static readonly String DefaultDownloadFilesPartsServiceUrl = $"{ServerDns}/MeterProcessState/api/FileUpToDate/GetFileParts?ParentFileId="; @@ -260,6 +263,19 @@ namespace Xylem.Common.CommonCore.Configuration DefaultGetOrderOverviewServiceUrl; } + /// + /// Get Cordonel order details to check for order dependent requirements like + /// - MeterSize, + /// - FrequencyIndicator, + /// - PressurePresent. + /// + /// + public static String GetOrderDetailsServiceUrl() + { + return ConfigurationManager.AppSettings["GetOrderDetailsServiceUrl"] ?? + DefaultGetOrderDetailsServiceUrl; + } + /// /// List all Cordonel FW packages. /// diff --git a/Common/CordonelAssemblyLine/Model/PickingModel.cs b/Common/CordonelAssemblyLine/Model/PickingModel.cs index 0bd3a717..4c3cb3a9 100644 --- a/Common/CordonelAssemblyLine/Model/PickingModel.cs +++ b/Common/CordonelAssemblyLine/Model/PickingModel.cs @@ -18,6 +18,7 @@ using Xylem.Common.Hardware.WaterMeter.Genesis.GenesisStatus; using Xylem.Common.Hardware.WaterMeter.Genesis.Registers; using Xylem.Common.Hardware.WaterMeter.WaterMeterCore; using Xylem.Common.Hardware.WaterMeter.WaterMeterCore.Consts; +using Xylem.Common.Logic.ProductionOrderCore.OrderData; using Xylem.Common.Logic.SoftwareAccessHelper; using static Ui.ProductionControls.ctlPictureProgressBar; diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs index 2094035f..63b00df7 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/GenesisMeter.cs @@ -225,7 +225,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public String MeterSize { - protected set; get; + set; get; } /// @@ -265,7 +265,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// public Boolean PressureSensorAssembled { - protected set; get; + set; get; } /// diff --git a/Common/Hardware/WaterMeter/Genesis/GenesisCore/IGenesisMeter.cs b/Common/Hardware/WaterMeter/Genesis/GenesisCore/IGenesisMeter.cs index 51b8727b..b98331b9 100644 --- a/Common/Hardware/WaterMeter/Genesis/GenesisCore/IGenesisMeter.cs +++ b/Common/Hardware/WaterMeter/Genesis/GenesisCore/IGenesisMeter.cs @@ -116,10 +116,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// This is the meter size. /// - String MeterSize - { - get; - } + String MeterSize { get; set; } /// /// Length of the meter. @@ -129,10 +126,7 @@ namespace Xylem.Common.Hardware.WaterMeter.Genesis.GenesisCore /// /// Pressure sensor assembled to meter. /// - Boolean PressureSensorAssembled - { - get; - } + Boolean PressureSensorAssembled { get; set; } /// /// Region (EMEA, NA or China). diff --git a/Common/Logic.PrdoctionToProductMapper/Logic.ProductionToProductMapper.csproj b/Common/Logic.PrdoctionToProductMapper/Logic.ProductionToProductMapper.csproj index 0ad69b62..8c6fc0c0 100644 --- a/Common/Logic.PrdoctionToProductMapper/Logic.ProductionToProductMapper.csproj +++ b/Common/Logic.PrdoctionToProductMapper/Logic.ProductionToProductMapper.csproj @@ -104,7 +104,6 @@ - diff --git a/Common/Logic/ProductionOrderCore/OrderData/OrderDetailsDb.cs b/Common/Logic/ProductionOrderCore/OrderData/OrderDetailsDb.cs index 95d95c2c..deea2085 100644 --- a/Common/Logic/ProductionOrderCore/OrderData/OrderDetailsDb.cs +++ b/Common/Logic/ProductionOrderCore/OrderData/OrderDetailsDb.cs @@ -1,10 +1,11 @@ -using System; +using Newtonsoft.Json; +using System; using System.Collections.Generic; -using Newtonsoft.Json; using Xylem.Common.CommonCore.Configuration; using Xylem.Common.CommonCore.Consts; using Xylem.Common.Logic.SoftwareAccessHelper; + namespace Xylem.Common.Logic.ProductionOrderCore.OrderData { /// @@ -90,6 +91,46 @@ namespace Xylem.Common.Logic.ProductionOrderCore.OrderData } } + /// + /// Get Cordonel order details for production status: + /// - MeterSize, + /// - FrequencyIndicator, + /// - PressurePresent. + /// + /// + /// + /// + /// true if successful + /// + /// - Initial. + /// + public static Boolean GetOrderDetails(Int64 productionOrderNumber, String pcbId, + out PickingCompareItem orderDetails) + { + try + { + var url = ServiceUrls.GetOrderOverviewServiceUrl(); + url += $@"{productionOrderNumber}&CheckPcbId={pcbId}"; + var requestResponse = LocalWebRequest.GetRequest(url, hugeTimeoutDbRequest); + if (string.IsNullOrEmpty(requestResponse)) + { + orderDetails = new PickingCompareItem(0, 0, false, null); + return false; + } + + var o = JsonConvert.DeserializeObject(requestResponse); + orderDetails = new PickingCompareItem(o.PickingCompareItem.MeterSize, o.PickingCompareItem.FrequencyIndicator, + o.PickingCompareItem.PressurePresent, null); + + return orderDetails != null; + } + catch (Exception) + { + orderDetails = new PickingCompareItem(0, 0, false, null); + return false; + } + } + /// /// Get Cordonel overview of production status: /// - Order no. diff --git a/Common/Logic.PrdoctionToProductMapper/Cordonel/PickingCompareItem.cs b/Common/Logic/ProductionOrderCore/OrderData/PickingCompareItem.cs similarity index 96% rename from Common/Logic.PrdoctionToProductMapper/Cordonel/PickingCompareItem.cs rename to Common/Logic/ProductionOrderCore/OrderData/PickingCompareItem.cs index c1ace792..116e94be 100644 --- a/Common/Logic.PrdoctionToProductMapper/Cordonel/PickingCompareItem.cs +++ b/Common/Logic/ProductionOrderCore/OrderData/PickingCompareItem.cs @@ -1,8 +1,7 @@ using System; using System.Collections.Generic; -using Xylem.Common.Logic.ProductionOrderCore.OrderData; -namespace Logic.ProductionToProductMapper.Cordonel +namespace Xylem.Common.Logic.ProductionOrderCore.OrderData { /// /// Picking check and process state. diff --git a/Common/Logic/ProductionOrderCore/ProductionOrderCore.csproj b/Common/Logic/ProductionOrderCore/ProductionOrderCore.csproj index a55c74f5..e4ae479e 100644 --- a/Common/Logic/ProductionOrderCore/ProductionOrderCore.csproj +++ b/Common/Logic/ProductionOrderCore/ProductionOrderCore.csproj @@ -133,6 +133,7 @@ + diff --git a/Common/Production/ProductionUiCordonel/App.config b/Common/Production/ProductionUiCordonel/App.config index 45ce790e..23952da7 100644 --- a/Common/Production/ProductionUiCordonel/App.config +++ b/Common/Production/ProductionUiCordonel/App.config @@ -34,7 +34,7 @@ - + diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/DetectCordonel.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/DetectCordonel.cs deleted file mode 100644 index a2f88dd5..00000000 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/DetectCordonel.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.GenericProcesses; - -namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolProcesses -{ - public class DetectCordonel : BaseDetectCordonel - { - /// - public DetectCordonel(String name) : base(name) - { - } - - /// - protected override Boolean ValidateProcessAndPublishDataToGui() - { - return true; - } - } -} diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/EolProcessStatesDef.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/EolProcessStatesDef.cs index 138c4c13..2136da04 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/EolProcessStatesDef.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/EolProcessStatesDef.cs @@ -123,6 +123,14 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr var stateContainer = new List { #region ----------------------------------- GENERIC-STATES--------------------------------------------- + new ProcessStateStruct( + productionProcess: new DetectCordonel(Resources.StrStateDetectCordonel), + processState: ProcessState.DetectCordonel, + processInfo: Resources.StrStateDetectCordonel, + productionProcessNo: 0, + // CheckNewMeter will exit with repeated detect or connect + nextStateOnSuccess: ProcessState.CheckNewMeter), + new ProcessStateStruct( productionProcess: new ConnectCordonel(Resources.StrStateConnectCordonel), processState: ProcessState.ConnectCordonel, @@ -153,14 +161,6 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr #endregion -------------------------------- GENERIC-STATES -------------------------------------------- #region ----------------------------------- EOL-STATES ------------------------------------------------ - new ProcessStateStruct( - productionProcess: new DetectCordonel(Resources.StrStateDetectCordonel), - processState: ProcessState.DetectCordonel, - processInfo: Resources.StrStateDetectCordonel, - productionProcessNo: 0, - // CheckNewMeter will exit with repeated detect or connect - nextStateOnSuccess: ProcessState.CheckNewMeter), - // Precondition: - A new meter has to be detected // Create (hidden) EOL progress for sentinel. new ProcessStateStruct( diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/ConnectCordonel.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/ConnectCordonel.cs index 40373aca..11a23721 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/ConnectCordonel.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/ConnectCordonel.cs @@ -18,7 +18,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener /// Connect initially to Cordonel. /// Checks the ability to login as it gets the password from DB. /// Precondition: - /// - The process has to be completed as the PcbId is needed. + /// - The process has to be completed as the PcbId is needed. /// /// /// diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/BaseDetectCordonel.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/DetectCordonel.cs similarity index 81% rename from Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/BaseDetectCordonel.cs rename to Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/DetectCordonel.cs index 64ffcb16..18a18bad 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/BaseDetectCordonel.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/DetectCordonel.cs @@ -9,13 +9,13 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener /// Production process detects the serial number of the Cordonel. /// This is the indication, that a Cordonel is connected to the hardware interface. /// - public abstract class BaseDetectCordonel : BaseProductionProcess + public class DetectCordonel : BaseProductionProcess { /// /// Ctor /// Setup of name and single process state /// - protected BaseDetectCordonel(String name) : base( name) + public DetectCordonel(String name) : base( name) { } @@ -43,17 +43,12 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener // read the PcbId to validate Cordonel is attached var retVal = !string.IsNullOrEmpty(Meter.GetPcbId()); - if (retVal && ValidateProcessAndPublishDataToGui()) + if (retVal) return StatusReturn.Okay; ErrorMsgDispatcher(Resources.StrErrorMsgCordonelDetection); return StatusReturn.Failed; } - /// - /// Application differences in check result - /// - /// - protected abstract Boolean ValidateProcessAndPublishDataToGui(); } } diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/GetFinalParametrization.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/GetFinalParametrization.cs index ce4b0dba..854de938 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/GetFinalParametrization.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/GenericProcesses/GetFinalParametrization.cs @@ -27,7 +27,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Gener /// /// Get programming parameters for Cordonel including VAKO and CSD /// Precondition: - /// - The process has to be completed as the PcbId is needed. + /// - The process has to be completed as the PcbId is needed. /// /// /// diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckCordonelMapping.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckCordonelMapping.cs index 8ad59978..e3b0c1de 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckCordonelMapping.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/CheckCordonelMapping.cs @@ -1,7 +1,6 @@ using System; using Xylem.Common.CommonCore.Consts; -using Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Enum; -using Xylem.Common.Production.ProductionUiCordonel.Properties; +using Xylem.Common.Logic.ProductionOrderCore.OrderData; namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.PickingProcesses { @@ -27,7 +26,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki /// Precondition: - Detection of Cordonel has to be finished. /// /// - /// + /// /// - Initial /// public override StatusReturn ExecuteProcess() @@ -39,18 +38,25 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki SignalRunningState(); - // TODO THW check order number and pcbid - /* Order/GetCordonelMapping?PcbId=212120036 - "PcbId": "212120036", - "CordonelAssignedPicking_FertigungsAuftragsNr": 3184020, - "CordonelPressureTest_FertigungsAuftragsNr": 3184020, - "MapPcbIdToSerialNumber_SerialNumber": 22718451*/ - - var retVal = !string.IsNullOrEmpty(Meter.GetPcbId()); - if (retVal) return StatusReturn.Okay; + // Check mapping information + if (!OrderDetailsDb.GetCordonelMapping(Meter.PcbId, out var cordonelMapping)) + { + return StatusReturn.Failed; + } + // Reserve picking for this device - ErrorMsgDispatcher(Resources.StrErrorMsgCordonelDetection); - return StatusReturn.Failed; + // Get detailed order information to set e.g. the correct meter size needed for LUT + // installation + if (!OrderDetailsDb.GetOrderDetails(Meter.OrderNumber, Meter.PcbId, out var orderDetails)) + { + return StatusReturn.Failed; + } + + // Meter has to be connected in advance being able to overwrite the meter size + Meter.MeterSize = MeterSizeConverter.ConvertMeterSizeEnumToSizeName((MeterSize)orderDetails.MeterSize); + Meter.PressureSensorAssembled = orderDetails.PressurePresent; + + return StatusReturn.Okay; } } } diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/DetectCordonel.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/DetectCordonel.cs deleted file mode 100644 index 94d00760..00000000 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/DetectCordonel.cs +++ /dev/null @@ -1,27 +0,0 @@ -using System; -using Xylem.Common.Logic.ProductionOrderCore.OrderData; -using Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.GenericProcesses; - -namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.PickingProcesses -{ - public class DetectCordonel : BaseDetectCordonel - { - /// - public DetectCordonel(String name) : base(name) - { - } - - /// - protected override Boolean ValidateProcessAndPublishDataToGui() - { - // Check mapping information - if (!OrderDetailsDb.GetCordonelMapping(Meter.PcbId, out var cordonelMapping)) - { - return false; - } - // Reserve picking for this device - - return true; - } - } -} diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/ExecInstallLut.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/ExecInstallLut.cs index 0580f117..7427ddba 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/ExecInstallLut.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/ExecInstallLut.cs @@ -45,6 +45,8 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki try { var url = ServiceUrls.GetLutUrl(); + // ATTENTION: Meter.MeterSize has to be preset from order.MeterSize as this is forced by order. + // If not doing so, the wrong LUT will be loaded! url += $"?Metersize={(Int32)MeterSizeConverter.ConvertMeterSizeNameToEnum(Meter.MeterSize)}" + $"&ForProd=true&Region={Meter.Region}"; var requestResponse = LocalWebRequest.GetRequest(url, 30000); diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/PickingProcessStatesDef.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/PickingProcessStatesDef.cs index d44bc787..499bbf85 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/PickingProcessStatesDef.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/PickingProcessStatesDef.cs @@ -32,7 +32,7 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki /// INSTRUCTION FOR PREPARATION: /// ----------------------------- /// STEP 1: Define some states for your processes - /// STEP 2: Implement your processes like + /// STEP 2: Implement your processes like /// STEP 3: Register and chain your states here /// /// @@ -104,13 +104,22 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki var stateContainer = new List { #region ----------------------------------- GENERIC-STATES--------------------------------------------- + // Detection of Cordonel has to be completed before assigning next state, so leave to automatic + // to change the state after successfully execution. The detection is the base for all others. + new ProcessStateStruct( + productionProcess: new DetectCordonel(Resources.StrStateDetectCordonel), + processState: ProcessState.DetectCordonel, + processInfo: Resources.StrStateDetectCordonel, + productionProcessNo: 1, + nextStateOnSuccess: ProcessState.CheckNewMeter), + // Precondition: - The detection process has to be completed as the PcbId is needed. new ProcessStateStruct( productionProcess: new ConnectCordonel(Resources.StrStateConnectCordonel), processState: ProcessState.ConnectCordonel, processInfo: Resources.StrStateConnectCordonel, - productionProcessNo: 3, - nextStateOnSuccess: ProcessState.GetProgrammingParameters), + productionProcessNo: 2, + nextStateOnSuccess: ProcessState.CheckCordonelMapping), // Precondition: - The connection process has to be completed as a readout of some register // values from the Cordonel are needed to check the update capability: @@ -120,9 +129,8 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki processState: ProcessState.GetProgrammingParameters, processInfo: Resources.StrStateGetProgrammingParameters, productionProcessNo: 4, - nextStateOnSuccess: ProcessState.InstallLut, - // Wait before starting this process until this process has been successfully completed - waitForSingleProcess: ProcessState.ConnectCordonel), + nextStateOnSuccess: ProcessState.InstallLut), + #endregion -------------------------------- GENERIC-STATES -------------------------------------------- #region ----------------------------------- PICKING-STATES -------------------------------------------- @@ -134,23 +142,19 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki productionProcessNo: 0, nextStateOnSuccess: ProcessState.DetectCordonel), - // Detection of Cordonel has to be completed before assigning next state, so leave to automatic - // to change the state after successfully execution. The detection is the base for all others. - new ProcessStateStruct( - productionProcess: new DetectCordonel(Resources.StrStateDetectCordonel), - processState: ProcessState.DetectCordonel, - processInfo: Resources.StrStateDetectCordonel, - productionProcessNo: 1, - nextStateOnSuccess: ProcessState.CheckCordonelMapping), - - // Detection of Cordonel has to be completed before assigning next state, so leave to automatic - // to change the state after successfully execution. The detection is the base for all others. + // Connection of Cordonel has to be completed before assigning next state, so leave to automatic + // to change the state after successfully execution. Meter has to be connected in advance being able to + // overwrite the meter size based on the order details. The initial meter size in connect Cordonel will + // be set by reading the Cordonel out. But a new meter size may be forced by the order needed to change + // it and install the correct LUT new ProcessStateStruct( productionProcess: new CheckCordonelMapping(Resources.StrStateCheckCordonelMapping), processState: ProcessState.CheckCordonelMapping, processInfo: Resources.StrStateCheckCordonelMapping, - productionProcessNo: 2, - nextStateOnSuccess: ProcessState.CheckNewMeter), + productionProcessNo: 3, + nextStateOnSuccess: ProcessState.GetProgrammingParameters, + // Wait before starting this process until this process has been successfully completed + waitForSingleProcess: ProcessState.ConnectCordonel), // Connection of Cordonel has to be completed so leave to automatic new ProcessStateStruct( diff --git a/Common/Production/ProductionUiCordonel/ProductionUiCordonel.csproj b/Common/Production/ProductionUiCordonel/ProductionUiCordonel.csproj index 47fdd36f..2f6558c7 100644 --- a/Common/Production/ProductionUiCordonel/ProductionUiCordonel.csproj +++ b/Common/Production/ProductionUiCordonel/ProductionUiCordonel.csproj @@ -168,7 +168,6 @@ - @@ -178,7 +177,7 @@ - + @@ -186,7 +185,6 @@ -