Jump to content
The simFlight Network Forums

FSUIPC Client DLL for .NET - Version 3 Released


Paul Henty

Recommended Posts

Version 3 Released

FSUIPCClientDLL is a library that make it easy for .NET developers to use FSUIPC.

Version 3 is now available as a NuGet package called FSUIPCClientDLL.

Full instructions on how to install it are on the new website below.

Be sure to download the new example code application in either C# or VB. This is the main documentation for the library and covers all features of the library from beginners to advanced.

http://fsuipc.paulhenty.com

The website has:

  • Installation instructions for Version 3
  • Upgrade instructions from Version 2.4 & 3.0RC
  • Change history
  • New project templates for WinForms and WPF in both C# and VB.NET
  • New and improved example code applications in C# and VB.NET
  • Complete Video Guide for Beginners (C# and VB.NET)

The main features added from V2.4 are:

  • Helper method to Read/Write LVARs
  • Weather Services
  • Airports/Runways Database
  • Helper method to send controls (events)
  • Helper method to move the aircraft and save/restore position snapshots
  • DLL no longer limited to 32bit. You can now write 64bit applications.

 

  • Thanks 1
Link to comment
Share on other sites

  • 3 weeks later...
  • 8 months later...

Paul,

 I'm using FSX with Carrier Convoy Planner 1.3.4.2. My flight controls are using the paid version of FSUIPC.  If I start up FSX and start flying all the buttons and controls work correctly.  But if i startup CCP and FSX, some of my buttons (landing gears) do not work. It seems that when i press the button the HUD mode changes instead. I check to see if FSX controller is on but its not enabled. I know that CCP is using your FSUIPCClient.dll, so I was wondering if you have seen this issue before/

 

Thanks,

Steve

Link to comment
Share on other sites

Hi Steve,

I'm not familiar with CCP at all.

Are the original devs are not around any more? They would be the best people to ask.

If you can't contact them, you can send me an FSUIPC log with these options enabled (only these):

  • IPC Writes
  • Button and Key Operations
  • Events (non axis-controls)

(See the logging tab in the FSUIPC dialog).

I'll be able to tell you if CCP is intercepting any buttons or key presses. With the logging enabled, run FSX/CCP and reproduce the error. Then close FSX and show me the contents of the FSUIPC4.log from the modules folder. Please start a new thread in this sub-forum if you do.

Paul

Link to comment
Share on other sites

  • 2 years later...
  • 3 months later...
  • 9 months later...

Hi @Paul Henty

Just wondering is there a reason your NuGet is taking a dependency on 

net6.0-windows7.0

and not just net6.0?

Reason I ask is that I want to use your awesome work on a project using Net6 or even 7 in the coming weeks but not on a windows machine, but a RaspberryPi which is on the network with the other PC's such that I can use it to control lights and buttons as the Pi has GPIO etc so an ideal use case.

If you are not using any Windows parts inside your code could you publish a version that is Net6.0 only please, and happy to help if you need to make this work.

Thanks

Cliff.

Link to comment
Share on other sites

Hi Cliff,

The FSUIPC protocol is based on the Win32 API, specifically sending messages between processes using the windows message pump. So the FSUIPC part is tied exclusively to the Windows operating system. It can't work on the Pi.

For non-windows operating systems, one option is to use my WebSocketServer which allows reads and writes to offsets over a standard TCP WebSocket connection. The server runs on the Flight Sim PC and the data is exchanged using JSON format. Details are here:

http://fsuipcwebsockets.paulhenty.com/

You can use any tech that can can use WebSockets and JSON.

If you're using .NET on the Pi there is a .NET library to make this process much easier called "FSUIPCWebSocketClientDLL" (also on NuGet). This library is very cross platform and targets .NET Standard 2 as well as more specific frameworks like .NET6 and Mono. It sets up and handles the websocket for you and does the conversion to/from JSON.

The website above also includes details of this client DLL and has example code in C# and VB.NET and Javascript (for those using it from webbrowsers).

An alternative would be to create your own client/server protocol to send messages to/from the Pi.

There's no way to talk to FSUIPC directly on the Pi, you have to have some kind of bridge.

Paul

Link to comment
Share on other sites

@Paul Hentythanks I assumed the FSUIPC part was Win32 but I was hoping that WideView wasn't, and I could run that on the Pi to do the networking part for me but sounds like that isn't the case so will look at your WebSockets and may see about using SignalR so that it's all managed for me.  When I have something working, I'll open source it and share it here.

Thanks

Cliff.

Link to comment
Share on other sites

  • 4 months later...

Hi Pual,

First of all, thank you for all the works you done for FSUIPC DLL for .NET!

I'm an newbee to FSUIPC, so I tend to use New Bing to ask how to display messages on a simulator screen, it says it found a method "FSUIPCConnection.DisplayText" in this topic, but as I went back to my visual studio with nuget package FSUIPCClientDLL version 3.3.5, nothing was found as a method called "DisplayText".

Is there any other way to display a message on the simulation screen?

Thanks

Peercat.

Link to comment
Share on other sites

Hi Peercat,

There isn't a DisplayText() method unfortunately.

You can display a message on the simulator screen using offsets 0x3380 and 0x32FA. (Both should have the Write-Only parameter set to True).

Note however that this isn't working in MSFS (FSUIPC7). It does work in P3D and FSX.

1. Declare the offsets in a group (e.g. "message")

        private Offset<string> messageWrite = new Offset<string>("message", 0x3380, 128, true); 
        private Offset<short> messageControl = new Offset<short>("message", 0x32FA, true); 

2. Send a message 

string Message = "my message test";
this.messageWrite.Value = Message;
this.messageControl.Value = 2; // Display for 2 seconds
FSUIPCConnection.Process("message");

See the documentation about 0x32FA for the different values you can send for the messageControl.

Paul

Link to comment
Share on other sites

18 hours ago, Paul Henty said:

Hi Peercat,

There isn't a DisplayText() method unfortunately.

You can display a message on the simulator screen using offsets 0x3380 and 0x32FA. (Both should have the Write-Only parameter set to True).

Note however that this isn't working in MSFS (FSUIPC7). It does work in P3D and FSX.

1. Declare the offsets in a group (e.g. "message")

        private Offset<string> messageWrite = new Offset<string>("message", 0x3380, 128, true); 
        private Offset<short> messageControl = new Offset<short>("message", 0x32FA, true); 

2. Send a message 

string Message = "my message test";
this.messageWrite.Value = Message;
this.messageControl.Value = 2; // Display for 2 seconds
FSUIPCConnection.Process("message");

See the documentation about 0x32FA for the different values you can send for the messageControl.

Paul

Thank you Paul! My problem is perfectly solved!😃

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.