Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Com порт. Как обойти задержку при чтении из порта.


Автор: RastaDja 24.2.2011, 14:49
Доброго времени суток!

Вот есть такой код:
Код

public partial class CP : Form
    {
        MSCommClass m_cport;
            
        public CP()
        {    
            m_cport = new MSCommClass();
            m_cport.CommPort = 3;
            m_cport.Settings = "9600,N,8,1";
            m_cport.InputLen = 0;
            m_cport.InputMode = InputModeConstants.comInputModeText;
            m_cport.RThreshold = 1;
            m_cport.PortOpen = true;
            m_cport.OnComm += new DMSCommEvents_OnCommEventHandler(FOnComm); 
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            m_cport.Output = textBox1.Text.ToString();
        }

        public void FOnComm()
        {
            if (m_cport.CommEvent == (short)OnCommConstants.comEvReceive)
            {
                 MessageBox.Show(m_cport.Input.ToString());    //<- 
            }
            
            m_cport.PortOpen = false;
            this.Close();
        }

Задача стоит в том, чтоб показать MessageBox() и закрыть окно.
Вот только порт не успевает передать все данные. Как узнать получил я все из m_cport.Input или ещё не пришли все данные?

Спассибо

Автор: -Mikle- 24.2.2011, 21:33
Цитата(RastaDja @  24.2.2011,  17:49 Найти цитируемый пост)
Как узнать получил я все из m_cport.Input или ещё не пришли все данные

А как устройство, которое в этот ком-порт передает, оповещает что оно закончило передавать данные?

Автор: RastaDja 25.2.2011, 11:19
-Mikle-, извиняюсь, это я протупил, (я просто учусь пока,) и у меня тестовое устройство с закороченым выходом на вход. Вот поэтому данные приходят сразу после отправки. Если будут проблемы я отпишусь, ато кто его сзнает  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)