public void RequestSimVar_Test_Once() { result = null; SimConnectHandler.SimError += SimConnect_Error; SimConnectHandler.SimConnected += SimConnect_Connection; SimConnectHandler.SimData += SimConnect_DataReceived; SimConnectHandler.Connect(); var variable = new SimConnectVariable { Name = "AMBIENT WIND VELOCITY", Unit = "knots" }; var requestID = SimConnectHandler.RegisterSimVar(variable, SimConnectUpdateFrequency.Once); // Wait up to 5 seconds for MSFS to return the requested value DateTime endTime = DateTime.Now.AddSeconds(5); while (result == null && DateTime.Now < endTime) { Thread.Sleep(100); } SimConnectHandler.CancelRequest(variable); SimConnectHandler.Disconnect(); Assert.IsNotNull(result); }
public void Disconnect_Test() { SimConnectHandler.Connect(); // Find/Try all defined server connection configurations Assert.IsTrue(SimConnectHandler.IsConnected); SimConnectHandler.Disconnect(); Assert.IsFalse(SimConnectHandler.IsConnected); }
private void dgvButton_Click(object sender, DataGridViewCellEventArgs e) { var reqId = (int?)dgVariables.Rows[e.RowIndex].Cells["ReqID"].Value; if (e.ColumnIndex == dgVariables.Columns["SimVarUpdate"].Index) { // User wants to refresh the displayed value if (reqId > -1) { SimConnectHandler.GetSimVar((int)reqId); } else { var isReadOnly = ((DataGridViewCheckBoxCell)dgVariables.Rows[e.RowIndex].Cells["VarIsReadOnly"]).Value == ((DataGridViewCheckBoxCell)dgVariables.Rows[e.RowIndex].Cells["VarIsReadOnly"]).TrueValue; var simVarName = (string)dgVariables.Rows[e.RowIndex].Cells["SimVarName"].Value; var simVarUnit = (string)dgVariables.Rows[e.RowIndex].Cells["SimVarUnit"].Value; var frequency = dgVariables.Rows[e.RowIndex].Cells["SimVarFreq"].Value; SimConnectVariable request = new SimConnectVariable { Name = simVarName, Unit = simVarUnit }; if (isReadOnly) { dgVariables.Rows[e.RowIndex].Cells["ReqID"].Value = SendRequest(request, int.Parse(frequency.ToString())); } else { var value = dgVariables.Rows[e.RowIndex].Cells["SimVarValue"].Value; SendValue(new SimConnectVariableValue { Request = request, Value = value }); } } } if (e.ColumnIndex == dgVariables.Columns["SimVarDelete"].Index) { var simVarName = (string)dgVariables.Rows[e.RowIndex].Cells["SimVarName"].Value; var simVarUnit = (string)dgVariables.Rows[e.RowIndex].Cells["SimVarUnit"].Value; SimConnectVariable request = new SimConnectVariable { Name = simVarName, Unit = simVarUnit }; SimConnectHandler.CancelRequest(request); dgVariables.Rows.RemoveAt(e.RowIndex); } }
private void RequestAllSimVars() { foreach (DataGridViewRow row in dgVariables.Rows) { var simVarName = row.Cells["SimVarName"].Value?.ToString(); var simVarUnit = row.Cells["SimVarUnit"].Value?.ToString(); var request = new SimConnectVariable { Name = simVarName, Unit = simVarUnit }; SimConnectHandler.GetSimVar(request); } }
private void pbConnect_Click(object sender, EventArgs e) { SetInvocations(); if (!SimConnectHandler.IsConnected) { var server = txtSimConnectServer.Text; var port = (int)txtSimConnectPort.Value; IPAddress ipAddr = Dns.GetHostAddresses(server).FirstOrDefault(x => x.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork); EndPoint ep = new IPEndPoint(ipAddr, port); SimConnectHandler.Connect(ep); } else { SimConnectHandler.Disconnect(); } }
private void FormClose_Click(object sender, FormClosingEventArgs e) { SimConnectHandler.Disconnect(); }
private int SendRequest(SimConnectVariable request, int frequency) { return(SimConnectHandler.GetSimVar(request, frequency)); // If FetchLatestValue = true; Auto-update }
private int SendValue(SimConnectVariableValue variableValue) { return(SimConnectHandler.SetSimVar(variableValue)); }
public void ConnectViaIP_Test() { SimConnectHandler.Connect(GetEndPoint()); Thread.Sleep(1000); Assert.IsTrue(SimConnectHandler.IsConnected); }
public void ConnectConfiguration_Test() { SimConnectHandler.Connect(); // Find/Try all defined server connection configurations Assert.AreNotEqual(SimConnectHandler.Connection.Port, "0"); }
public void ConnectUseLocalServerConfig_Test() { SimConnectHandler.Connect(); // Find/Try all defined server connection configurations Assert.IsTrue(SimConnectHandler.IsConnected); }