Example #1
0
        public void BroadcastFsxData(FsxValueBag valueBag)
        {
            UdpResponseMessage msg = new UdpResponseMessage
            {
                MsgType = UdpResponseMessage.Types.MsgType.TransmissionData,
                TransmissionDataBody = new UdpResponseMessage.Types.TransmissionDataBody
                {
                    XAcceleration = valueBag.XAcceleration,
                    YAcceleration = valueBag.YAcceleration,
                    ZAcceleration = valueBag.ZAcceleration,
                    PitchVelocity = valueBag.PitchVelocity,
                    RollVelocity  = valueBag.RollVelocity,
                    YawVelocity   = valueBag.YawVelocity,
                },
            };

            using (ValueBag.HexiClientsLock.WriterLock())
            {
                foreach (var client in ValueBag.HexiClients)
                {
                    if (client.Valid)
                    {
                        client.SendMessage(msg);
                    }
                }
            }
        }
Example #2
0
        public async Task SendMessageAsync(UdpResponseMessage message)
        {
            // No need to add length prefix since packet size < MTU
            SerialNumber         = SerialNumber + 1;
            message.Token        = Token;
            message.SerialNumber = SerialNumber;
            var body = message.ToByteArray();

            await SendAsync(body, body.Length);
        }
Example #3
0
 public void SendMessage(UdpResponseMessage message)
 {
     Task.Run(() => SendMessageAsync(message));
 }