Пример #1
0
 private void WriteToDisk(WsjtxMessage msg)
 {
     try
     {
         File.WriteAllBytes(msg.GetType().Name, msg.Datagram);
     }
     catch (Exception) { }
 }
Пример #2
0
        //Random random = new Random();

        private void UdpLoop()
        {
            var from = new IPEndPoint(IPAddress.Any, 0);

            while (true)
            {
                byte[] datagram = udpClient.Receive(ref from);

                WsjtxMessage msg;

                try
                {
                    msg = WsjtxMessage.Parse(datagram);
                }
                catch (ParseFailureException ex)
                {
                    File.WriteAllBytes($"{ex.MessageType}.couldnotparse.bin", ex.Datagram);
                    Console.WriteLine($"Parse failure for {ex.MessageType}: {ex.InnerException.Message}");
                    continue;
                }

                if (msg != null)
                {
                    if (debug)
                    {
                        WriteToDisk(msg);
                    }

                    /*
                     * if (msg is DecodeMessage dm)
                     * {
                     *  var highlightMessage = new HighlightCallsignMessage
                     *  {
                     *      Id = "test",
                     *      Callsign = dm.Message,
                     *      BackgroundColour = new Colour { Red = 0xff, Green = 0xff, Blue = 0xff },
                     *      ForegroundColour = new Colour { Red = (byte)random.Next(256), Green = (byte)random.Next(256), Blue = (byte)random.Next(256) },
                     *      HighlightLast = true
                     *  };
                     *
                     *  var dg = highlightMessage.GetBytes();
                     *  udpClient.Send(dg, dg.Length, from);
                     * }*/

                    callback(msg, from);
                }
            }
        }