System.IO.BACnet.BacnetMstpProtocolTransport.PassToken C# (CSharp) Method

PassToken() private method

private PassToken ( ) : StateChanges
return StateChanges
        private StateChanges PassToken()
        {
            BacnetMstpFrameTypes frame_type;
            byte destination_address;
            byte source_address;
            int msg_length;

            for (int i = 0; i <= m_retry_token; i++)
            {
                //send
                SendFrame(BacnetMstpFrameTypes.FRAME_TYPE_TOKEN, m_NS);

                //wait for it to be used
                GetMessageStatus status = GetNextMessage(T_USAGE_TIMEOUT, out frame_type, out destination_address, out source_address, out msg_length);
                if (status == GetMessageStatus.Good || status == GetMessageStatus.DecodeError)
                    return StateChanges.SawTokenUser;   //don't remove current message
            }

            //give up
            m_PS = (byte)((m_NS + 1) % (m_max_master + 1));
            m_NS = (byte)m_TS;
            m_token_count = 0;
            return StateChanges.FindNewSuccessor;
        }