public void SendReceiptToSecondSt(Object obj) { Stopwatch framesReceptionWatch = new Stopwatch(); _postReceipt = (FirstStPostToSecondStWt)obj; _sentReceipt = new BitArray(1); framesReceptionWatch.Start(); _signalFromFirstBuffer.WaitOne(); framesReceptionWatch.Stop(); TimeSpan framesReceptionTime = framesReceptionWatch.Elapsed; if (framesReceptionTime.Milliseconds > 40) { _sentReceipt[0] = false; ConsoleHelper.WriteToConsole("станция 1", "Данные не получены"); } else { _sentReceipt[0] = true; for (int i = 0; i < _receivedFrames.Length; i++) { if (ValidData(_receivedFrames[i]) == true) { ConsoleHelper.WriteToConsoleArray("станция 1 полученный кадр №" + FrameHelper.getIntFromBitArray(FrameHelper.GetBinaryFrameNumber(_receivedFrames[i])), FrameHelper.GetFrameData(_receivedFrames[i])); } else { ConsoleHelper.WriteToConsole("станция 1 полученный кадр №" + FrameHelper.getIntFromBitArray(FrameHelper.GetBinaryFrameNumber(_receivedFrames[i])), "данные повреждены"); } } } _postReceipt(_sentReceipt); ConsoleHelper.WriteToConsole("станция 1", "отправил RR-ответ станции 2"); _signalToSecondSt.Release(); Stopwatch framesReceptionWatch2 = new Stopwatch(); _sentReceipt = new BitArray(1); framesReceptionWatch2.Start(); _signalFromFirstBuffer.WaitOne(); framesReceptionWatch2.Stop(); TimeSpan framesReceptionTime2 = framesReceptionWatch2.Elapsed; if (framesReceptionTime2.Milliseconds > 40) { _sentReceipt[0] = false; ConsoleHelper.WriteToConsole("станция 1", "Данные не получены"); } else { _sentReceipt[0] = true; for (int i = 0; i < _receivedFrames.Length; i++) { if (ValidData(_receivedFrames[i]) == true) { ConsoleHelper.WriteToConsoleArray("станция 1 полученный кадр №" + FrameHelper.getIntFromBitArray(FrameHelper.GetBinaryFrameNumber(_receivedFrames[i])), FrameHelper.GetFrameData(_receivedFrames[i])); } else { ConsoleHelper.WriteToConsole("станция 1 полученный кадр №" + FrameHelper.getIntFromBitArray(FrameHelper.GetBinaryFrameNumber(_receivedFrames[i])), "данные повреждены"); } } } _postReceipt(_sentReceipt); ConsoleHelper.WriteToConsole("станция 1", "отправил RNR-ответ станции 2"); _signalToSecondSt.Release(); }
public void SendReceiptToFirstSt(Object obj) { Stopwatch framesReceptionWatch = new Stopwatch(); _postReceipt = (SecondStPostToFirstStWt)obj; _sentReceipt = new BitArray(1); framesReceptionWatch.Start(); _signalFromSecondBuffer.WaitOne(); framesReceptionWatch.Stop(); TimeSpan framesReceptionTime = framesReceptionWatch.Elapsed; if (framesReceptionTime.Milliseconds > 40) { _sentReceipt[0] = false; ConsoleHelper.WriteToConsole("станция 2", "отправляю REJ-запрос"); } else { _sentReceipt[0] = true; for (int i = 0; i < _receivedFrames.Length; i++) { Random rnd = new Random(); bool dataIsValid = (rnd.Next(1, 20) % 6) != 0; if (dataIsValid == true) { ConsoleHelper.WriteToConsoleArray("станция 2 полученный кадр №" + FrameHelper.getIntFromBitArray(FrameHelper.GetBinaryFrameNumber(_receivedFrames[i])), FrameHelper.GetFrameData(_receivedFrames[i])); } else { ConsoleHelper.WriteToConsole("станция 2 полученный кадр №" + FrameHelper.getIntFromBitArray(FrameHelper.GetBinaryFrameNumber(_receivedFrames[i])), "данные повреждены"); ConsoleHelper.WriteToConsole("станция 2", "отправляю REJ-запрос"); frameIsMissed = true; _signalToFirstSt.Release(); //_sentReceipt[0] = false; break; } } } _postReceipt(_sentReceipt); if (frameIsMissed == true) { _signalFromSecondBuffer.WaitOne(); for (int i = 0; i < _receivedFrames.Length; i++) { ConsoleHelper.WriteToConsoleArray("станция 2 полученный кадр №" + FrameHelper.getIntFromBitArray(FrameHelper.GetBinaryFrameNumber(_receivedFrames[i])), FrameHelper.GetFrameData(_receivedFrames[i])); } } ConsoleHelper.WriteToConsole("станция 2", "отправил RR-ответ станции 1"); _signalToFirstSt.Release(); Stopwatch framesReceptionWatch2 = new Stopwatch(); _sentReceipt = new BitArray(1); framesReceptionWatch2.Start(); _signalFromSecondBuffer.WaitOne(); framesReceptionWatch2.Stop(); TimeSpan framesReceptionTime2 = framesReceptionWatch2.Elapsed; if (framesReceptionTime2.Milliseconds > 40) { _sentReceipt[0] = false; ConsoleHelper.WriteToConsole("станция 2", "Данные не получены"); } else { _sentReceipt[0] = true; for (int i = 0; i < _receivedFrames.Length; i++) { if (ValidData(_receivedFrames[i]) == true) { ConsoleHelper.WriteToConsoleArray("станция 2 полученный кадр №" + FrameHelper.getIntFromBitArray(FrameHelper.GetBinaryFrameNumber(_receivedFrames[i])), FrameHelper.GetFrameData(_receivedFrames[i])); } else { ConsoleHelper.WriteToConsole("станция 2 полученный кадр №" + FrameHelper.getIntFromBitArray(FrameHelper.GetBinaryFrameNumber(_receivedFrames[i])), "данные повреждены"); } } } _postReceipt(_sentReceipt); ConsoleHelper.WriteToConsole("станция 2", "отправил RNR-ответ станции 1"); _signalToFirstSt.Release(); }