Prepar3D v4.5.12.30293二次开发-查询其他客户端是否上线

该代码示例展示了如何使用SimConnect_API的SimConnect_Open函数检查并连接到两个模拟客户端。难点在于配置文件SimConnect.cfg和SimConnect.xml的设置,这两个文件需放置在正确路径,并且IP和端口需对应。SimConnect.cfg配置了客户端的IP和端口,而SimConnect.xml在P3D端设置允许的连接。如果连接成功,将在UI上显示连接状态。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

查询其他客户端是否上线

主要应用API:SimConnect_Open

示例代码:

void ARJ21_TConsole::ConnectP3D_1()
{
	if (SUCCEEDED(SimConnect_Open(&hSimConnect, " ", NULL, 0, 0, 1)))
	{
		ui.labelMessage->setText(QStringLiteral("模拟机1已连接"));
		HRESULT hr;
		hr = SimConnect_Close(hSimConnect);
	}
	else
	{
		ui.labelMessage->setText(QStringLiteral("连接1失败,请先启动模拟机"));
	}

	QString str = ui.labelMessage->text();
	if (SUCCEEDED(SimConnect_Open(&hSimConnect, " ", NULL, 0, 0, 2)))
	{
		str = str + QStringLiteral("|模拟机2已连接");
		ui.labelMessage->setText((str));
		SimConnect_Close(hSimConnect);
	}
	else
	{
		str = str + QStringLiteral("|连接2失败,请先启动模拟机");
		ui.labelMessage->setText(str);
	}
}

难点1.配置文件放置:

将SimConnect.cfg放到与SimConnect.h相同路径

[SimConnect.1]
Protocol=Ipv4
Address=192.168.1.135
Port=10404

[SimConnect.2]
Protocol=Ipv4
Address=192.168.10.145
Port=10404

SimConnect_Open第五个参数1或2与SimConnect.1或SimConnect.2对应

难点2.p3d端配置文件SimConnect.xml

放到C:\Users\SIM_P3D\AppData\Roaming\Lockheed Martin\Prepar3D v4

<?xml version="1.0" encoding="UTF-8"?>

<SimBase.Document Type="SimConnect" version="1,0">
  <Descr>SimConnect Server Configuration</Descr>
  <Filename>SimConnect.xml</Filename>
  <Disabled>False</Disabled>

  <!-- Example Global (remote) IPv4 Server Configuration-->
  <SimConnect.Comm>
    <Disabled>False</Disabled>
    <Protocol>IPv4</Protocol>
    <Scope>global</Scope>
    <MaxClients>64</MaxClients>
    <Address>192.168.1.135</Address>
    <Port>10404</Port>
  </SimConnect.Comm>

</SimBase.Document>

SimConnect.cfg与SimConnect.xml的IP和端口号一一对应

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值