public override void OnMessageReceived(UdpReceiveResult result) { if (result.Buffer == null) { return; } if (result.Buffer.Length == 0) { return; } var message = MdvrMessageHelper.Parse(result.Buffer); if (message == null) { return; } var client = new DeviceClient(message.DevIDNO, result.RemoteEndPoint.Address, result.RemoteEndPoint.Port); if (Clients.ContainsKey(message.DevIDNO) == true) { client = Clients[message.DevIDNO]; } else { if (Clients.TryAdd(message.DevIDNO, client) == true) { ClientConnected?.Invoke(message.DevIDNO); } } HandleMessage(message, client); }
public void GetString() { var bytes = new byte[] { 0x00, 0x0f, 0x01, 0x0f, 0x02, 0x0f }; bytes = MdvrMessageHelper.Escape(bytes); string messageString = MdvrMessageHelper.GetString(bytes); Assert.AreEqual(",#\u000f", messageString, true); }
public void GetBytes() { string messageString = ",#\u000f"; var bytes = MdvrMessageHelper.GetBytes(messageString); bytes = MdvrMessageHelper.Escape(bytes, false); var expected = new byte[] { 0x00, 0x0f, 0x01, 0x0f, 0x02, 0x0f }; CollectionAssert.AreEqual(expected, bytes); }
private void SendMessage(List <byte> byteList) { using (var ms = new MemoryStream()) { using (var br = new BinaryWriter(ms)) { br.Write(MdvrMessageHelper.GetBytes(MdvrMessageHelper.MediaMessageStart)); br.Write(byteList.Count); br.Write(byteList.ToArray()); br.Write(MdvrMessageHelper.GetBytes(MdvrMessageHelper.MediaMessageEnd)); var bytes = ms.ToArray(); Send(bytes); } } }
public C508Message() { var guid = Guid.NewGuid(); UID = MdvrMessageHelper.GetString(guid.ToByteArray()); }