public void EncodeMessage() { var coder = new HammingCoder(new BaseCoder()); var message = GenerateRandomMessage(); var res = coder.Decode(coder.Encode(message)); Assert.AreEqual(message, res); }
public void CodersIntegrationWithBitstuffing() { IMessageCoder coder = new BaseCoder(); coder = new BitstuffCoder(coder); coder = new HammingCoder(coder); var message = "???"; var res = coder.Decode(coder.Encode(message)); Assert.AreEqual(message, res); }
public void CodersIntegration() { IMessageCoder coder = new BaseCoder(); coder = new BitstuffCoder(coder); coder = new HammingCoder(coder); var message = GenerateRandomMessage(); var res = coder.Decode(coder.Encode(message)); Assert.AreEqual(message, res); }
public void FrameAnalysis(byte mybyte) { switch (mybyte) { case (byte)FrameType.UPLINK: LinkActive = true; DisplayData(MessageType.Normal, DateTime.Now + " UPLINK \n"); WriteData(null, FrameType.ACK_UPLINK, false); break; case (byte)FrameType.DOWNLINK: LinkActive = false; DisplayData(MessageType.Normal, DateTime.Now + " DOWNLINK \n"); WriteData(null, FrameType.ACK_DOWNLINK, false); break; case (byte)FrameType.ACK: DisplayData(MessageType.Normal, DateTime.Now + " ACK \n"); break; case (byte)FrameType.ACK_DOWNLINK: LinkActive = false; DisplayData(MessageType.Normal, DateTime.Now + " ACK_DOWNLINK \n"); break; case (byte)FrameType.ACK_LINKACTIVE: LinkActive = true; DisplayData(MessageType.Normal, DateTime.Now + " ACK_LINKACTIVE \n"); break; case (byte)FrameType.ACK_UPLINK: LinkActive = true; DisplayData(MessageType.Normal, DateTime.Now + " ACK_UPLINK \n"); break; case (byte)FrameType.RET: DisplayData(MessageType.Normal, DateTime.Now + " RET \n"); WriteData(_currentMsg, FrameType.DAT, true); break; case (byte)FrameType.RET_DOWNLINK: LinkActive = false; DisplayData(MessageType.Normal, DateTime.Now + " RET_DOWNLINK \n"); WriteData(null, FrameType.DOWNLINK, false); break; case (byte)FrameType.RET_LINKACITVE: LinkActive = false; DisplayData(MessageType.Normal, DateTime.Now + " RET_LINKACITVE \n"); WriteData(null, FrameType.LINKACTIVE, false); break; case (byte)FrameType.RET_UPLINK: LinkActive = false; DisplayData(MessageType.Normal, DateTime.Now + " RET_UPLINK \n"); WriteData(null, FrameType.UPLINK, false); break; case (byte)FrameType.LINKACTIVE: LinkActive = true; DisplayData(MessageType.Normal, DateTime.Now + " LINKACTIVE \n"); WriteData(null, FrameType.ACK_LINKACTIVE, false); break; case (byte)FrameType.DAT: DisplayData(MessageType.Normal, DateTime.Now + " DAT \n"); int bytes = comPort.BytesToRead; byte[] comBuffer = new byte[bytes]; // записываем в массив данные от ком порта comPort.Read(comBuffer, 0, bytes); //отображаем информацию для пользователя var source = ham.Decode(comBuffer); var decodedStr = ""; if (source.Length != 0) { decodedStr = Encoding.Unicode.GetString(source); } if (decodedStr == "") { WriteData(null, FrameType.RET, false); //неуспешно приняли просим повторно } else { WriteData(null, FrameType.ACK, false); //успешно приняли отправляем квитанцию DisplayData(MessageType.Incoming, user2 + " [ " + DateTime.Now + " ] \n" + decodedStr + "\n"); } break; default: DisplayData(MessageType.Normal, DateTime.Now + " unknow frame \n"); break; } }