Exemple #1
0
        public AvionicsBridgeViewModel()
        {
            ErrorMessages = new ObservableCollection <string>();

            ToggleConnectCommand   = new BaseCommand((p) => { ToggleConnect(); });
            ToggleBroadcastCommand = new BaseCommand((p) => { ToggleBroadcast(); });

            _timer.Interval = new TimeSpan(0, 0, 0, 1, 0);
            _timer.Tick    += new EventHandler(OnTick);

            ConnectionSettingsViewModel = new ConnectionSettingsViewModel();
            SimVarsViewModel            = new SimVarsViewModel();
        }
Exemple #2
0
 private void ToggleBroadcast()
 {
     if (socket == null)
     {
         var maybeSettings = ConnectionSettingsViewModel.GetConnectionSettings();
         if (maybeSettings.HasValue)
         {
             try
             {
                 var settings = maybeSettings.Value;
                 socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                 socket.DontFragment = true;
                 if (settings.ConnectionType != ConnectionType.Broadcast)
                 {
                     socket.Connect(settings.IPAddress, settings.Port);
                 }
                 else
                 {
                     socket.EnableBroadcast   = true;
                     socket.MulticastLoopback = false;
                     socket.Connect("255.255.255.255", settings.Port);
                 }
                 BroadcastButtonLabel = "Stop Broadcast";
             }
             catch (Exception ex)
             {
                 ErrorMessages.Add("Network connection error: " + ex.ToString());
             }
         }
         else
         {
             ErrorMessages.Add("Invalid connection settings");
         }
     }
     else
     {
         socket.Close();
         socket = null;
         BroadcastButtonLabel = "Start Broadcast";
     }
 }