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]); } } } } } }
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); }