示例#1
0
        public void ThreadProc()
        {
            DataStructure data;

            System.Net.EndPoint remoteEP;
            DateTime            dt = DateTime.Now;

            byte[] byData = new byte[300];
            int    iLen;

            while (!m_bStreamThreadStop)
            {
                try
                {
                    Thread.Sleep(500);
                    dt = DateTime.Now;
                    if (udpStream.DataArrive(100))
                    {
                        if (udpStream.RecvUDP(out remoteEP, byData, out iLen))
                        {
                            AddListBoxItem("********** Data received from " + remoteEP.ToString() + " , At " + dt.Hour.ToString() + ":" + dt.Minute.ToString() + ":" + dt.Second.ToString() + " **********");
                            data = new DataStructure();
                            data.SetData(byData, iLen);
                            DisplayInform(data);
                            data = null;
                        }
                        else
                        {
                            AddListBoxItem("Failed to received");
                        }
                    }
                }
                catch (ObjectDisposedException)
                {
                    this.m_bStreamThreadTerminate = true;
                    break;
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message);
                    this.m_bStreamThreadTerminate = true;
                    break;
                }
            }

            this.m_bStreamThreadTerminate = true;
        }
示例#2
0
        private void timer1_Tick(object sender, EventArgs e)
        {
            EndPoint remoteEP;
            int      iUDPRecv, iUDPSend;

            byte[] byUDPSend;
            string szUDPRecv, szComRecv;

            timer1.Enabled = false;

            if (m_SvrStream.DataArrive(10))
            {
                if (m_SvrStream.RecvUDP(out remoteEP, m_byUDPRecv, out iUDPRecv))
                {
                    m_UDPRecv++;
                    textBoxUDPRecv.Text = m_UDPRecv.ToString();
                    szUDPRecv           = Encoding.ASCII.GetString(m_byUDPRecv, 0, iUDPRecv);
                    // pass command to COM port
                    m_SerialSent++;
                    textBoxSerialSent.Text = m_SerialSent.ToString();
                    if (m_com.AdamTransaction(szUDPRecv, out szComRecv))
                    {
                        m_SerialRecv++;
                        textBoxSerialRecv.Text = m_SerialSent.ToString();
                        byUDPSend = Encoding.ASCII.GetBytes(szComRecv);
                        iUDPSend  = byUDPSend.Length;
                        if (m_SvrStream.SendUDP(ref remoteEP, byUDPSend, iUDPSend))
                        {
                            m_UDPSent++;
                            textBoxUDPSent.Text = m_UDPSent.ToString();
                        }
                    }
                }
            }
            timer1.Enabled = true;
        }