Пример #1
0
        public void ReceivedEvent_CharsEof_ReadAllChars()
        {
            using (SerialPort com1 = new SerialPort(TCSupport.LocalMachineSerialInfo.FirstAvailablePortName))
                using (SerialPort com2 = new SerialPort(TCSupport.LocalMachineSerialInfo.SecondAvailablePortName))
                {
                    ReadInReceivedEventHandler rcvEventHandler = new ReadInReceivedEventHandler(com1);
                    byte[] xmitBytes = new byte[3];

                    Debug.WriteLine(
                        "Verifying EofReceived and ReceivedChars events where all chars are read in the ReceivedChars event");

                    com1.Open();
                    com2.Open();
                    com1.DataReceived += rcvEventHandler.HandleEvent;

                    //EOF char
                    xmitBytes[0] = 56;
                    xmitBytes[1] = 26;
                    xmitBytes[2] = 55;

                    for (int i = 0; i < NUM_TRYS; i++)
                    {
                        com2.Write(xmitBytes, 0, xmitBytes.Length);
                        rcvEventHandler.WaitForEvent(MAX_TIME_WAIT, SerialData.Eof);

                        rcvEventHandler.Validate(SerialData.Eof, 0);

                        rcvEventHandler.Validate(SerialData.Chars, 1);

                        if (0 != rcvEventHandler.NumberOfOccurrencesOfType(SerialData.Eof))
                        {
                            Fail("Err_20712asdfhow!!! Unexpected EofReceived event fired {0} iteration:{1}",
                                 rcvEventHandler.NumberOfOccurrencesOfType(SerialData.Eof), i);
                        }

                        rcvEventHandler.Clear();
                    }

                    if (rcvEventHandler.NumBytesRead != NUM_TRYS * xmitBytes.Length)
                    {
                        Fail("Err_1298129ahnied!!! Expected to read {0} chars actually read {1}",
                             NUM_TRYS * xmitBytes.Length, rcvEventHandler.NumBytesRead);
                    }
                    else
                    {
                        for (int i = 0; i < NUM_TRYS; ++i)
                        {
                            for (int j = 0; j < xmitBytes.Length; ++j)
                            {
                                if (xmitBytes[j] != rcvEventHandler.BytesRead[(i * xmitBytes.Length) + j])
                                {
                                    Fail("Err_2829aneid Expected to Read '{0}'({0:X}) actually read {1}'({1:X})",
                                         xmitBytes[j], rcvEventHandler.BytesRead[(i * xmitBytes.Length) + j]);
                                }
                            }
                        }
                    }
                }
        }
Пример #2
0
    public bool ReceivedEvent_CharsEof_ReadAllChars()
    {
        SerialPort com1 = new SerialPort(TCSupport.LocalMachineSerialInfo.FirstAvailablePortName);
        SerialPort com2 = new SerialPort(TCSupport.LocalMachineSerialInfo.SecondAvailablePortName);
        ReadInReceivedEventHandler rcvEventHandler = new ReadInReceivedEventHandler(com1);
        bool retValue = true;

        byte[] xmitBytes = new byte[3];

        Console.WriteLine("Verifying EofReceived and ReceivedChars events where all chars are read in the ReceivedChars event");

        com1.Open();
        com2.Open();
        com1.DataReceived += new SerialDataReceivedEventHandler(rcvEventHandler.HandleEvent);

        //EOF char
        xmitBytes[0] = 56;
        xmitBytes[1] = 26;
        xmitBytes[2] = 55;

        for (int i = 0; i < NUM_TRYS; i++)
        {
            com2.Write(xmitBytes, 0, xmitBytes.Length);
            rcvEventHandler.WaitForEvent(MAX_TIME_WAIT, SerialData.Eof);

            if (!rcvEventHandler.Validate(SerialData.Eof, 0))
            {
                Console.WriteLine("Err_09727ahsp!!!EOF Event not fired {0}", i);
                retValue = false;
            }

            if (!rcvEventHandler.Validate(SerialData.Chars, 1))
            {
                Console.WriteLine("Err_27928adshs !!!ReceivedChars Event not fired {0}", i);
                retValue = false;
            }

            if (0 != rcvEventHandler.NumberOfOccurencesOfType(SerialData.Eof))
            {
                Console.WriteLine("Err_20712asdfhow!!! Unexpected EofReceived event fired {0} iteration:{1}",
                                  rcvEventHandler.NumberOfOccurencesOfType(SerialData.Eof), i);
                retValue = false;
            }

            rcvEventHandler.Clear();
        }

        if (rcvEventHandler.NumBytesRead != NUM_TRYS * xmitBytes.Length)
        {
            Console.WriteLine("Err_1298129ahnied!!! Expected to read {0} chars actually read {1}",
                              NUM_TRYS * xmitBytes.Length, rcvEventHandler.NumBytesRead);
            retValue = false;
        }
        else
        {
            for (int i = 0; i < NUM_TRYS; ++i)
            {
                for (int j = 0; j < xmitBytes.Length; ++j)
                {
                    if (xmitBytes[j] != rcvEventHandler.BytesRead[(i * xmitBytes.Length) + j])
                    {
                        Console.WriteLine("Err_2829aneid Expected to Read '{0}'({0:X}) actually read {1}'({1:X})",
                                          xmitBytes[j], rcvEventHandler.BytesRead[(i * xmitBytes.Length) + j]);
                        retValue = false;
                    }
                }
            }
        }

        if (!retValue)
        {
            Console.WriteLine("Err_3468eadhs!!! Verifying CharsReceived and EofReceived event FAILED");
        }

        if (com1.IsOpen)
        {
            com1.Close();
        }

        if (com2.IsOpen)
        {
            com2.Close();
        }

        return(retValue);
    }