Jump to content
The simFlight Network Forums
oresther

fsuipcclient for p3d 64bit

Recommended Posts

Moved to Sub-Forum, FSUIPC Client DLL for .NET

Hello Pete,

first i want to thank you for taking the time and thank the fsuipc to 64 bit 

my guess is you  familiar with the link2fs software , the problem with this software now that it is not working with 64bit , i spend the time and start change it to 64bit , everything is working great with the prepar3d 64bit except the fsuipc part , it is not sending any control to the game and it is not responding

i have to say with the 32bit it is working great 

is there is a new fsuipcclient.dll for 64bit ?

if yes where i can download it ?

 

thank you 

Share this post


Link to post
Share on other sites

Hi,

this is the wrong forum for that. FSUIPCClient.dll is by Paul Henty and his latest version FSUIPCClient RC2 works for .Net2/ .Net4 and also for 32-Bit and 64-Bit

FSUIPCClient3.0_RC2

Question about FSUIPCClient and .Net applications are best placed in the Sub-Forum, FSUIPC Client DLL for .NET

Thomas

Share this post


Link to post
Share on other sites

is anyone know if i need new fsuipcclient.dll for fsuipc5 ? 

i am changing the link2fs software to work with p3d 64bit , everything work great axcept the fsuipc section 

only after 2 time clicking on a "send" box the command is sending to the game, the command can use only one time until i am changing screens on the software 

any idea ? 

i am developing in visual studio 2017

thank you 

Share this post


Link to post
Share on other sites

You don't need a new FSUIPCClient.dll for FSUIPC5.

Any version of the DLL will connect fine with FSUIPC5. It's doesn't matter if your client application is compiled as 32 bit. I can still talk to 64 bit P3D via FSUIPC.

You only need the new Version 3 if you want to compile your .NET client application as a 64 bit dll (or a Dual 32/64 binary). It has nothing to do with the Flight Sim being 32 or 64 bit.

For your connection problem I'll need more information to help e.g. any exceptions that get thrown. Also posting your connection code might help.

You could also try the sample solutions from the 2.4 zip and just use the new Version 3 DLL if that's what you're using. See if that has the same problems or not.

Paul

Share this post


Link to post
Share on other sites

thank you for the information , 

the build is going well without any error code , warning or note, i am using the new client (RC2) and it still have the problem , let me check the connection code and ill try it with 2.4 

will post back soon 

 

Share this post


Link to post
Share on other sites

thank you for the help ,

it's been a long time since i programmed 

i think it is something with the script control, any idea where i can get MSScriptControl dll for 64bit ? 

thank you 

Share this post


Link to post
Share on other sites

I just noticed that with the dll versions 3.06152.2 - 3.06152.3 - 3.06152.4 -
3.06100.1 I can no longer send offsets via:
As Sun sendButton Offset (Of Integer) = New FSUIPC.Offset (Of Integer) (& H3110)
with 2.4.0.0 or 2.4.4910.2 versions all works fine.

any fix to that ? 

i am using p3dv4 and fsuipcv5 

thank you 

Share this post


Link to post
Share on other sites

Hi,

when you check the major difference from 3.xx onwards you will find Paul described that any Offset that Read/Write declared has to be Read first before it can be used for writing. Write only declared Offsets behave different, just writeable.

In case you use 0x3110, that is a write only Offset in FSUIPC already, you should declare that Offset as well Write Only.

Thomas

Share this post


Link to post
Share on other sites

            fsuControlDatau = New FSUIPC.Offset(Of Integer)("&H3114")
            fsuControlu = New FSUIPC.Offset(Of Integer)("&H3110")

 

this is how i wrote it in vb 

is it correct ? or i need to add something 

like i said it been a long long long time since i programmed :)

Share this post


Link to post
Share on other sites

if you use both offsets as write only then add the True parameter 

            fsuControlDatau = New FSUIPC.Offset(Of Integer)("&H3114", True)
            fsuControlu = New FSUIPC.Offset(Of Integer)("&H3110", True)

Thomas

Share this post


Link to post
Share on other sites

you write

fsuControlDatau = New FSUIPC.Offset(Of Integer)(&H3114, True)

No quotation marks for the address, in your case the offset address is seen as a string ...

Thomas

Share this post


Link to post
Share on other sites

hello,

this one is worked but now a small different problem , it sending the data to the p3d but it dosent stop 

for exmp:

i am sending "65652" which is XPNDR_100_INC , it send the command but the number keep going up , until i am sending a "null" 

i can see on the fsuipc log  file that 3110 and 3114 constantly send signals even if i didnt press anything 

any idea ?

Share this post


Link to post
Share on other sites
On 18.06.2017 at 5:46 PM, Thomas Richter said:

Hi,

when you check the major difference from 3.xx onwards you will find Paul described that any Offset that Read/Write declared has to be Read first before it can be used for writing. Write only declared Offsets behave different, just writeable.

In case you use 0x3110, that is a write only Offset in FSUIPC already, you should declare that Offset as well Write Only.

Thomas

Hey Thomas,

Would you mind linking a topic/site where we can follow the FSUIPCClient updates / changelog (even with BETA/RC) and links to newest versions?

Thanks

Share this post


Link to post
Share on other sites

The only place is this sub-forum.

The official/supported release (at the moment 2.4) is always pinned to the top of the sub forum. That's the one people should use.

If you've seen a new feature mentioned in the forum that's included in 3.0 and you want to help test it then I'm happy to make it available to you on request.

Paul

Share this post


Link to post
Share on other sites
1 minute ago, Paul Henty said:

The only place is this sub-forum.

The official/supported release (at the moment 2.4) is always pinned to the top of the sub forum. That's the one people should use.

If you've seen a new feature mentioned in the forum that's included in 3.0 and you want to help test it then I'm happy to make it available to you on request.

Paul

I'd love to try it Paul indeed. Thanks for your quick answer. If there is anything newer than 3.0.6156.10 which I found in this topic I'd greatly appreciate it! :)

Share this post


Link to post
Share on other sites

I've attached the latest version - RC6

A newer versions of the DLL is available later in this thread.

If you want help with any of the new features let me know and I'll find you some sample code. (Maybe start your own thread in this sub-forum).

Here's the change log since 2.4:
 

Version 3.0 RC6
================

* Added new constructor to the Airport Database. Takes in a Hashset<string> of the ICAO codes of the airports
  you are interested in. If your app only ever deals with a specific set of airports use this to save memory.

* Added Clear() method to the Airport Database to unload it from the memory.

* AITraffic now integrated with the Airports Database. If the database is loaded:
	a. AITrafficInfo now points to database entries for airports and runways
	b. AITraffic can now tell if it's on a runway or at a gate
	c. Database airports and runways will have a list of arriving and departing AI traffic
	d. A runway or gate will know if an AI Plane it on the runway/at the gate


Version 3.0 RC5
================

* BREAKING CHANGE: FsLatitude/FsLongitude base value is now stored in FS Units instead of Degrees. 
  Don't expect the values to always be the exact lon/lat you passed to the contructor.

* BREAKING CHANGE: FsLatitude and FsLongitude constructors now force the sign on degrees, minutes and seconds to be the same.
  If they are different the contructor will change the sign(s) internally to make them match.

* BREAKING CHANGE: Changed struct FSRunway (Used for AI Traffic) to FsRunwayID. Apologies, but this struct was badly-named. 
  There is a new class called FsRunway that is used by the airports database.

* Added helper methods for reading and writing L:VARS. 
  FSUIPCConecction.ReadLVAR() and FSUIPCConecction.WriteLVAR()

* Added airports database that reads info from the output files of Pete's MakeRwys.exe.
  Gives you an in-memory list of airports that can be queried with LINQ.
  Contains basic data on all airports plus COM frequencies, runway info, gate info and helipad info.
  Runway info includes basic properties like length, heading etc plus lighting, ILS and pattern info.
  This class can be used to easily do things like:
    - Filter airports by country, state, runway length, ILS facilities etc
	- Find the nearest airports in range of the player, another airport or any lon/lat location
	- Find the distance and bearing to any airport/runway from player position, another airport or any lon/lat location
	- Tell if the player is on a runway or at a gate.

* Added COM/NAV/ADF & Transponder helper classes to convert frequencies between string and FSUIPC's BCD format


Version 3.0 RC2
================

* Prepar3dx64 added to flight sim versions for 64 bit versions of P3D (V4 and above)

* Global weather now uses the CC00 area, not C400. C400 has problems.

* FsLongitude and FsLatitude can now be used as an Offset Type.


Version 3.0 Beta
================

* BREAKING CHANGE: You cannot write to an offset than has never been read. (Not applicable to Write-Only offsets). 

* Connection will now automatically close if a process() fails because the connection to FSUIPC has been lost.

* POSSIBLE BREAKING CHANGE: FsLatitude.ToString() now shows the degree symbol instead of an asterisk

* Added property FSUIPCConnection.IsConnectedToWideClient

* Added weather reading/writing via METAR string (SimConnect format) and the New Weather Interface

* Added feature that records performance statisitcs about the data exchange between the DLL and FSUIPC.

* Added IsConnectionOpen property + IsConnectionOpenForClass() method.

* Added ability to read/write structures

* Added ability to add sub menus under the FSX Add-ons menus 
  UserInputServices.AddSubMenuItem()

* Payload stations and fuel tanks are now reused between calls to 
  PayloadServices.RefreshData(). This means you can now keep a reference to a fuel
  tank or payload station object rather than needing to get a new reference with
  .GetFuelTank() or from the PayloadStations[] list.

* Added method for sending controls to Flight Sim (FSUIPCConnection.SendControlToFs())
  Enums avilable for 
	- FSX/P3D Controls
	- FSUIPC General Controls
	- FSUIPC Axes Controls
	- FSUIPC Autopilot Controls
	- PMDG 737 NGX Controls
	- Progect Magenta Controls

* Added method for sending key presses to Flight Sim (FSUIPCConnection.SendKeyToFs())

* Fixed problems with UserInputServices when running over WideFS. 

* Added method on FsLonLatPoint to calculate a DME intersection.

* Added an un-typed Offset class for users wanting to create offsets at runtime that are not known at design time.
  This allows collections of offsets to be stored and managed (e.g. List<Offset>).
  These untyped Offsets do not have a Value property. Instead they have a SetValue() method, GetValue<T>() method and GetValue(Type).
  
* Overridden the ToString() method on Offset class to get back info: e.g. "Offset 0x1234 (Int32: 4 Bytes)".
 
* Distance and bearing calculations in FSLatLonPoint now use 'great circle' calculations for greater accuracy. 

* Added FSUIPCVersion property to FSUIPCConnection

* Added Max Gross Weight to PayloadServices

* You no longer have to compile your .NET application as 32bit only. This version of the DLL is compiled to
  target 'Any CPU' (x86 or x64 depending on the host application) and will talk to FSUIPC/XPUIPC running in
  32bit or 64bit versions of Flight Sims.

* Adding and removing offsets and groups is now threadsafe.

* Added property FSUIPCConnetion.GroupsIsolatedToThread. This specifies if offset groups are accessible from 
  other threads. If false, all groups can be processed/removed from any thread. If true a group can only
  be processed/removed by the thread that created it. If true, a group with the same name can be created
  on a number of threads.

 

Paul

 

 

Edited by Paul Henty
Updated to RC7

Share this post


Link to post
Share on other sites

Hi Paul,

Can you update changelog with the new features included between RC2 and RC6 version ?

Can you open your own post for 3.0 version and put the changelog and the last release of 3.0 RCx version ?

Thank you for help and your excellent DLL.

Share this post


Link to post
Share on other sites

I've updated the post above with the new change log and the latest DLL (RC6).

There is no documentation for any of the new features yet, not even on the intellisense.

I'm working on a new "example project" which will be the documentation for version 3. It's about 50% done. When this is finished I can release V3.

Everything will be on a cloud drive so the latest stable and beta versions will be available in a central place. I should have it done by the end of the year.

I know the current situation is a bit of a mess but please bear with it for another month while I sort it all out.

Paul

Share this post


Link to post
Share on other sites

Paul,

Don't worry. I just give suggestions to have better view of your fantastic job. I have time and you have time. We will be patient and we can use all the functions when they will be documented. Or we will ask you help and we know you are there for us.

Thank you again and I hope I havn't hurte you with my post

Share this post


Link to post
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


×