private StateChanges UseToken()
{
if (m_send_queue.Count == 0)
{
/* NothingToSend */
m_frame_count = m_max_info_frames;
return StateChanges.NothingToSend;
}
else
{
/* SendNoWait / SendAndWait */
MessageFrame message_frame = m_send_queue.First.Value;
m_send_queue.RemoveFirst();
SendFrame(message_frame);
m_frame_count++;
if (message_frame.frame_type == BacnetMstpFrameTypes.FRAME_TYPE_BACNET_DATA_EXPECTING_REPLY || message_frame.frame_type == BacnetMstpFrameTypes.FRAME_TYPE_TEST_REQUEST)
return StateChanges.SendAndWait;
else
return StateChanges.SendNoWait;
}
}