3GO模拟飞行网|3GO Cyber Air Force

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 3781|回复: 18

[教程] export.lua学习^_^

[复制链接]
发表于 2011-3-9 20:13:52 | 显示全部楼层 |阅读模式
本帖最后由 lixupengdel 于 2011-3-10 21:06 编辑

export.lua学习

打开Lock On\ Config\exportexport.lua

function LuaExportStart()

-- Works once just before mission start.

-- Make initializations of your files or connections here.

-- For example:

-- 1) File

--
--local file = io.open("./Temp/Export.log", "w")

--if file then

--io.output(file)

end

(为了对输入输出的更全面的控制,可以使用完全模式。完全模式的核心在于文件句 柄(file handle)。该结构类似于C 语言中的文件流(FILE* ),其呈现了一个打开的文件 以及当前存取位置。打开一个文件的函数是io.open。它模仿C 语言中的fopen 函数,同 样需要打开文件的文件名参数,打开模式的字符串参数。模式字符串可以是 "r"
(读模式),"w"
(写模式,对数据进行覆盖),或者是 "a" (附加模式)。并且字符 "b" 可附加在后面表示以二进制形式打开文件。正常情况下open 函数返回一个文件的句柄。如果发生错误,则返回nil)
详看
Lua
中文教程170

首先在这里按上面的例子写段代码 --是注释掉代码)

创建一个lockontest.txt文件

local file = io.open("./Temp/lockontest.txt", "w")
--
创建lockontest.txt


if file then


io.output(file)
--
打开文件


end

再找到LuaExportAfterNextFrame函数把下面的- -注释去掉

function LuaExportAfterNextFrame()

-- Works just after every simulation frame.

-- Call Lo*() functions to get data from Lock On here.

-- For example:


local t = LoGetModelTime()


local name = LoGetPilotName()

local altBar = LoGetAltitudeAboveSeaLevel()


local altRad = LoGetAltitudeAboveGroundLevel()


local pitch, bank, yaw = LoGetADIPitchBankYaw()


local engine = LoGetEngineInfo()


local HSI
= LoGetControlPanel_HSI()

-- 1) File下面的注释去掉 如下

-- Then send data to your file or to your receiving program:

-- 1) File


io.write(string.format("t = %.2f, name = %s, altBar = %.2f, altRad = %.2f, pitch = %.2f, bank = %.2f, yaw = %.2f\n", t, name, altBar, altRad, 57.3*pitch, 57.3*bank, 57.3*yaw))


io.write(string.format("t = %.2f ,RPM left = %f
fuel_internal = %f \n",t,engine.RPM.left,engine.fuel_internal))

io.write(string.format("ADF = %f
RMI = %f\n ",57.3*HSI.ADF,57.3*HSI.RMI))

-- 2) Socket

--
socket.try(c:send(string.format("t = %.2f, name = %s, altBar = %.2f, alrRad = %.2f, pitch = %.2f, bank = %.2f, yaw = %.2f\n", t, name, altRad, altBar, pitch, bank, yaw)))

End

再到LuaExportStop()下把-- 1) File下的--
io.close()
注释去掉

function LuaExportStop()

-- Works once just after mission stop.

-- Close files and/or connections here.

-- For example:

-- 1) File


io.close()

-- 2) Socket

--
socket.try(c:send("quit")) -- to close the listener socket

--
c:close()

End

好了,现在运行游戏进入一个任务玩几秒后按s暂停回到桌面到

LOCKON\Temp\下打开lockontest.txt文件看看是不是可以看到数据啊,记得有个帖子上说把数据可以发送到单片机上然后再驱动其他仪表^_^ ,不知道能不能把多功能显示器的数据用TFT显示出来^_^.

(此方法也适合DCS )

LUA相关资料 http://www.luaer.cn/

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

评分

2

查看全部评分

发表于 2011-3-9 20:27:21 | 显示全部楼层
好神奇啊~!
发表于 2011-3-9 20:58:03 | 显示全部楼层
帅!神奇!!
发表于 2011-3-9 22:08:06 | 显示全部楼层
MFD的数据量太大,不压缩的话没法传到外设上。另外ED似乎没有把MFD图像导出做进export.lua里。
发表于 2011-3-9 22:13:24 | 显示全部楼层
什么情况?难道是自己做ED以外的仪表?
发表于 2011-3-9 22:20:32 | 显示全部楼层
收藏..
看来LOFC2开放性大大提高鸟
发表于 2011-3-9 23:14:32 | 显示全部楼层
感谢楼主分享
发表于 2011-3-9 23:16:01 | 显示全部楼层
这贴应该移到相应版块去。不应该再在休息室呆着了。
发表于 2011-3-10 01:23:30 | 显示全部楼层
回复 4# RCtech


    这么说仪表类的状态显示已经没什么问题了吧 ?
发表于 2011-3-10 06:13:44 | 显示全部楼层
export.lua应该可以导出F10那样的敌我双方态势,而不是经过计算的雷达显示,不过这就是作弊了
发表于 2011-3-10 07:45:39 | 显示全部楼层
太神奇了,好好学习一下
发表于 2011-3-10 08:16:39 | 显示全部楼层
回复  RCtech


    这么说仪表类的状态显示已经没什么问题了吧 ?
hbk0401 发表于 2011-3-10 01:23



    已经有人做好了啊。
发表于 2011-3-10 09:24:40 | 显示全部楼层
哇!好火星啊
发表于 2011-3-10 11:17:10 | 显示全部楼层
LZ V5。。。。。。。期待有进一步的成果。。。。。。
发表于 2011-3-17 12:40:53 | 显示全部楼层
厉害厉害 顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|手机版|3GO模拟飞行网|3GO Cyber Air Force ( 沪ICP备08002287号|沪ICP备14050587号 )

GMT+8, 2024-12-23 06:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表