System.IO.BACnet.BacnetMstpProtocolTransport.mstp_thread C# (CSharp) Méthode

mstp_thread() private méthode

private mstp_thread ( ) : void
Résultat void
        private void mstp_thread()
        {
            try
            {
                StateChanges state_change = StateChanges.Reset;

                while (m_port != null)
                {
                    if (StateLogging) Trace.WriteLine(state_change.ToString(), null);
                    switch (state_change)
                    {
                        case StateChanges.Reset:
                            state_change = Initialize();
                            break;
                        case StateChanges.DoneInitializing:
                        case StateChanges.ReceivedUnexpectedFrame:
                        case StateChanges.Reply:
                        case StateChanges.DeferredReply:
                        case StateChanges.SawTokenUser:
                            state_change = Idle();
                            break;
                        case StateChanges.GenerateToken:
                        case StateChanges.FindNewSuccessor:
                        case StateChanges.SendMaintenancePFM:
                        case StateChanges.SoleMasterRestartMaintenancePFM:
                        case StateChanges.NextStationUnknown:
                            state_change = PollForMaster();
                            break;
                        case StateChanges.DoneWithPFM:
                        case StateChanges.ResetMaintenancePFM:
                        case StateChanges.ReceivedReplyToPFM:
                        case StateChanges.SendToken:
                            state_change = PassToken();
                            break;
                        case StateChanges.ReceivedDataNeedingReply:
                            state_change = AnswerDataRequest();
                            break;
                        case StateChanges.ReceivedToken:
                        case StateChanges.SoleMaster:
                        case StateChanges.DeclareSoleMaster:
                        case StateChanges.SendAnotherFrame:
                            state_change = UseToken();
                            break;
                        case StateChanges.NothingToSend:
                        case StateChanges.SendNoWait:
                        case StateChanges.ReplyTimeOut:
                        case StateChanges.InvalidFrame:
                        case StateChanges.ReceivedReply:
                        case StateChanges.ReceivedPostpone:
                            state_change = DoneWithToken();
                            break;
                        case StateChanges.SendAndWait:
                            state_change = WaitForReply();
                            break;
                    }
                }
                Trace.WriteLine("MSTP thread is closing down", null);
            }
            catch (Exception ex)
            {
                Trace.TraceError("Exception in MSTP thread: " + ex.Message);
            }
        }