/// <summary>Called when [connect command].</summary> private void OnConnectCommand() { if (cm == null) { // First connect cm = new ConnectModel(); } else if (!cm.IP.Equals(Properties.Settings.Default.FlightServerIP) || !cm.Port.Equals(Properties.Settings.Default.FlightCommandPort)) { // Values changed // Stop running thread cm.stop(); // Create new connect model cm = new ConnectModel(); } }
public string GetInfo(string ip, int port) { // Load model ConnectModel model = new ConnectModel(ip, port); // Wait for update event bool rudderChanged = false; bool throttleChanged = false; AutoResetEvent waitHandle = new AutoResetEvent(false); // create and attach event handler for the "Completed" event EventHandler eventHandler = delegate(object sender, EventArgs e) { string propertyName = ((PropertyChangedEventArgs)e).PropertyName; if (propertyName == "Rudder" && !rudderChanged) { waitHandle.Set(); rudderChanged = true; } else if (propertyName == "Throttle" && !throttleChanged) { waitHandle.Set(); throttleChanged = true; } }; model.positionChanged += eventHandler; model.updateRudder(); model.updateThrottle(); waitHandle.WaitOne(); waitHandle.WaitOne(); float rudder = model.Rudder; float throttle = model.Throttle; model.stop(); // Return the values return(String.Format("{0},{1}", rudder, throttle)); }
public string GetLocation(string ip, int port) { // Get model ConnectModel model = new ConnectModel(ip, port); // Wait for update event bool lonChanged = false; bool latChanged = false; AutoResetEvent waitHandle = new AutoResetEvent(false); // create and attach event handler for the "Completed" event EventHandler eventHandler = delegate(object sender, EventArgs e) { string propertyName = ((PropertyChangedEventArgs)e).PropertyName; if ((propertyName == "Lat" && !latChanged)) { waitHandle.Set(); latChanged = true; } else if (propertyName == "Lon" && !lonChanged) { waitHandle.Set(); lonChanged = true; } }; model.positionChanged += eventHandler; model.updatePosition(); waitHandle.WaitOne(); waitHandle.WaitOne(); float lat = model.Lat; float lon = model.Lon; model.stop(); // Return the position return(String.Format("{0},{1}", lon, lat)); }