Jump to content
The simFlight Network Forums

Recommended Posts

Posted

Dear Mr Dowson,

Presently I'm writing a program relative to PMDG747 on FSX, one of the tasks is to read out Spd, Hdg & Alt values on the MCP. Unlike other add-on aircrafts, PMDG747 doesn't reserve an interface for data I/O for programmers, nor can SimConnect read the values. I've tried checking out the offsets in FSUIPC but failed to find the values in any of the offsets. I managed to find the values through some memory exploring apps, but obviously the address for storage will vary every time I load the aircraft. Now I've no idea getting the data in any specific method. Could you offer me some tips on how to access those values in my own application?

My platform: FSX+Acceleration, PMDG744 2.1(probably), Win7 x64

TTTTThanks a lot, I'll appreciate your help!

Posted

Unlike other add-on aircrafts, PMDG747 doesn't reserve an interface for data I/O for programmers, nor can SimConnect read the values.

Correct. It's pretty much the same with all PMDG aircraft I'm afraid, though we are still hoping for a more open attitude with the forthcoming 737NGX.. In the early days, for FS9 aircraft, PMDG did say they were going to release an SDK but I think they changed their mind and only sold it to some hardware manufacturers with strict NDAs -- or at least only a few could afford it..

I've tried checking out the offsets in FSUIPC but failed to find the values in any of the offsets. I managed to find the values through some memory exploring apps, but obviously the address for storage will vary every time I load the aircraft. Now I've no idea getting the data in any specific method. Could you offer me some tips on how to access those values in my own application?

Sorry, no. Whilst I did use to hack into Flight Simulator itself to find things, back in the old days (before SimConnect), I wouldn't be able to do it for 3rd party add-ons without violating the trust between us. If PMDG don't want folks to know, that's their prerogative. As an individual and for private use I don't suppose anyone would mind, but I am another software publisher.

My platform: FSX+Acceleration, PMDG744 2.1(probably), Win7 x64

Well, since you are talking about the FSX version, the PMDG 747X, have you had a look to see if they are using Local Panel variables (L:Vars) for any of them? There are facilities in FSUIPC4 to list them in the log, and there's a Lua plug-in provided to display them with changes as they happen.

Many newer aircraft add-ons for FSX use XML gauges, and most of those do seem to depend quite heavily on L:Vars. But PMDG still write most of their code in C/C++ I think (more compact, more efficient, more work), so it is less likely that you'd find the values you need. But it is worth a look. Another possibility is that they use SimConnect custom data, which can be read and written by other SimConnect clients provided you know the name to use to open it, and the position and nature of each of the values within it.

Regards

Pete

Posted

I have managed to use Lua scripting to connect the VRInsight MCP Combo with the PMDG JS41 and MD11. In both cases I had to find a combination of controls triggered for the various functions.

For example:

Autopilot Master

MD11: ipc.control(66587, 71001)

JS41:

ipc.control(66587,100001)

ipc.sleep(1)

ipc.control(66587,153)

ipc.sleep(1)

ipc.control(66587,8038)

ipc.sleep(1)

ipc.control(65792,0)

ipc.sleep(10)

ipc.control(66587,100002)

ipc.sleep(1)

ipc.control(66587,8038)

I do have the PMDG 747 for FSX as well but unfortunately no time to analyze yet. If you want to try yourself start the logging of fsuipc and analyse which controls are fired when you select certain panel buttons. And the loglvars.lua that Pete is talking about may help as well.

Kosta

Posted

I managed to find some time for debugging. Here is the list of controls that trigger EFIS and MCP functions for the PMDG 747 FSX. It is in Lua notation but I guess you can use any code that triggers a control. Unfortunately there seem to be no LVars or other offsets I could find from where to read the heading and other values. I will look again some other time (sometimes they hide somewhere indirectly) but it is not like in the JS41 or the MD11 where I was able to get those values easily.

Kosta

-- EFIS

"BARO STD" ipc.control(72006,0)

"EFIS WX" ipc.control(72020,0)

"EFIS STA" ipc.control(72021,0)

"EFIS WPT" ipc.control(72022,0)

"EFIS ARPT" ipc.control(72023,0)

"EFIS DATA" ipc.control(72024,0)

"EFIS POS" ipc.control(72025,0)

"EFIS ADF1" ipc.control(66587,72011)

"EFIS VOR1" ipc.control(66587,72010)

"EFIS ADF2" ipc.control(66587,72018)

"EFIS VOR2" ipc.control(66587,72017)

"EFIS ND MODE-" ipc.control(66587,72012)

"EFIS ND MODE+" ipc.control(66587,72013)

"EFIS CTR" ipc.control(72014, 0)

"EFIS ND RANGE+" ipc.control(66587,72016)

"EFIS ND RANGE-" ipc.control(66587,72015)

"EFIS TFC" ipc.control(72017,0)

"EFIS MTR" ipc.control(72001,0)

"EFIS FPV" ipc.control(72000,0)

"MINIMUMS SET" ipc.control(72002,0)

"MINIMUMS+" ipc.control(66587,72005)

"MINIMUMS-" ipc.control(66587,72004)

-- A/P

"A/THR" ipc.control(72101,0)

"FD" ipc.control(72100,0)

"THR" ipc.control(72102,0)

"SPD" ipc.control(72103,0)

"FL CH" ipc.control(72108,0)

"AP DISENGAGE" ipc.control(72127,0)

"APL LOC" ipc.control(72121,0)

"APL APP" ipc.control(72122,0)

"APL CMDL" ipc.control(72123,0)

"APL CMDC" ipc.control(72124,0)

"APL CMDR" ipc.control(72125,0)

"SPD Select-" ipc.control(66587,72104)

"SPD Select+" ipc.control(66587,72105)

"SPD INTV" ipc.control(72129,0)

"TX MODE-" ipc.control(66587,74080)

"TX MODE+" ipc.control(66587,74081)

"TX IDENT" ipc.control(74094,0)

"HDG+" ipc.control(66587,72112)

"HDG-" ipc.control(66587,72111)

"Activate HDG" ipc.control(72113)

"Heading Hold" ipc.control(72114)

"ALT-" ipc.control(66587,72119)

"ALT INTV" ipc.control(72130,0)

"ALT HOLD" ipc.control(72131,0)

"VS+" ipc.control(66587,72116)

"VS-" ipc.control(66587,72115)

"VS HOLD" ipc.control(72118,0)

"ECAS ENG" ipc.control(72060,0)

"ECAS STAT" ipc.control(72061,0)

"ECAS ELEC" ipc.control(72062,0)

"ECAS FUEL" ipc.control(72063,0)

"ECAS ECS" ipc.control(72064,0)

"ECAS HYD" ipc.control(72065,0)

"ECAS DRS" ipc.control(72066,0)

"ECAS GEAR" ipc.control(72067,0)

"CLOCK START/RESET" ipc.control(75005,0)

"VNAV" ipc.control(72107,0)

"LNAV" ipc.control(72106,0)

Posted

I managed to find some time for debugging. Here is the list of controls that trigger EFIS and MCP functions for the PMDG 747 FSX. It is in Lua notation but I guess you can use any code that triggers a control.

It would be worth while re-posting this sort of information, with a suitable title, in the User Contributions subforum, so it doesn't get lost by eventually scrolling off the front page.

Regards

Pete

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.