Didier Posted January 3, 2021 Report Posted January 3, 2021 Hello, Where could I download the DLL file and the XML file of the .Net Assembly in 64 bits of the version 3 ? In the package of FSUIPC there is only version 2.4 in 32 bits and I can't use it. I need them to work with Windev (WLanguage). Thank's Did.
Paul Henty Posted January 3, 2021 Report Posted January 3, 2021 Hi Didier, I only distribute it on NuGet now as it's much easier for me, and also for the users to keep up-to-date. If WinDev doesn't support NuGet you can use Visual Studio to download the package into a blank project and pick up the files from there. Or, you can download the package directly from the NuGet website: https://www.nuget.org/packages/FSUIPCClientDLL/ Rename the .nupkg to .zip, then you can just unzip it and get the DLL and XML from the 'lib' folder. Paul
Didier Posted January 3, 2021 Author Report Posted January 3, 2021 Thank's Paul I'll try this... Could you tell me if the DLL works on 64 bits or 32 bits ? Thank's again 🙂 🙂
Paul Henty Posted January 3, 2021 Report Posted January 3, 2021 Quote Could you tell me if the DLL works on 64 bits or 32 bits ? It's compiled to target "any cpu" so it will compile to 32bit or 64bit depending on the application it's used in. Paul
Didier Posted January 3, 2021 Author Report Posted January 3, 2021 Another question : Is'there a now doc to use this .net assembly ? Thank's
Paul Henty Posted January 3, 2021 Report Posted January 3, 2021 The main documentation is the example code application available on the website. http://fsuipc.paulhenty.com/#downloads There is also a video tutorial in the help section for beginners. Everything is centred around Visual Studio however because that how most people use it. Paul
Didier Posted January 4, 2021 Author Report Posted January 4, 2021 Hello Paul, Thank's I can now import .net assembly of FSUIPCCLient il Windev program. 🙂 I can connect to FSUIPC, but when I want to call "FSUIPCConnection.Process()", i've an error (I've transleted in english) : "Error: The invocation of method <Process ()> of type <Void> failed. The .NET Framework returned the following error: Group "" does not exist." My .NET Framework si 4.8 (windows 10). Have you an idea to resolve this ? After, i've problem to read Offset because I can't create object with Offset() or Offset<T> in Windev. I cannot instantiate an Object with Offset. I've an error like this : "Wrong parameter for the constructor of the Offset Class". Another question : do you speak french ? I ask this because there is some french sentence in the VB example code (Visual Studio) 🙂 Thank's Paul. Didier
Paul Henty Posted January 4, 2021 Report Posted January 4, 2021 Hi Didier, Quote Group "" does not exist." Have you an idea to resolve this ? This happens when you try to Process() but there are no Offsets created. This will be work if we can solve your next problem: Quote i've problem to read Offset because I can't create object with Offset() or Offset<T> in Windev. I cannot instantiate an Object with Offset. I've an error like this : "Wrong parameter for the constructor of the Offset Class". Can you post your code here (where you create offsets)?. Maybe I can see the problem. Quote do you speak french A bit, but I'm not fluent. Paul
Didier Posted January 4, 2021 Author Report Posted January 4, 2021 Ok for Process().... So here is my code : ================================================================================ MessageErreur is string Offset_Airspeed is 4-byte unsigned int Offset_Airspeed = 0x02BC MonOffset is Offset(Offset_Airspeed) <== HERE IS THE ERROR WHEN EXCEPTION IN FSUIPCConnection::Open() <== works OK DO ExceptionInfo(errMessage) END IF FSUIPCConnection::IsOpen THEN <== works OK Info("FSUIPC7 Connecté à " + FSUIPCConnection.FlightSimVersionConnected.ToString()) ELSE Error("FSUIPC7 déconnecté !") END WHEN EXCEPTION IN FSUIPCConnection.Process() <== HERE IS THE ERROR DO // Message complet de l'erreur principale MessageErreur = "erreur : " + ExceptionInfo(errMessage) + CR // Parcours des sous-erreurs (s'il y en a) FOR i = 1 _TO_ ExceptionInfo(errNumberSubError) // Message complet de chaque sous-erreur MessageErreur += "Sous-erreur " + i + " : " + ExceptionInfo(errMessage, i) END Info(MessageErreur) END ================================================================================ I can't read FSUIPCException too... 😞 Thank's Didier
Paul Henty Posted January 4, 2021 Report Posted January 4, 2021 Looking at the WinDev documentation for .NET (https://doc.windev.com/en-US/?2012002&name=Using_NET_assemblies) I think you need to declare the offset like this: Offset_Airspeed is "Offset<4-byte unsigned int>"(0x02BC) Then use the value like this: AirspeedKnots is real AirspeedKnots = Offset_Airspeed.Value / 128.0 I can't test this however. The strongly-typed offset (with <>) is easier to use. If you really want to use the base Offset() class then you also need to include the length of the offset: Offset_Airspeed is Offset(0x02BC, 4) Paul
Didier Posted January 4, 2021 Author Report Posted January 4, 2021 Fine !!!!!!!!!! thank's The code is : ================================================= Offset_Airspeed is "Offset<Uint>"(0x02BC) AirspeedKnots is real AirspeedKnots = Offset_Airspeed.Value / 128.0 ================================================ I'll try other possibility and I'll say to you result 🙂 🙂 🙂 🙂 Thank's Paul !!
Didier Posted January 9, 2021 Author Report Posted January 9, 2021 Hello Paul, I come back to you, perhaps have you an Idea to read Lights 🙂 I use this : Lights is "Offset<FsBitArray>"(0x0D0C, 2) And when I want to read the value of Navigation lights ("0") like this : Lights.Value[0] ---> (I can't use Lights.Value(0) , cause it's for Functions) I've an error : "Unable to access subitem" I've same error when I try Lights.Value[1] for Beacon .... etc... So I've tried to instanciate with Lights is "Offset<BitArray>"(0x0D0C, 2) but it's same issue... Have you an idea to resolve this ? Thank's Paul.
Paul Henty Posted January 9, 2021 Report Posted January 9, 2021 Hi Didier, In .NET the array access for these classes is fake. The compiler will replace myBitArray[2] with myBitArray.Get(2). It looks like WinDev doesn't understand this, so try calling the Get() function directly: Lights.Value.Get(0) Lights.Value.Get(1) etc... Paul
Didier Posted January 9, 2021 Author Report Posted January 9, 2021 Thank's Paul... I think it's good, i've right response... If I want to change value, I think I use Lights.Value.Set(0) = 1 or Lights.Value.Set(0, 1) or Lights.Value.Set(0) = 0 or Lights.Value.Set(0, 0) That's right ? Thank's Paul !!!!!!!! 🙂 🙂 🙂 🙂
Paul Henty Posted January 9, 2021 Report Posted January 9, 2021 Yes there is a Set(x) function as well. In .NET you assign a boolean value: myBitArray.Set(3) = true; If WinDev doesn't have booleans then 0/1 should work. Paul
Didier Posted January 9, 2021 Author Report Posted January 9, 2021 I've tried Lights.Value.Set(0) = True ==> Error = no syntaxe for Set()Lights.Value.Set(0, True) ==> Syntaxe OK That's works fine ! 🙂 🙂 🙂
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now