yzboboo 发表于 2024-11-15 20:04:46

【X-Plane 插件开发】Part 2 - 数据读取

【X-Plane 插件开发】Part 2 - 数据读取

№_唯宠、那女子 发表于 2024-11-15 20:16:01

在X-Plane的插件开发中,数据读取是关键功能之一,官方提供的API称为Data References。通过使用XPLMDataAccess这个API,开发者可以灵活高效地在X-Plane和其他插件中读取和写入数据。这一API为获取飞机的导航无线电、飞机位置、有效图形帧速率等提供了便利。一个通用且高性能的读取方法是通过XPLMDataRef指针进行操作,它允许快速读取和可能的写入数据。

本文将以获取飞机俯仰角及飞行时间数据为例,演示数据读取过程。首先,需要下载VS项目文件,该插件运行会在X-Plane主程序目录内创建一个CustomDataRead.txt文件,并保存飞行时间及俯仰角信息。若发现文件为空,只需禁用DIY Data Read插件并重新打开文件即可。

主程序代码结构包括XPluginStart、XPluginStop、XPluginDisable和XPluginEnable四个函数,构成dll的核心接口。XPluginDisable与XPluginStop功能不同,前者在插件被禁用时执行,后者在游戏关闭时执行。插件在游戏内可以多次启用或禁用。

数据读取步骤如下:初始化XPLMDataRef为NULL,使用XPLMFindDataRef查找对应数据,定义唯一标识符如"sim/flightmodel/position/true_theta"。注意,数据标识符可以从Sim Innovations获取或使用DataRefTools/Editor插件查找,确保清楚了解所需数据。

调用XPLMGetDataf将获取到的DataRef指针对应的数据保存到文件中。使用XPLM官方文档了解其他接口,如获取DataRef信息、数据类型、判断读取权限等。

回调函数是插件的核心,负责定时执行主要功能,如获取数据并写入文件。该函数返回间隔时间,保证下次执行的准确时机。在XPluginStart中注册回调函数,并设置运行时间(秒)。

本文总结了获取X-Plane内部DataRef的一般步骤,包括读取数据并记录至自定义文件的方法,以及插件结构的基本组成部分。通过遵循这些步骤,开发者可以构建一个功能完备的数据读写插件。
页: [1]
查看完整版本: 【X-Plane 插件开发】Part 2 - 数据读取