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

DoneWithToken() private méthode

private DoneWithToken ( ) : StateChanges
Résultat StateChanges
        private StateChanges DoneWithToken()
        {
            if (m_frame_count < m_max_info_frames)
            {
                /* SendAnotherFrame */
                return StateChanges.SendAnotherFrame;
            }
            else if (!m_sole_master && m_NS == m_TS)
            {
                /* NextStationUnknown */
                m_PS = (byte)((m_TS + 1) % (m_max_master + 1));
                return StateChanges.NextStationUnknown;
            }
            else if (m_token_count < (m_max_poll - 1))
            {
                m_token_count++;
                if (m_sole_master && m_NS != ((m_TS+1)%(m_max_master+1)))
                {
                    /* SoleMaster */
                    m_frame_count = 0;
                    return StateChanges.SoleMaster;
                }
                else
                {
                    /* SendToken */
                    return StateChanges.SendToken;
                }
            }
            else if ((m_PS + 1) % (m_max_master + 1) == m_NS)
            {
                if (!m_sole_master)
                {
                    /* ResetMaintenancePFM */
                    m_PS = (byte)m_TS;
                    m_token_count = 1;
                    return StateChanges.ResetMaintenancePFM;
                }
                else
                {
                    /* SoleMasterRestartMaintenancePFM */
                    m_PS = (byte)((m_NS + 1) % (m_max_master + 1));
                    m_NS = (byte)m_TS;
                    m_token_count = 1;
                    return StateChanges.SoleMasterRestartMaintenancePFM;
                }
            }
            else
            {
                /* SendMaintenancePFM */
                m_PS = (byte)((m_PS + 1) % (m_max_master + 1));
                return StateChanges.SendMaintenancePFM;
            }
        }