Jump to content
The simFlight Network Forums

Recommended Posts

Posted (edited)

Hi,

 

I have test the code delivered with .NET  FSUIPC DLL. It works fine with the user aircraft but I wanted to know if it is possible to command "lights" to an other aircraft.

 

Thank you for your help and your excellent DLL.

 

Motus

Edited by motuslechat
Posted

It depends on the aircraft; each will be different.

 

If the developers provide control numbers (also called 'events') to turn the light on and off then you can use the DLL to send that control via offset 0x3110. To find out if there is such a control you can enable 'non axis event logging' in FSUIPC, operate the lights in the aircraft and see if anything is logged. If you run the flight sim in windowed mode you can make FSUIPC write the log to a console window in real time.

 

If you can't see any events (controls) being logged, then you could send a key press if the lights respond to a certain key combination. If you want to try this you'll need version 3 of my DLL. Just ask and I'll give you some sample code and the new DLL.

 

The only other way I know is via the panel L:VARS if they are provided by the author of the plane, but these are only accessible via a LUA plugin, not via the FSUIPC interface.

 

Paul

Posted

Thank you Paul for this answer.

 

Yes the "target" aircraft have 'event' to switch on/off light. I will have a look at offset 0x3110.

 

I will be happy to have version 3 of your DLL and some sample codes.

 

Thank you again.

 

Motus

Posted

Hi Motus,

 

Attached is version 3 beta of the DLL. Just overwrite your current DLL and XML file with the ones in the zip. There are different versions for the .NET 2 and .NET 4 framework.

 

There are two new methods that might be useful to you...

 

1. FSUIPCConnection.SendControlToFs(ControlNumber, ParameterValue);

 

This just sends the control immediately (no need for a Process() call).

 

There are also overloads that take an Enum instead of the raw control number. For example:

FSUIPCConnection.SendControlToFS(FsControl.PARKING_BRAKES, 0);

will toggle the parking brake. A parameter is not required for this control so it's just set to 0.

 

Enums available are:

 

FsControl - the normal FSX/P3D list of controls

FSUIPCControl - Additional controls added by FSUIPC

FSUIPCAxesControl - Used to control axed assign directly in FSUIPC

FSUIPCAutoPilotControl

PMControl - Controls for Project Magenta software

PMDG_737_NGX_Control - Controls defined in the PMDG 737 NGX SDK

 

 

If there is no enum set for your aircraft you can just specify the integer value in decimal or hex.

 

 

2. FSUIPCConnection.SendKeyToFS(Key, Modifier, ReturnFocusToForm);

 

This sends a key stroke to the FS window. The Modifier and ReturnFocusToForm are optional.

 

e.g. This sends Control-L and return focus back to the application form:

            FSUIPCConnection.SendKeyToFS(Keys.L, SendModifierKeys.Control, this);

This is also instant (no need to Process()).

 

Both will also work over WideFS.

 

Paul

FSUIPCClient3.0_BETA.zip

Posted

Hi Paul,

 

Thank you very much. I have a question (peraphs stupid) but I don't undestand how it works.

 

I have my aircraft : A1, and 2 others same aircrafts : A2 and A3.

 

I want to switch on Taxi Light for A3 but not for A2 and A1. With simconnect, we use ID of object to send data to a specific object.  How to specify one object with FSUIPC and your DLL  ?

 

Thanks.

 

Motus.

Posted

I want to switch on Taxi Light for A3 but not for A2 and A1. With simconnect, we use ID of object to send data to a specific object.  How to specify one object with FSUIPC and your DLL  ?

 

FSUIPC is not really designed to send commands to anything other than the User Aircraft. However, for AI aircraft you can use the offsets at 0x2900 once you get the ID from the TCAS tables. Note that the ID FSUIPC uses is not the same one you see in Traffic Explorer. I think it's the negative of it, or maybe the complement (NOT).

 

The most flexible way of handling traffic and objects in FSX and P3D is by using SimConnect. FSUIPC is all about cross-platform compatibility, since FS98, so newer things which are better handled in SimConnect (only new in FSX) are left to that interface.

 

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.