_albatros_ Posted March 20, 2019 Report Posted March 20, 2019 Hi, I searched the forum before I post and I saw that someone tried to communicate the Lua script and Arduino. We're sharing the same purposes. Let me say the problem I deal: For PMDG 737, I can control any button, switch in the simulation by sending data from Arduino to Lua script. Also, I have no problem to send data from Lua script to Arduino by using Lvar list in FSUIPC documents. However, I can't read the state of any warning light as Overheat Lights in the overhead panel. Only need to know, what should be the way of reading the state of lights in PMDG 737. If there is a small example or showing a way to go, I will be grateful 🙂
Pete Dowson Posted March 20, 2019 Report Posted March 20, 2019 1 hour ago, _albatros_ said: However, I can't read the state of any warning light as Overheat Lights in the overhead panel. Only need to know, what should be the way of reading the state of lights in PMDG 737. There is a list of offsets for the PMDG 737NGX is your FSUIPC Documents folder. In a Lua program you read offsets using the ipc.readXX set of functions (where XX is the type, like UB, UD etc). Of you can use event.offset or event.offsetmask to react to changes. Pete
_albatros_ Posted March 20, 2019 Author Report Posted March 20, 2019 (edited) Thanks a lot for replying quickly. I've already found the list. And, I tried to use ICE_annunFO_PITOT which has 64B2 offset in following code lines seperately: n = ipc.readUB(64B2) print(n) and n = ipc.readUB('64B2') print(n) and function fo_pitot_led(offset, value) print(value) if value == 0 then print("state 0") else print("state 1") end end event.offset(64B2, "UB", "fo_pitot_led") When I switch the Probe heat, the LED in P3D is on, and the script still returning 0. What's the point I'm missing ? Edited March 20, 2019 by _albatros_ wrong emoji used.
Pete Dowson Posted March 20, 2019 Report Posted March 20, 2019 26 minutes ago, _albatros_ said: What's the point I'm missing ? Offsets are hexadecimal numbers (hence the 'B' in 64B2). You needs to express it as 0x64B2, or convert it to decimal (= 25778). Pete
_albatros_ Posted March 20, 2019 Author Report Posted March 20, 2019 Pete, I tried a few minutes ago. Result is the same. It always returning 0 😕 function fo_pitot_led(offset, value) print(value) if value == 1 then print("state 1") else print("state 0") end end event.offset(25778, "UB", "fo_pitot_led")
Pete Dowson Posted March 20, 2019 Report Posted March 20, 2019 45 minutes ago, _albatros_ said: Pete, I tried a few minutes ago. Result is the same. It always returning 0 😕 Are any of the offsets fulfilled? Did you enable them in the PMDG SDK as described at the beginning of the offsets document( the "PLEASE READ THIS FIRST" section)? BTW there are also parameters in the FSUIPC INI file to switch the action on and off, but they default to "Auto". Check for "PMDG737offsets". you can set it to "Yes", "Auto" or "No". The Auto mode depends on detecting the PMDG aircraft by its original name. I cannot really support PMDG aircraft. I don't even have any installed. The offsets are mapped directly from the data supplied by the code in the PMDG software, so if they don't work even when enabled you may want to ask in their forums. Pete
_albatros_ Posted March 20, 2019 Author Report Posted March 20, 2019 (edited) Quote Are any of the offsets fulfilled? Did you enable them in the PMDG SDK as described at the beginning of the offsets document( the "PLEASE READ THIS FIRST" section)? I missed it. Now, it's done. I checked whether my code works, it doesn't make any sense 😞 Quote BTW there are also parameters in the FSUIPC INI file to switch the action on and off, but they default to "Auto". Check for "PMDG737offsets". you can set it to "Yes", "Auto" or "No". The Auto mode depends on detecting the PMDG aircraft by its original name. I couldn't see anything related 'PMDG'. Can you check my file? FSUIPC5.ini The thing makes me confused is that: I can use readLvar to check the LED's on the MCP. It works well. For example: if ipc.readLvar("L:ngx_MCP_CMDA") == 1 then ipc.display("1") print("MCP_CMDA_ON") else ipc.display("0") print("MCP_CMDA_OFF") end Edited March 20, 2019 by _albatros_
Pete Dowson Posted March 20, 2019 Report Posted March 20, 2019 17 minutes ago, _albatros_ said: it doesn't make any sense 😞 In what way? 18 minutes ago, _albatros_ said: I couldn't see anything related 'PMDG'. Can you check my file? Ouch! You are still using one of the first versions of FSUIPC5 and P3D 4.0. Why have you never updated? Sorry. The currently supported version of FSUIPC is 5.15 or later, and you need to be on P3D4.1 or later -- current is 4.4. 20 minutes ago, _albatros_ said: The thing makes me confused is that: I can use readLvar to check the LED's on the MCP. LVars are totally unrelated. Why confusing? Pete
_albatros_ Posted March 20, 2019 Author Report Posted March 20, 2019 Quote In what way? I mean it didn't work. 15 minutes ago, Pete Dowson said: The currently supported version of FSUIPC is 5.15 or later, Okey, I'm updating immediately 🙂 15 minutes ago, Pete Dowson said: LVars are totally unrelated. Why confusing? I thought that if I reach that offsets, that shows it's accessible for other code lines which are written for same purpose.
Pete Dowson Posted March 20, 2019 Report Posted March 20, 2019 6 hours ago, _albatros_ said: I thought that if I reach that offsets, that shows it's accessible for other code lines which are written for same purpose. There may well be L:Vars for what you want. I don't know. Did you check? You can list all the L:Vars using an assignable FSUIPC control or monitor them with one of the Lua examples provided. Pete
_albatros_ Posted March 21, 2019 Author Report Posted March 21, 2019 Quote There may well be L:Vars for what you want. I don't know. Did you check? You can list all the L:Vars using an assignable FSUIPC control or monitor them with one of the Lua examples provided. I saw your code in examples 🙂 Lvars worked well. I think Lvars makes code so clear. After all, I still want to use offset and ipc.readXX commands. Now, programs are upgrading to the new versions. If it works, nothing would be better than 🙂 By the way, thank you so much Pete
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