コード例 #1
0
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(null, 0, message));
     ActionUnits.Add(new DataReceivedUnit(handlerRetFailed, SetStateFailed));
     ActionUnits.Add(new DataReceivedUnit(handlerCallback, OnHandle));
     ActionUnitStop = new ActionUnit(messageStop);
 }
コード例 #2
0
        private ApiHandler handlerFailed;              // code=0x23

        protected override void CreateWorkflow()
        {
            ActionUnits.Add(new StartActionUnit(null, TimeoutMs, messageStart));
            ActionUnits.Add(new DataReceivedUnit(handlerStarted, OnHandlerStarted));
            ActionUnits.Add(new DataReceivedUnit(handlerDone, OnHandlerDone));
            ActionUnits.Add(new DataReceivedUnit(handlerFailed, OnHandlerFailed));
        }
コード例 #3
0
ファイル: ApiAchOperation.cs プロジェクト: jimzrt/hyper
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(null, TimeoutMs));
     ActionUnits.Add(new DataReceivedUnit(_expectReceived, OnHandled));
     ActionUnits.Add(new DataReceivedUnit(_expectPModeReceived, OnPModeHandled));
     ActionUnits.Add(new DataReceivedUnit(_expectBridgeReceived, OnBridgeHandled));
 }
コード例 #4
0
ファイル: ActionSerialGroup.cs プロジェクト: jimzrt/hyper
 protected override void CreateWorkflow()
 {
     if (Actions.Length > 0)
     {
         for (int i = 0; i < Actions.Length + 1; i++)
         {
             if (i == 0)
             {
                 ActionUnits.Add(new StartActionUnit(OnStart, 0, Actions[i]));
             }
             else if (i == Actions.Length)
             {
                 ActionUnits.Add(new ActionCompletedUnit(Actions[i - 1], OnLastCompleted, null));
             }
             else
             {
                 ActionUnits.Add(new ActionCompletedUnit(Actions[i - 1], OnCompleted, Actions[i]));
             }
         }
     }
     else
     {
         ActionUnits.Add(new StartActionUnit(SetStateCompleted, 0));
     }
 }
コード例 #5
0
        protected override void CreateWorkflow()
        {
            if (Mode == LearnModes.LearnModeDisable)
            {
                ActionUnits.Add(new StartActionUnit(SetStateCompleting, TimeoutMs, cmZWaveSetLearnModeStop));
            }
            else
            {
                if ((Mode & LearnModes.LearnModeNWE) == LearnModes.LearnModeNWE)
                {
                    ActionUnits.Add(new StartActionUnit(null, TimeoutMs, cmZWaveSetLearnModeStart, cmZWaveExploreRequestExclusion, new RandomTimeInterval(0, 1000, 3000)));
                    ActionUnits.Add(new TimeElapsedUnit(0, OnTimeElapsed, 0, cmZWaveExploreRequestExclusion, new RandomTimeInterval(0, 1000, 3000)));
                }
                else if ((Mode & LearnModes.LearnModeNWI) == LearnModes.LearnModeNWI)
                {
                    ActionUnits.Add(new StartActionUnit(null, TimeoutMs, cmZWaveSetLearnModeStart, cmZWaveExploreRequestInclusion, new RandomTimeInterval(0, 1000, 3000)));
                    ActionUnits.Add(new TimeElapsedUnit(0, OnTimeElapsed, 0, cmZWaveExploreRequestInclusion, new RandomTimeInterval(0, 1000, 3000)));
                }
                else
                {
                    ActionUnits.Add(new StartActionUnit(null, TimeoutMs, cmZWaveSetLearnModeStart));
                }
                ActionUnits.Add(new DataReceivedUnit(chZWaveSetLearnModeStarted, OnStarted));
                ActionUnits.Add(new DataReceivedUnit(chZWaveSetLearnModeFailed, SetStateFailing, cmZWaveSetLearnModeStop));
                ActionUnits.Add(new DataReceivedUnit(chZWaveSetLearnModeDone, OnDone, cmZWaveSetLearnModeStop));

                ActionUnitStop = new ActionUnit(cmZWaveSetLearnModeStop);
            }
        }
コード例 #6
0
        private ApiHandler handlerNotPrimary;          // code=23


        protected override void CreateWorkflow()
        {
            if ((InitMode & ControllerChangeModes.Start) == ControllerChangeModes.Start)
            {
                ActionUnits.Add(new StartActionUnit(null, TimeoutMs, messageStart));
                ActionUnits.Add(new DataReceivedUnit(handlerLearnReady, OnLearnReady));
                ActionUnits.Add(new DataReceivedUnit(handlerNodeFound, OnNodeFound));
                ActionUnits.Add(new DataReceivedUnit(handlerAddingController, OnAddingController));
                ActionUnits.Add(new DataReceivedUnit(handlerAddingSlave, OnAddingSlave));
                if (IsModeStopEnabled)
                {
                    ActionUnits.Add(new DataReceivedUnit(handlerFailed, OnFailed, messageStopFailed));
                    ActionUnits.Add(new DataReceivedUnit(handlerProtocolDone, OnProtocolDone, messageStop));
                    ActionUnits.Add(new DataReceivedUnit(handlerDone, OnDone, messageStopDone));
                    ActionUnits.Add(new DataReceivedUnit(handlerNotPrimary, OnNotPrimary, messageStopDone));

                    ActionUnitStop = new ActionUnit(messageStopDone);
                }
                else
                {
                    ActionUnits.Add(new DataReceivedUnit(handlerFailed, OnFailed));
                    ActionUnits.Add(new DataReceivedUnit(handlerProtocolDone, OnDone));
                    ActionUnits.Add(new DataReceivedUnit(handlerNotPrimary, OnNotPrimary));
                }
            }
            else
            {
                ActionUnits.Add(new StartActionUnit(SetStateCompleting, 0, messageStopDone));
            }
        }
コード例 #7
0
ファイル: AddNodeS0Operation.cs プロジェクト: jimzrt/hyper
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(OnAddNodeCompleted, 0, requestScheme));
     ActionUnits.Add(new ActionCompletedUnit(requestScheme, OnSchemeReport, expectNetworkKeyVerify, sendNetworkKeySet));
     ActionUnits.Add(new ActionCompletedUnit(sendNetworkKeySet, OnNetworkKeySet));
     ActionUnits.Add(new ActionCompletedUnit(expectNetworkKeyVerify, OnNetworkKeyVerify));
     ActionUnits.Add(new ActionCompletedUnit(requestSchemeInherit, OnSchemeInheritReport));
 }
コード例 #8
0
ファイル: ActionParallelGroup.cs プロジェクト: jimzrt/hyper
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(null, 0, Actions));
     for (int i = 0; i < Actions.Length; i++)
     {
         ActionUnits.Add(new ActionCompletedUnit(Actions[i], OnCompleted));
     }
 }
コード例 #9
0
ファイル: ExpectZWOperation.cs プロジェクト: jimzrt/hyper
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(null, TimeoutMs));
     foreach (var handler in handlers)
     {
         ActionUnits.Add(new DataReceivedUnit(handler, OnReceived));
     }
 }
コード例 #10
0
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(OnSchemeGet, 0));
     ActionUnits.Add(new ActionCompletedUnit(requestNetworkKey, OnNetworkKeySet));
     ActionUnits.Add(new ActionCompletedUnit(requestSchemeInherit, OnSchemeInherit, sendSecureSchemeReport));
     ActionUnits.Add(new ActionCompletedUnit(sendSecureSchemeReport, OnDone));
     ActionUnits.Add(new ActionCompletedUnit(sendNetworkKeyVerify, OnDone));
 }
コード例 #11
0
ファイル: CallbackApiOperation.cs プロジェクト: jimzrt/hyper
 protected override void CreateWorkflow()
 {
     isHandled = false;
     ActionUnits.Add(new StartActionUnit(null, RET_TIMEOUT, Message));
     ActionUnits.Add(new DataReceivedUnit(HandlerFailed, OnFailed));
     ActionUnits.Add(new DataReceivedUnit(HandlerOk, OnHandled, CALLBACK_TIMEOUT));
     ActionUnits.Add(new DataReceivedUnit(CallbackHandler, OnCallback));
 }
コード例 #12
0
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(null, 5000, messageRequest));
     //ActionUnits.Add(new DataReceivedUnit(handlerResponseTrue, null));
     ActionUnits.Add(new DataReceivedUnit(handlerResponseFalse, SetStateFailed));
     //ActionUnits.Add(new DataReceivedUnit(handlerNodeInfoReqDone, null));
     ActionUnits.Add(new DataReceivedUnit(handlerNodeInfoReqFailed, SetStateFailed));
     ActionUnits.Add(new DataReceivedUnit(handlerNodeInfoReceived, SetStateCompleted));
 }
コード例 #13
0
        private ApiHandler handlerLostAccept;              // code=5

        protected override void CreateWorkflow()
        {
            ActionUnits.Add(new StartActionUnit(null, 30000, messageStart));
            //ActionUnits.Add(new DataReceivedUnit(handlerRetValTrue, null));
            ActionUnits.Add(new DataReceivedUnit(handlerRetValFalse, SetStateFailed));
            //ActionUnits.Add(new DataReceivedUnit(handlerLostAccept, null));
            ActionUnits.Add(new DataReceivedUnit(handlerLostFailed, SetStateFailed));
            ActionUnits.Add(new DataReceivedUnit(handlerUpdateDone, SetStateCompleted));
            ActionUnits.Add(new DataReceivedUnit(handlerUpdateAbort, SetStateCompleted));
        }
コード例 #14
0
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(OnStart, 0));
     ActionUnits.Add(new ActionCompletedUnit(_learnMode, null, _memoryGetId));
     ActionUnits.Add(new ActionCompletedUnit(_memoryGetId, OnMemoryGetIdCompleted, _serialApiGetInitData));
     ActionUnits.Add(new ActionCompletedUnit(_serialApiGetInitData, OnLearnModeCompleted));
     ActionUnits.Add(new ActionCompletedUnit(_expectSchemeGet, OnExpectSchemeGetCompleted));
     ActionUnits.Add(new ActionCompletedUnit(_expectKexGet, OnExpectKexGetCompleted));
     ActionUnits.Add(new ActionCompletedUnit(_learnModeS0, OnLearnModeS0Completed));
     ActionUnits.Add(new ActionCompletedUnit(_learnModeS2, OnLearnModeS2Completed));
 }
コード例 #15
0
ファイル: SetSmartStartAction.cs プロジェクト: jimzrt/hyper
 protected override void CreateWorkflow()
 {
     if (_isStart)
     {
         ActionUnits.Add(new StartActionUnit(null, 0, _messageStart, new TimeInterval(0, 500)));
     }
     else
     {
         ActionUnits.Add(new StartActionUnit(null, 0, _messageStop, new TimeInterval(0, 500)));
     }
     ActionUnits.Add(new TimeElapsedUnit(0, SetStateCompleted, 0));
 }
コード例 #16
0
 protected override void CreateWorkflow()
 {
     if (CmdClass == 0)
     {
         ActionUnits.Add(new StartActionUnit(null, 0, sendFirst));
         ActionUnits.Add(sendCompleted);
     }
     else
     {
         ActionUnits.Add(new StartActionUnit(null, 0, requestFirst));
         ActionUnits.Add(requestCompleted);
     }
 }
コード例 #17
0
ファイル: NoiseDataOperation.cs プロジェクト: jimzrt/hyper
 protected override void CreateWorkflow()
 {
     if (CmdClass == 0)
     {
         ActionUnits.Add(new StartActionUnit(null, 0, sendData));
         ActionUnits.Add(new ActionCompletedUnit(sendData, OnSendCompleted, sendData));
     }
     else
     {
         ActionUnits.Add(new StartActionUnit(null, 0, requestData));
         ActionUnits.Add(new ActionCompletedUnit(requestData, OnRequestCompleted, requestData));
     }
 }
コード例 #18
0
 protected override void CreateWorkflow()
 {
     if (SrcNodeId == 0)
     {
         ActionUnits.Add(new StartActionUnit(OnStart, _timeoutMs, ExpectData, _sendData));
         ActionUnits.Add(new ActionCompletedUnit(_sendData, OnSendDataComleted));
     }
     else
     {
         ActionUnits.Add(new StartActionUnit(OnStart, _timeoutMs, ExpectData, _sendDataBridge));
         ActionUnits.Add(new ActionCompletedUnit(_sendDataBridge, OnSendDataComleted));
     }
     ActionUnits.Add(new ActionCompletedUnit(ExpectData, OnExpectDataComleted));
 }
コード例 #19
0
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(OnKEXGet, 0, _KEXReportKEXSet, _KexFailReceived, _SecurityMessageReceived));
     ActionUnits.Add(new ActionCompletedUnit(_KEXReportKEXSet, OnKEXSet, _PKReportPKReport));
     ActionUnits.Add(new ActionCompletedUnit(_PKReportPKReport, OnPKReport, _KEXSetEchoKEXReportEcho));
     ActionUnits.Add(new ActionCompletedUnit(_KEXSetEchoKEXReportEcho, OnKEXReportEcho));
     ActionUnits.Add(new ActionCompletedUnit(_NKGetNKReport, OnNKReport, _NKVerifyTransferEnd));
     ActionUnits.Add(new ActionCompletedUnit(_NKVerifyTransferEnd, OnTransferEnd));
     ActionUnits.Add(new ActionCompletedUnit(_TransferEnd, OnSendTransferEnd));
     ActionUnits.Add(new ActionCompletedUnit(_KexFail, OnKexFail));
     ActionUnits.Add(new ActionCompletedUnit(_KexFailReceived, OnKexFailReceived));
     ActionUnits.Add(new ActionCompletedUnit(_SecurityMessageReceived, OnSecurityMessageReceived));
     ActionUnitStop = new ActionUnit(_KexFailCancel);
 }
コード例 #20
0
        protected override void CreateWorkflow()
        {
            ActionUnits.Add(new StartActionUnit(null, 30000, messageStart));
            ActionUnits.Add(new DataReceivedUnit(handlerRemoveStarted, OnRetValue));
            ActionUnits.Add(new DataReceivedUnit(handlerNotPrimary, OnRetValue));
            ActionUnits.Add(new DataReceivedUnit(handlerNoCallback, OnRetValue));
            ActionUnits.Add(new DataReceivedUnit(handlerNotFound, OnRetValue));
            ActionUnits.Add(new DataReceivedUnit(handlerRemoveBusy, OnRetValue));
            ActionUnits.Add(new DataReceivedUnit(handlerRemoveFail, OnRetValue));

            ActionUnits.Add(new DataReceivedUnit(handlerNodeOk, OnCallback));
            ActionUnits.Add(new DataReceivedUnit(handlerRemoved, OnCallback));
            ActionUnits.Add(new DataReceivedUnit(handlerNotRemoved, OnCallback));
        }
コード例 #21
0
 protected override void CreateWorkflow()
 {
     if (_isNoDelay)
     {
         ActionUnits.Add(new StartActionUnit(null, 0, message));
         ActionUnits.Add(new DataReceivedUnit(handler, OnReceived));
     }
     else
     {
         ActionUnits.Add(new StartActionUnit(null, _iterationDelay * _maxAttempts + _startDelay + 1000, new TimeInterval(0, _startDelay)));
         ActionUnits.Add(new TimeElapsedUnit(0, null, _iterationDelay * _maxAttempts + 1000, message));
         ActionUnits.Add(new DataReceivedUnit(handler, OnReceived, new TimeInterval(1, _iterationDelay)));
         ActionUnits.Add(new TimeElapsedUnit(1, null, 0, message));
     }
 }
コード例 #22
0
        public virtual void NewToken(bool isNextId)
        {
            if (isNextId)
            {
                var newId = NextId();
                "{0}->{1}"._DLOG(Id, newId);
                Id = newId;
            }
            var oldTimeout = Token.TimeoutMs;

            Token           = new ActionToken(GetType(), Id, oldTimeout, CreateOperationResult());
            Token.TimeoutMs = oldTimeout;
            Token.Name      = Name;
            ActionUnits.Clear();
            CompletedCallback = null;
        }
コード例 #23
0
        internal ActionHandlerResult TryHandle(IActionCase actionCase)
        {
            ActionHandlerResult ret = null;

            if (Token.IsStateActive)
            {
                if (ActionUnits.Count > 0)
                {
                    ActionUnit ou = ActionUnits.FirstOrDefault(x => x.TryHandle(actionCase));
                    ret = Handle(ou);
                    if (ou != null && ou.TimeoutMs > 0)
                    {
                        Token.Reset(ou.TimeoutMs);
                    }
                }
            }
            return(ret);
        }
コード例 #24
0
        internal ActionHandlerResult Start()
        {
            ActionHandlerResult ret = null;

            Token.Name = Name;
            CreateInstance();
            CreateWorkflow();
            Token.SetRunning();
            if (ActionUnits.Count > 0)
            {
                ActionUnit ou = ActionUnits.FirstOrDefault(x => x is StartActionUnit);
                ret = Handle(ou);
                if (ou != null)
                {
                    Token.Reset(ou.TimeoutMs);
                }
            }
            return(ret);
        }
コード例 #25
0
        protected override void CreateWorkflow()
        {
            if (Mode == LearnModes.LearnModeDisable)
            {
                ActionUnits.Add(new StartActionUnit(SetStateCompleting, TimeoutMs, _setLearnModeStop));
            }
            else
            {
                if ((Mode & LearnModes.LearnModeNWE) == LearnModes.LearnModeNWE)
                {
                    ActionUnits.Add(new StartActionUnit(null, TimeoutMs, _setLearnModeStart, _sendNodeInfo, _exploreRequestExclusion, new RandomTimeInterval(0, 1000, 3000)));
                    ActionUnits.Add(new TimeElapsedUnit(0, null, 0, _exploreRequestExclusion, new RandomTimeInterval(0, 1000, 3000)));
                }
                else if ((Mode & LearnModes.LearnModeNWI) == LearnModes.LearnModeNWI)
                {
                    ActionUnits.Add(new StartActionUnit(null, TimeoutMs, _setLearnModeStart, _sendNodeInfo, _exploreRequestInclusion, new RandomTimeInterval(0, 1000, 3000)));
                    ActionUnits.Add(new TimeElapsedUnit(0, null, 0, _exploreRequestInclusion, new RandomTimeInterval(0, 1000, 3000)));
                }
                else if ((Mode & (LearnModes.LearnModeSmartStart | LearnModes.NetworkMask)) == (LearnModes.LearnModeSmartStart | LearnModes.NetworkMask))
                {
                    ActionUnits.Add(new StartActionUnit(null, TimeoutMs, _setLearnModeStart));
                }
                else if ((Mode & LearnModes.LearnModeSmartStart) == LearnModes.LearnModeSmartStart)
                {
                    ActionUnits.Add(new StartActionUnit(null, TimeoutMs, _setLearnModeStart, _exploreRequestInclusion, new RandomTimeInterval(0, 2000, 4000)));
                    ActionUnits.Add(new TimeElapsedUnit(0, null, 0, _exploreRequestInclusion, new RandomTimeInterval(0, 2000, 4000)));
                }
                else
                {
                    ActionUnits.Add(new StartActionUnit(null, TimeoutMs, _setLearnModeStart, new RandomTimeInterval(0, 500, 1000)));
                    ActionUnits.Add(new TimeElapsedUnit(0, null, 0, _sendNodeInfo));
                }
                ActionUnits.Add(new DataReceivedUnit(_learnReady, OnLearnReady));
                ActionUnits.Add(new DataReceivedUnit(_assignNodeIdDone, OnNodeIdDone));
                ActionUnits.Add(new DataReceivedUnit(_assignComplete, OnAssignComplete, _setLearnModeStop, _stopDelay));
                ActionUnits.Add(new TimeElapsedUnit(22, SetStateCompleted, 0, null));
                ActionUnits.Add(new DataReceivedUnit(_assignRangeInfoUpdate, OnRangeInfoUpdate));

                ActionUnitStop = new ActionUnit(_setLearnModeStop);
            }
        }
コード例 #26
0
ファイル: SendDataTransportTask.cs プロジェクト: jimzrt/hyper
 protected override void CreateWorkflow()
 {
     ActionUnits.Add(new StartActionUnit(null, 0, new ActionBase[] { _segmentRequestResponse, _waitSegmentResponse, _firstSegmentSendOperation }));
     ActionUnits.Add(new ActionCompletedUnit(_firstSegmentSendOperation, OnFirstSegment, _nextSegmentSendOperation)
     {
         Name = "_firstSegmentSendOperation"
     });
     _sendNextSegmentCompletedUnit = new ActionCompletedUnit(_nextSegmentSendOperation, OnSendNextSegment, _nextSegmentSendOperation)
     {
         Name = "_nextSegmentSendOperation"
     };
     ActionUnits.Add(_sendNextSegmentCompletedUnit);
     ActionUnits.Add(new ActionCompletedUnit(_segmentCompleteExpect, OnSegmentComplete)
     {
         Name = "_segmentCompleteExpect"
     });
     ActionUnits.Add(new TimeElapsedUnit(Id, OnTimeElapsed, 0)
     {
         Name = "_timeElapsed"
     });
 }
コード例 #27
0
        private ApiHandler handlerNotPrimary;                // code=23


        protected override void CreateWorkflow()
        {
            if (mInitMode != Modes.NodeStop)
            {
                //UniqueCategory = "AddingRemovingNode";
                ActionUnits.Add(new StartActionUnit(OnStart, TimeoutMs, messageStart));
                ActionUnits.Add(new DataReceivedUnit(handlerLearnReady, OnLearnReady));
                ActionUnits.Add(new DataReceivedUnit(handlerFailed, OnFailed, messageStopDone));
                ActionUnits.Add(new DataReceivedUnit(handlerNodeFound, OnNodeFound));
                ActionUnits.Add(new DataReceivedUnit(handlerRemovingSlave, OnRemovingSlave));
                ActionUnits.Add(new DataReceivedUnit(handlerRemovingController, OnRemovingController));
                ActionUnits.Add(new DataReceivedUnit(handlerDone, OnDone, messageStopDone));
                ActionUnits.Add(new DataReceivedUnit(handlerNotPrimary, OnNotPrimary));

                ActionUnitStop = new ActionUnit(messageStop);
            }
            else
            {
                ActionUnits.Add(new StartActionUnit(null, 0, messageStop));
                ActionUnits.Add(new DataReceivedUnit(handlerDone, OnDone, messageStopDone));
            }
        }
コード例 #28
0
 protected override void CreateWorkflow()
 {
     if (Mode == SlaveLearnModes.VirtualSlaveLearnModeAdd || Mode == SlaveLearnModes.VirtualSlaveLearnModeRemove)
     {
         ActionUnits.Add(new StartActionUnit(OnStart, 5000, cmStart));
         ActionUnits.Add(new DataReceivedUnit(chOk, null, TimeoutMs));
         ActionUnits.Add(new DataReceivedUnit(chFailed, SetStateFailed));
         ActionUnits.Add(new DataReceivedUnit(chAssignNodeIdDone, OnAssignNodeIdDone));
     }
     else if (Mode == SlaveLearnModes.VirtualSlaveLearnModeDisable)
     {
         ActionUnits.Add(new StartActionUnit(null, 5000, cmStop));
         ActionUnits.Add(new DataReceivedUnit(chOk, SetStateCompleted));
         ActionUnits.Add(new DataReceivedUnit(chFailed, SetStateFailed));
     }
     else
     {
         ActionUnits.Add(new StartActionUnit(OnStart, 5000, cmStart));
         ActionUnits.Add(new DataReceivedUnit(chOk, null, TimeoutMs, cmSlaveNodeInfo));
         ActionUnits.Add(new DataReceivedUnit(chFailed, SetStateFailed));
         ActionUnits.Add(new DataReceivedUnit(chAssignComplete, OnAssignComplete));
         ActionUnits.Add(new DataReceivedUnit(chAssignNodeIdDone, OnAssignNodeIdDone));
     }
 }
コード例 #29
0
        private ApiHandler handlerNotPrimary;          // code=23


        protected override void CreateWorkflow()
        {
            if (InitMode == CreatePrimaryModes.Start)
            {
                ActionUnits.Add(new StartActionUnit(null, TimeoutMs, messageStart));
                ActionUnits.Add(new DataReceivedUnit(handlerLearnReady, OnLearnReady));
                ActionUnits.Add(new DataReceivedUnit(handlerFailed, OnFailed, messageStopFailed));
                ActionUnits.Add(new DataReceivedUnit(handlerNodeFound, OnNodeFound));
                ActionUnits.Add(new DataReceivedUnit(handlerAddingController, OnAddingController));
                ActionUnits.Add(new DataReceivedUnit(handlerAddingSlave, OnAddingSlave));
                ActionUnits.Add(new DataReceivedUnit(handlerProtocolDone, OnProtocolDone, messageStop));
                ActionUnits.Add(new DataReceivedUnit(handlerDone, OnDone));
                ActionUnits.Add(new DataReceivedUnit(handlerNotPrimary, OnNotPrimary));
            }
            else if (InitMode == CreatePrimaryModes.Stop)
            {
                ActionUnits.Add(new StartActionUnit(null, 0, messageStop));
                ActionUnits.Add(new DataReceivedUnit(handlerDone, OnDone));
            }
            else
            {
                base.SetStateCompleted(null);
            }
        }
コード例 #30
0
        protected override void CreateWorkflow()
        {
            if (_securityManagerInfo.TestFirstFragmentedPartDisabled)
            {
                ActionUnits.Add(new StartActionUnit(OnStart, 0, requestNonce));
                ActionUnits.Add(new ActionCompletedUnit(requestNonce, OnNonceReportSecond, sendSecondEncData));
                ActionUnits.Add(new ActionCompletedUnit(sendSecondEncData, OnSendCompleted));
            }
            else
            {
                ActionUnits.Add(new StartActionUnit(OnStart, 0, requestNonce));
                ActionUnits.Add(new ActionCompletedUnit(requestNonce, OnNonceReport, sendFirstEncData));

                if (_securityManagerInfo.TestSecondFragmentedPartDisabled)
                {
                    ActionUnits.Add(new ActionCompletedUnit(sendFirstEncData, OnSendOnlyFirstCompleted));
                }
                else
                {
                    ActionUnits.Add(new ActionCompletedUnit(sendFirstEncData, OnRequestFirstEncData, sendSecondEncData));
                    ActionUnits.Add(new ActionCompletedUnit(sendSecondEncData, OnSendCompleted));
                }
            }
        }