Jump to content
The simFlight Network Forums

Recommended Posts

Posted (edited)

hello,

first, i'm newbie to development with fsuipc, and i have some questions:

1. how can i assign controls to my application? for example how can i change the engine to cutoff or idle (in pmdg 737)? although thats a control not an offset

2. how can i read atc window  to manage it? (i'm coding a co-pilot for not using my eyesight because i'm loosing it) and i want copilot to do this and screen reader doesnt read it

3. whats the difference between FSUIPC_Read and FSUIPC_ReadSpecial functions?

for now, i can remember these

thanks

Edited by brightening-eyes
Posted
On 5/23/2017 at 3:26 PM, brightening-eyes said:

first, i'm newbie to development with fsuipc,

Are you developing a program to interface to FSUIPC?

On 5/23/2017 at 3:26 PM, brightening-eyes said:

1. how can i assign controls to my application? for example how can i change the engine to cutoff or idle (in pmdg 737)? although thats a control not an offset

Actually, for PMDG aircraft it would have to be by control -- a PMDG added control 9custom control). You'd need to work out what that looks like from the NGX SDK details (see the .h file).

With default aircraft and most add-on aircraft you can send controls or write to the appropriate offsets. Cutoff is simple a zero Mixture level, and there are offsets for the mixture for up to 4 engines. For a jet, "idle" would be 16384 in those (the equivalent to 100%).

You can send any controls via offset 3110. Please read about it first.

On 5/23/2017 at 3:26 PM, brightening-eyes said:

2. how can i read atc window  to manage it? (i'm coding a co-pilot for not using my eyesight because i'm loosing it) and i want copilot to do this and screen reader doesnt read it

Sorry, I never found a way to do that. est to use one of the ATC add-ons in any case. The default one is very poor. 

On 5/23/2017 at 3:26 PM, brightening-eyes said:

3. whats the difference between FSUIPC_Read and FSUIPC_ReadSpecial functions?

Sorry, I've forgotten (I blame my old age and files dating back up to 17 years). I took a look in the provided LIB source to check, and it only contains FSUIPC_Read. Certainly there's no difference at the FSUIPC end -- it must have been something in the LIB once. Does it link ok?

Most folks these days use Paul Henty's .Net DLL, which is constantly improving still. You might like to check his subforum above.

Pete

 

Posted

hello,

yes i'm writing an application to interface with fsuipc

another question: how can i get more offsets from fsx? or better to say, how can i scan fsx for offsets? maybe i can find ATC stuff with that information)

i'm not planning to add more things with different add-ons like proFlight emulator or other stuff, but at first only the fsx ATC things

i've read about that it is a poor ATC thing, and worse than this is my screen-reading software doesnt read it (then i wouldnt need to implement something to do this if it would read that)

about .net framework: the problem is, i dont know why, but i dont want to use dotnet at all

also, maybe a typo in the documentation:

offset 0264 which is the pause control is a bool value (1 byte) not 2 bytes

maybe with short value it is 2 bytes, but i'm using it with bool which is 1 bytee

also, how can i get a key for my add-on as i'm coding my add-on for free for everyone to use it (i dont want people like me to be limited in fsx due to problem in there eyesight)

Posted
1 hour ago, brightening-eyes said:

another question: how can i get more offsets from fsx? or better to say, how can i scan fsx for offsets?

"Offsets" are locations in FSUIPC, not in FS. They've not been in FS since FS98!

All the offsets you might ever want are listed in the Offsets lists provided. They have served folks well all these years! What is it you are missing?

1 hour ago, brightening-eyes said:

offset 0264 which is the pause control is a bool value (1 byte) not 2 bytes

maybe with short value it is 2 bytes, but i'm using it with bool which is 1 bytee

The BOOL value was originally 4 bytes. it's only ever 0 or 1 so it can be 4, 2, or 1 byte. There's a bool too which is different, and how it is defined depends on the language and the header files you use.

In FS98 days, which is how far offset 0264 dates back, it was 2 bytes in the FS98 "GLOBALS.DLL" which is where all the really old offsets come from.

FSUIPC's job is to maintain continuity, compatibility from release to releases.

1 hour ago, brightening-eyes said:

also, how can i get a key for my add-on as i'm coding my add-on for free

Keys aren't needed for Add-Ons these days. I learned to trust folks to own up for payware.

Pete

 

Posted
2 hours ago, brightening-eyes said:

but what about aerosoft airbus a320/321? i mean does it use those offsets defined in fsuipc?

I think you misunderstand. It isn't so much whether they use offsets defined by FSUIPC -- hardly any aircraft uses FSUIPC. The FSUIPC offsets hold values from FS, so it is simply whether they use default FS systems or implement their own. Simpler add-on aircraft use FS values for everything, slightly more sophisticated ones use FS for some parts, but do their own thing for others where they think the FS system isn't suitable, and some implement nearly all their own systems -- PMDG, FSX and, yes, some of the later more complex Aerosoft ones fall into this last category.

The earlier simpler Aerosoft Airbuses probably use FS values.

Pete

 

Posted

thanks

but something that i've found and just want to ask:

i've opened atc.dll with dependency walker, and it should and it had exported some functions:

now, if i write with fsuipc into there addresses, what happens?

i mean if i write to its function addresses what happens, does it crash or something else will occur (maybe that might be a trick to control the fsx's atc stuff)

(as you've stated, fsuipc uses offsets to be compatible with fs98)

again, thank you

Posted
7 hours ago, brightening-eyes said:

i've opened atc.dll with dependency walker, and it should and it had exported some functions:

now, if i write with fsuipc into there addresses, what happens?

i mean if i write to its function addresses what happens, does it crash or something else will occur (maybe that might be a trick to control the fsx's atc stuff)

No idea what will happen. All functions in those DLLs are there to be called by other functions in other DLLs. And most of FS these days is object-oriented, so you need the pointer to the object.

I have hacked into many parts of FS using a disassembler and use a fair number of them, but I've never managed to get into ATC.DLL. With a disassembler and an thorough understanding of assembly code and OOM techniques you can maybe fathom out the simpler functions which you could use. But it is a long long job and takes a lot of patience. For FS98 to FS2000 (the first NOT to have the Globals I could refer to) then to CFS1, FS2002, CFS2 and FS2004 (=FS9) each time took months to find what I needed to populate the FSUIPC offsets and to enable me to make things happen. Really, months! It was a good job I got onto the Microsoft Beta list so I had early access.

FSX introduced SimConnect after I had talks with Microsoft over in Seattle. I provided a list of everything it should do so I could stop hacking into code and deliver an FSUIPC with mainly user facilities, NOT "offsets" etc. Unfortunately they stopped developing FSX before delivering it all.

Now I am 74 years old and too old and incompetent to do any more serious hacking, so I'm grateful for SimConnect and most of the offset values are obtained from and set via SimConnect. In that sense FSUIPC4 is just a "compatibility layer" for programs originally written before FSX.

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.