export.lua学习
export.lua学习打开Lock On\ Config\export的export.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 = %ffuel_internal = %f \n",t,engine.RPM.left,engine.fuel_internal))
io.write(string.format("ADF = %fRMI = %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/
大学时我的C语言差点挂科了,现在对单片机忘的差不多了 这个一定要顶,吃透代码后就可以用液晶显示器做仪表舱了。 这个一定要顶, 福籁不是这方面的达人, 不过福籁慧眼识英雄。
一定要顶! 我专业就是学这一块的...不过单片机部分还没学
先收藏,学了再看 过于专业,推广普及通俗点。
增长见识
感谢了 楼主,我只想说,你知道的太多了 SOCKET方式感觉更舒服,实时性更好。毕竟文件操作的话可能会有延迟写入的问题,除非你不停的flush。。。那样的话硬盘读写次数又太多。
页:
[1]