diff --git a/Common/Production/ProductionUiCordonel/App.config b/Common/Production/ProductionUiCordonel/App.config index c940b21c..728a665b 100644 --- a/Common/Production/ProductionUiCordonel/App.config +++ b/Common/Production/ProductionUiCordonel/App.config @@ -34,7 +34,7 @@ - + diff --git a/Common/Production/ProductionUiCordonel/Docu/ProductionUiCordonel.qea b/Common/Production/ProductionUiCordonel/Docu/ProductionUiCordonel.qea index f1298663..4ecc35b0 100644 Binary files a/Common/Production/ProductionUiCordonel/Docu/ProductionUiCordonel.qea and b/Common/Production/ProductionUiCordonel/Docu/ProductionUiCordonel.qea differ diff --git a/Common/Production/ProductionUiCordonel/Docu/TBF_COM_EOL_SRSe.pdf b/Common/Production/ProductionUiCordonel/Docu/TBF_COM_EOL_SRSe.pdf new file mode 100644 index 00000000..c9b076c4 Binary files /dev/null and b/Common/Production/ProductionUiCordonel/Docu/TBF_COM_EOL_SRSe.pdf differ diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/EolProcessStatesDef.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/EolProcessStatesDef.cs index 066095b3..65fc798a 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/EolProcessStatesDef.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/EolProcesses/EolProcessStatesDef.cs @@ -107,47 +107,49 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // 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, + productionProcess: new DetectCordonel(Resources.StrStateDetectCordonel), + processState: ProcessState.DetectCordonel, + processInfo: Resources.StrStateDetectCordonel, productionProcessNo: 0, - nextStateOnSuccess: ProcessState.CheckNewMeter), + nextStateOnSuccess: ProcessState.CheckNewMeter), // Detection of Cordonel has to be completed before assigning next state. It has to be checked if // the meter changed to clear all collected contents of previous run. To UPDATE ALL INFORMATION after // new meter assignment the "DetectCordonel" has to be repeated to return here "Old Meter" and then // enter the "ConnectCordonel"! new ProcessStateStruct( - productionProcess: null, - processState: ProcessState.CheckNewMeter, - processInfo: Resources.StrProcessStateCheckNewMeter, + productionProcess: null, + processState: ProcessState.CheckNewMeter, + processInfo: Resources.StrProcessStateCheckNewMeter, productionProcessNo: null, - nextStateOnSuccess: ProcessState.DetectCordonel, - errorExitState: ProcessState.ConnectCordonel), + // Repeat detect as a new meter has been connected + nextStateOnSuccess: ProcessState.DetectCordonel, + // Used to go ahead as new meter returns "false" meaning error state + errorExitState: ProcessState.ConnectCordonel), // Precondition: - The detection process has to be completed as the PcbId is needed. // AVOID to change the process state on completion as parallel process is active! new ProcessStateStruct( - productionProcess: new ConnectCordonel(Resources.StrStateConnectCordonel), - processState: ProcessState.ConnectCordonel, - processInfo: Resources.StrStateConnectCordonel, - productionProcessNo: 1, + productionProcess: new ConnectCordonel(Resources.StrStateConnectCordonel), + processState: ProcessState.ConnectCordonel, + processInfo: Resources.StrStateConnectCordonel, + productionProcessNo: 1, // Avoid automatic change after completion as parallel process is active - nextStateOnSuccess: BaseProductionProcess.DoNotChangeStateAfterCompletion, + nextStateOnSuccess: BaseProductionProcess.DoNotChangeStateAfterCompletion, // Kick off parallel process execution kickOffParallelState: ProcessState.GetSerialNumberAndRadioAddress), // Precondition: - The detection process has to be completed as the PcbId is needed. // AVOID to change the process state on completion as parallel process is active! new ProcessStateStruct( - productionProcess: new GetSerialNumberAndRadioAddress(Resources.StrStateGetSerialAndRadioAddress), - processState:ProcessState.GetSerialNumberAndRadioAddress, - processInfo:Resources.StrStateGetSerialAndRadioAddress, - productionProcessNo: 2, + productionProcess: new GetSerialNumberAndRadioAddress(Resources.StrStateGetSerialAndRadioAddress), + processState: ProcessState.GetSerialNumberAndRadioAddress, + processInfo: Resources.StrStateGetSerialAndRadioAddress, + productionProcessNo: 2, // Avoid automatic change after completion as parallel process is active - nextStateOnSuccess: BaseProductionProcess.DoNotChangeStateAfterCompletion, + nextStateOnSuccess: BaseProductionProcess.DoNotChangeStateAfterCompletion, // Kick off parallel process execution - kickOffParallelState:ProcessState.GetProgrammingParameters), + kickOffParallelState: ProcessState.GetProgrammingParameters), // This scans the order number, it has to be executed exclusively with automatic new ProcessStateStruct( @@ -173,12 +175,12 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // - Wait on completed connection process before starting this process. // AVOID to change the process state on completion as parallel process is active! new ProcessStateStruct( - productionProcess: new GetFinalParametrization(Resources.StrStateGetProgrammingParameters), - processState: ProcessState.GetProgrammingParameters, - processInfo: Resources.StrStateGetProgrammingParameters, - productionProcessNo: 3, + productionProcess: new GetFinalParametrization(Resources.StrStateGetProgrammingParameters), + processState: ProcessState.GetProgrammingParameters, + processInfo: Resources.StrStateGetProgrammingParameters, + productionProcessNo: 3, // Avoid automatic change after completion as parallel process is active - nextStateOnSuccess: BaseProductionProcess.DoNotChangeStateAfterCompletion, + nextStateOnSuccess: BaseProductionProcess.DoNotChangeStateAfterCompletion, // Kick off parallel process execution kickOffParallelState: ProcessState.CheckProductionState, // Wait until this process has been successfully completed @@ -189,12 +191,12 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // - Wait on completed connection process before starting this process. // AVOID to change the process state on completion as parallel process is active! new ProcessStateStruct( - productionProcess: new CheckProductionState(Resources.StrStateCheckProductionState), - processState: ProcessState.CheckProductionState, - processInfo: Resources.StrStateCheckProductionState, - productionProcessNo: 4, + productionProcess: new CheckProductionState(Resources.StrStateCheckProductionState), + processState: ProcessState.CheckProductionState, + processInfo: Resources.StrStateCheckProductionState, + productionProcessNo: 4, // Avoid automatic change after completion as parallel process is active - nextStateOnSuccess: BaseProductionProcess.DoNotChangeStateAfterCompletion, + nextStateOnSuccess: BaseProductionProcess.DoNotChangeStateAfterCompletion, // Kick off parallel process execution kickOffParallelState: ProcessState.ProcessPasswordFile, // Wait until this process has been successfully completed @@ -207,30 +209,30 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // Leave state switch to automatic to avoid side effects on incomplete updated DB for next // steps. new ProcessStateStruct( - productionProcess: new ExecPasswordFile(Resources.StrStatePasswordFile), - processState: ProcessState.ProcessPasswordFile, - processInfo: Resources.StrStatePasswordFile, + productionProcess: new ExecPasswordFile(Resources.StrStatePasswordFile), + processState: ProcessState.ProcessPasswordFile, + processInfo: Resources.StrStatePasswordFile, productionProcessNo: 5, - nextStateOnSuccess: ProcessState.ExecFinalParametrization, + nextStateOnSuccess: ProcessState.ExecFinalParametrization, waitForAllProcesses: true), // This writes all setups to the device, it has to be executed exclusively with automatic new ProcessStateStruct( - productionProcess: new ExecFinalParametrization(Resources.StrStateFinalParametrization), - processState: ProcessState.ExecFinalParametrization, - processInfo: Resources.StrStateFinalParametrization, + productionProcess: new ExecFinalParametrization(Resources.StrStateFinalParametrization), + processState: ProcessState.ExecFinalParametrization, + processInfo: Resources.StrStateFinalParametrization, productionProcessNo: 6, - nextStateOnSuccess: ProcessState.ExecStoreConfiguration), + nextStateOnSuccess: ProcessState.ExecStoreConfiguration), // Precondition: - The final parametrization has to be finished as this shall be stored // to non-volatile memory and checked if remaining valid after the reboot. // Store configuration has to be executed exclusively with automatic new ProcessStateStruct( - productionProcess: new ExecStoreConfiguration(Resources.StrStateStoreConfiguration), - processState: ProcessState.ExecStoreConfiguration, - processInfo: Resources.StrStateStoreConfiguration, + productionProcess: new ExecStoreConfiguration(Resources.StrStateStoreConfiguration), + processState: ProcessState.ExecStoreConfiguration, + processInfo: Resources.StrStateStoreConfiguration, productionProcessNo: 7, - nextStateOnSuccess: ProcessState.RebootCordonel), + nextStateOnSuccess: ProcessState.RebootCordonel), // Precondition: - The store configuration has to be executed to safe all settings // to non-volatile memory and checked if remaining valid after the reboot. @@ -246,53 +248,53 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.EolPr // completed. // Check final configuration has to be executed exclusively with automatic new ProcessStateStruct( - productionProcess: new CheckFinalParametrization(Resources.StrStateCheckParametrization), - processState: ProcessState.CheckFinalParametrization, - processInfo: Resources.StrStateCheckParametrization, - productionProcessNo:9, - nextStateOnSuccess: ProcessState.CheckRadio), + productionProcess: new CheckFinalParametrization(Resources.StrStateCheckParametrization), + processState: ProcessState.CheckFinalParametrization, + processInfo: Resources.StrStateCheckParametrization, + productionProcessNo: 9, + nextStateOnSuccess: ProcessState.CheckRadio), // Precondition: - The final parametrization, reboot process including the store all // configurations and the check of all setups survived the reboot have to be completed. // Radio signal level check, skipped on NA region or if skipping is required by special // approval new ProcessStateStruct( - productionProcess: new CheckRadio(Resources.StrStateRadioCheck), - processState: ProcessState.CheckRadio, - processInfo: Resources.StrStateRadioCheck, - productionProcessNo:10, - nextStateOnSuccess: ProcessState.CheckOrderNumber), + productionProcess: new CheckRadio(Resources.StrStateRadioCheck), + processState: ProcessState.CheckRadio, + processInfo: Resources.StrStateRadioCheck, + productionProcessNo: 10, + nextStateOnSuccess: ProcessState.CheckOrderNumber), // Precondition: - All checks have to be executed with positive result new ProcessStateStruct( - productionProcess: new CheckAttachments(Resources.StrStateCheckAttachments), - processState: ProcessState.CheckAttachments, - processInfo: Resources.StrStateCheckAttachments, - productionProcessNo:13, - nextStateOnSuccess: ProcessState.ExecVisualInspection), + productionProcess: new CheckAttachments(Resources.StrStateCheckAttachments), + processState: ProcessState.CheckAttachments, + processInfo: Resources.StrStateCheckAttachments, + productionProcessNo: 13, + nextStateOnSuccess: ProcessState.ExecVisualInspection), // Precondition: - All checks have to be executed with positive result new ProcessStateStruct( - productionProcess: new VisualInspection(Resources.StrStateVisualInspection), - processState: ProcessState.ExecVisualInspection, - processInfo: Resources.StrStateVisualInspection, - productionProcessNo:14, - nextStateOnSuccess: ProcessState.PrepareShippingMode), + productionProcess: new VisualInspection(Resources.StrStateVisualInspection), + processState: ProcessState.ExecVisualInspection, + processInfo: Resources.StrStateVisualInspection, + productionProcessNo: 14, + nextStateOnSuccess: ProcessState.PrepareShippingMode), // Precondition: - All checks have to be executed with positive result new ProcessStateStruct( - productionProcess: new PrepareShipping(Resources.StrStatePrepareShipping), - processState: ProcessState.PrepareShippingMode, - processInfo: Resources.StrStatePrepareShipping, - productionProcessNo:15, - nextStateOnSuccess: ProcessState.ReadyForShipping), + productionProcess: new PrepareShipping(Resources.StrStatePrepareShipping), + processState: ProcessState.PrepareShippingMode, + processInfo: Resources.StrStatePrepareShipping, + productionProcessNo: 15, + nextStateOnSuccess: ProcessState.ReadyForShipping), new ProcessStateStruct( - productionProcess: null, - processState:ProcessState.ReadyForShipping, - processInfo:Resources.StrStateReadyForShipping, - productionProcessNo:null, - nextStateOnSuccess:ProcessState.Idle), + productionProcess: null, + processState: ProcessState.ReadyForShipping, + processInfo: Resources.StrStateReadyForShipping, + productionProcessNo: null, + nextStateOnSuccess: ProcessState.Idle), #endregion -------------------------------- EOL-STATES ------------------------------------------------ }; diff --git a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/PickingProcessStatesDef.cs b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/PickingProcessStatesDef.cs index d0adec0d..2e124893 100644 --- a/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/PickingProcessStatesDef.cs +++ b/Common/Production/ProductionUiCordonel/ProductionProcesses/PickingProcesses/PickingProcessStatesDef.cs @@ -122,7 +122,9 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki processState: ProcessState.CheckNewMeter, processInfo: Resources.StrProcessStateCheckNewMeter, productionProcessNo: null, + // Repeat detect as a new meter has been connected nextStateOnSuccess: ProcessState.DetectCordonel, + // Used to go ahead as new meter returns "false" meaning error state errorExitState: ProcessState.ConnectCordonel), // Precondition: - The detection process has to be completed as the PcbId is needed. @@ -149,11 +151,11 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki // This scans the order number, it has to be executed exclusively with automatic new ProcessStateStruct( - productionProcess: new CheckOrderNumber(Resources.StrStateCheckOrderNumber), - processState: ProcessState.CheckOrderNumber, - processInfo: Resources.StrStateCheckOrderNumber, - productionProcessNo:3, - nextStateOnSuccess: ProcessState.CheckProductionState), + productionProcess: new CheckOrderNumber(Resources.StrStateCheckOrderNumber), + processState: ProcessState.CheckOrderNumber, + processInfo: Resources.StrStateCheckOrderNumber, + productionProcessNo: 3, + nextStateOnSuccess: ProcessState.CheckProductionState), #endregion -------------------------------- GENERIC-STATES -------------------------------------------- @@ -162,11 +164,11 @@ namespace Xylem.Common.Production.ProductionUiCordonel.ProductionProcesses.Picki // values from the Cordonel are needed to check the update capability: // - Wait on completed connection process before starting this process. new ProcessStateStruct( - productionProcess: new CheckProductionState(Resources.StrStateCheckProductionState), - processState: ProcessState.CheckProductionState, - processInfo: Resources.StrStateCheckProductionState, + productionProcess: new CheckProductionState(Resources.StrStateCheckProductionState), + processState: ProcessState.CheckProductionState, + processInfo: Resources.StrStateCheckProductionState, productionProcessNo: 4, - nextStateOnSuccess: ProcessState.Idle), + nextStateOnSuccess: ProcessState.Idle), //TODO Roland: implement your states here #endregion -------------------------------- PICKING-STATES -------------------------------------------- diff --git a/Common/Production/ProductionUiCordonel/ProductionUiCordonel.csproj b/Common/Production/ProductionUiCordonel/ProductionUiCordonel.csproj index aacaff13..4ab773c3 100644 --- a/Common/Production/ProductionUiCordonel/ProductionUiCordonel.csproj +++ b/Common/Production/ProductionUiCordonel/ProductionUiCordonel.csproj @@ -592,9 +592,7 @@ Always - - - +