tincan Posted November 19, 2017 Report Posted November 19, 2017 FSUIPC version 4972 Hi, I am trying to write to a local variable in CaptainSim's C130 in fsx using a Lua file. There's a switch in the VC that I want to automate. The FSUIPC log shows an error for this action: ipc.writeLVar("L:pRpm1ButtonPos",dummy) Quote *** LUA Error: C:\FSX\Modules\c130.lua:113: attempt to call field 'writeLVar' (a nil value) To make sure the variable exists I added a ReadLvar to the code. C130.lua 109 function rpmLow() 110 state=ipc.readLvar("L:pRpm1ButtonPos") 111 ipc.display("RPM: "..state,1) 112 dummy=1 113 ipc.writeLVar("L:pRpm1ButtonPos",dummy) 114 end 141 event.button("D", 5, 1, "rpmLow") The read works, the result 1 or 0 is showing in the display window according to the position of the switch in the virtual cockpit. Log: Quote 71839 LUA.0: Button event: calling "rpmLow" in "C:\FSX\Modules\c130.lua" 71839 LUA.0: C:\FSX\Modules\c130.lua:110 71839 LUA.0: C:\FSX\Modules\c130.lua:111 71839 LUA.0: Global: state = 1 71870 LUA.0: C:\FSX\Modules\c130.lua:112 71870 LUA.0: C:\FSX\Modules\c130.lua:113 71870 *** LUA Error: C:\FSX\Modules\c130.lua:113: attempt to call field 'writeLVar' (a nil value) 71870 LUA.0: Waiting for an event in "C:\FSX\Modules\c130.lua" I don't understand what the "nil value' means here. How can I fix this? Thanks.
Luke Kolin Posted November 19, 2017 Report Posted November 19, 2017 Do you have the function name capitalized properly? Cheers!
tincan Posted November 19, 2017 Author Report Posted November 19, 2017 Yes, you can see in the log that the code is executed.
Pete Dowson Posted November 20, 2017 Report Posted November 20, 2017 7 hours ago, tincan said: The read works Because you spelled the read function name correctly. Compare it to your write one. you have too many capital letters. Luke did suggest you check! You could also compare it to the one in the manual. Quote I don't understand what the "nil value' means here. "nil" is "no value" (basic Lua) , meaning in this case, as it says, writeLVar (a nil value) cannot be executed (because it doesn't exist). Quote Yes, you can see in the log that the code is executed. No, the code fails. That is why an error is reported. And the error report is quite specific, it tells you exactly what is wrong Unfortunately, like C/C++ (but unlike some languages), Lua is very case sensitive. I have tried to include some cases of different capitalisations, but i couldn't add them all without making the lookup tables very long! Pete
tincan Posted November 20, 2017 Author Report Posted November 20, 2017 17 hours ago, Luke Kolin said: Do you have the function name capitalized properly? Cheers! Tunnel vision. I thought you meant my own function`s name. Quote And the error report is quite specific, it tells you exactly what is wrong Well, I'd argue that but to no point. Thanks for spotting this guys! Clear skies.
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now