Jump to content
The simFlight Network Forums

FSUIPC.dll interfacing


djfms

Recommended Posts

Hello,

I am trying to interface the FMS software from ProjectMagenta, through the FSUIPC.dll to a FlightSimulator 'XYZ'(and not to MS FS). I have gone through the FSUIPC SDK and the MS Panels/Gauges SDK. My understanding is that the offsets eg: in a request like

Read(0x3304, 2, Dest, &result) causes FSUIPC.dll to translate the offset 0x3304 to some variable within MS FlightSim. If i wanted to translate this to my own simulator internal variables, i'm guessing i need an additional step to map the MS FlightSim variables to my variables using some mechanism like Hashing etc.

Any additional input with respect to how FSUIPC.dll handles this would be very helpful.

Thanks,

sincerely,

djfms.

Link to comment
Share on other sites

I am trying to interface the FMS software from ProjectMagenta, through the FSUIPC.dll to a FlightSimulator 'XYZ'(and not to MS FS).

You don't mean trying to use FSUIPC in another simulator, I assume? It is too intimately interwoven with FS, more than 90% of the code in it is completely FS dependent and dedicated.

If you mean you want to implement your own FSUIPC-compatible interface, then that makes more sense. Have to spoken to Enrico Schiratti about this? I think you may find some things have already been thought of.

My understanding is that the offsets eg: in a request like

Read(0x3304, 2, Dest, &result) causes FSUIPC.dll to translate the offset 0x3304 to some variable within MS FlightSim. If i wanted to translate this to my own simulator internal variables, i'm guessing i need an additional step to map the MS FlightSim variables to my variables using some mechanism like Hashing etc.

No, that is not a good view. You need really to think of the offsets as "Op Codes" (Instructions) and the data being read or written as their parameters.

Each Instruction is treated differently, according to what is needed to get the data into or out of FS, or to achieve the correct reaction, whatever that might be.

There are no rules here. EAch item has to be dealt with on its own merits.

The whole image of it looking like an area of memory with values to be read and written, which magically influence the simulator, is one deliberately maintained to make programming it more or less the same as it was in FS95 and FS98 -- when in fact most of MSFS was actually like that!

It isn't now. There are hardly any variables left these days in their old positions, and many aren't even anywhere without calling procedures and performing computations. And almost nothing now works simply by writing some nice number to some nice location. Most all of the actions requested by writing have to invoke some call, some function, or even a sequence of them.

Treat the reads and writes as requests, forget the memory image, then see how to meet those requests in your simulator.

Regards,

Pete

Link to comment
Share on other sites

Hi Pete,

Thanks for your response.

I am implementing an FSUIPC like interface along those lines as you suggested, and i want to interface FMS from ProjectMagenta to my simulator using this interface.

Where can i get information regarding the format in which FMS makes its Read/Write requests ? eg: would it be of the form Read(variable_name), Write(variable_name, data_to_be_written).

Hope i've expressed myself clearly.

Thank you,

regards.

Link to comment
Share on other sites

I am implementing an FSUIPC like interface along those lines as you suggested, and i want to interface FMS from ProjectMagenta to my simulator using this interface.

Have you talked to the Project Magenta autohr, Enrico Schiratti about this? As I suggested, I think you may find a lot of thought and work has already gone into looking at interfacing PM to other sims.

Where can i get information regarding the format in which FMS makes its Read/Write requests

Enrico publishes the complete FSUIPC offset list for Project Magenta on his website.

? eg: would it be of the form Read(variable_name), Write(variable_name, data_to_be_written).

That's a procedural interface. There are really no direct procedural interfaces here. Please look at the FSUIPC SDK. It is all data based.

Regards,

Pete

Link to comment
Share on other sites

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.