Paul Henty
Members-
Posts
1,642 -
Joined
-
Days Won
74
Paul Henty last won the day on January 25
Paul Henty had the most liked content!
About Paul Henty
- Birthday 01/01/1970
Profile Information
-
Gender
Male
-
Location
Gloucestershire, UK
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
Paul Henty's Achievements
-
Paul Henty started following fsuipc node.js module/event listeners , cannot read PMDG 737 CDU on sim update 15 , Issue with referencing latest nuget v3.3.9 and 7 others
-
cannot read PMDG 737 CDU on sim update 15
Paul Henty replied to Jason Fayre's topic in FSUIPC Client DLL for .NET
Hi Jason. You'll need to ask John Dowson about this in the MSFS (FSUIPC7) support forum. Paul -
Issue with referencing latest nuget v3.3.9
Paul Henty replied to activex's topic in FSUIPC Client DLL for .NET
Hi, You are getting the warnings because my DLL depends on the Win32 API and the WinForms library . Those are not included in the .NET Standard 2.0 specification. It's telling you that if you use my library, your application will no longer be .NET Standard 2.0 compatible. e.g. It won't run on Linux. Running it on a Windows .NET 8 machine will be fine because that platform does include the Win32 API and the WinForms library. Since my DLL cannot work on any platform except Windows I cannot make it target a cross-platform specification like .NET Standard 2.0. Even the .NET versions I do target have to be the specific 'windows' versions. e.g. net6.0-windows not net6.0. If you must use Standard 2.0, the only thing you can do is tell VS to suppress the warning, but your app will not really be compatible with Standard 2.0. Paul -
Hi Kees, This forum is for .NET programming; your questions seems to be about Lua so this isn't really the best place to get help with that. However, you'll probably get better performance by using the lua event system for LVars: event.Lvar("lvarname", interval, "function-name") This will call the specified function when the value of the LVar changes. That function can then set the value in the offset. I think this will reduce the processing from the current situation where you are reading the writing every LVAR every 100ms. I don't really know lua that well, so If you want more information about this, please ask John Downson in the main FSUIPC forum (not any of the sub-forums) at the link below. https://forum.simflight.com/forum/30-fsuipc-support-pete-dowson-modules/ Paul
-
How to get the SIMCONNECT_DATA_RACE_RESULT data
Paul Henty replied to FAR's topic in FSUIPC Client DLL for .NET
My DLL has no way to access SimConnect variables. I know FSUIPC7 has a way to map a simconnect variable to an unused offset, but I'm not sure if this works with a whole structure, or if it works with earlier versions of FSUIPC. @John Dowson will be able to tell you if it's possible to access this simconnect data via offsets. If he doesn't see this and reply here, please ask him directly in the main FSUIPC support forum. Paul -
LVARs and shared cockpit in P3D
Paul Henty replied to AirPanther's topic in FSUIPC Client DLL for .NET
Hi Robert, I don't know anything about the P3D shared cockpit feature, but it sounds like these particular variables are not getting shared between the copies of P3D. I guess P3D can't share everything due to bandwidth, especially if you're using third-party aircraft. FSUIPC itself doesn't do any cockpit sharing so offset values will also not be shared unless they are backed by P3D data that is shared. So writing to spare offsets on one copy of P3D will not be seen on the other. I don't think there's an easy way to do this. You'll need to come up with a way to pass the data between the two PCs yourself. The obvious way is probably to use a TCP link between your application running on the the server and the client(s) and pass the LVAR data between them. .NET has a TcpClient and TcpListener class. Your application can then exchange the LVAR data over the TCP link and update the local copies of the LVARs using FSUIPC. There might be some .net libraries that make data exchange easier than writing your own networking code, but I've never looked into this. Paul -
Majestic Dash 8 Q300 output offset
Paul Henty replied to rom06580's topic in FSUIPC Client DLL for .NET
Hi, I think you've posted in the wrong sub-forum. This is for questions about programming FSUIPC applications in .NET languages. I recommend reposting in the main FSUIPC support forum. Follow this link, scroll down a bit and find the [Start New Topic] button. https://forum.simflight.com/forum/30-fsuipc-support-pete-dowson-modules/ Paul -
The NAV offsets are stored in hexadecimal, not decimal like the COM offsets. To convert the value, you must convert it to a string using hexadecimal format. Then you need to add the 1 at the front and the decimal point in the middle... string nav1String = nav1offset.Value.ToString("X4"); // Convert to hex - exactly 4 digits nav1String = "1" + nav1String.Substring(0, 2) + "." + nav1String.Substring(2, 2); In your example you got the value 4176. In hexadecimal this is 1050. Which represents the frequency 110.50 Paul
-
IndexOutOfRangeException when calling Process()
Paul Henty replied to AirPanther's topic in FSUIPC Client DLL for .NET
Great! Glad it's all sorted. It was baffling me for sure. I hadn't considered you were using the untyped Offset class. I've reproduced the error here and I've made a small change to the DLL so that it gives a much better exception than "index out of range": FSUIPC.FSUIPCException: 'FSUIPC Error #999: FSUIPC_ERR_WRITE_OVERFLOW. Offset 66C0 is declared with length of 9 Bytes. The data you are trying to write is different from this. (8 bytes)' Version 3.3.9 is now on NuGet. Paul -
IndexOutOfRangeException when calling Process()
Paul Henty replied to AirPanther's topic in FSUIPC Client DLL for .NET
That line number doesn't really help unfortunately. Can you make sure FSUIPCConnection.DLLVersion is reporting 3.3.8? Also some of this info might help: 1. are you using any named offset groups anywhere in your application? Or are you just using the blank default group? 2. is there any multi-threading in your application? Or is everything run on the main UI thread? Paul -
IndexOutOfRangeException when calling Process()
Paul Henty replied to AirPanther's topic in FSUIPC Client DLL for .NET
Okay - here's the file. Copy it to your application folder (along side the fsuipcClient.DLL). When you get the stack trace it should give you the line number in my Process() method where it's failing. Paul fsuipcClient.pdb -
IndexOutOfRangeException when calling Process()
Paul Henty replied to AirPanther's topic in FSUIPC Client DLL for .NET
The pdb files don't seem to be in the latest packages either. I'll have to sort that out. But at least I can attach a copy for the latest version. I'll need to know which framework version you're using though - 4, 5, 6 or 7. Paul -
IndexOutOfRangeException when calling Process()
Paul Henty replied to AirPanther's topic in FSUIPC Client DLL for .NET
That's a very old version (about 4 years). Back then I was not shipping the pdb files in the package. The pdb files are specific to each build of the DLL so I can't generate one for an old version. I can only really suggest updating to the latest version. There could be a few breaking changes however, depending on what features you're using. Also, the earliest framework supported is now .NET Framework 4.6.2. If you're using an earlier framework and don't want to upgrade your project to a new framework, let me know what version you're targeting. I might be able to suggest an alternative version of the DLL that supports the framework you're using. Paul -
IndexOutOfRangeException when calling Process()
Paul Henty replied to AirPanther's topic in FSUIPC Client DLL for .NET
Hi Robert, It's difficult to tell from that error. What version of the DLL are you using? Can you make sure you have the fsuipcClient.pdb file in the folder you run your application from. This should make it so the line number from my DLL is reported in the stack trace. That would help a lot. Visual Studio usually copies the pdb file to the build folder (e.g. bin/release). Paul -
PMDG 737 in MSFS missing probe heat switches
Paul Henty replied to Andy B.'s topic in FSUIPC Client DLL for .NET
Hi Andy, In the PMDG_737_NGX_Offsets class there is: ICE_TestProbeHeatSw[2] In the PMDG SDK this data is called ICE_ProbeHeatSw. My DLL takes the names from John's FSUIPC Documentation for the PMDG Offsets, not from the PMDG SDK. I don't know why the FSUIPC name is different in this case. Paul -
fsuipc node.js module/event listeners
Paul Henty replied to Benl112's topic in FSUIPC Support Pete Dowson Modules
Polling can't be avoided with FSUIPC because the protocol is based on polling. Applications that use FSUIPC are meant to constantly poll for look for changes. As John says, my Websocket Server does have an event-driven model, but it has to use polling in the background to monitor for changed values. The developer can choose the polling rate. My C# DLL does not have an event model for offsets (only LVars which uses John's LVar WAPI server and not FSUIPC). If you're comfortable using the Node.JS SDK for FSUIPC then you should probably stick with that and just use polling. FSUIPC can comfortably handle requests every 40ms, maybe faster on modern hardware. The only reason I can see to use another SDK is if the Node.JS wrapper is too slow to manage this rate of polling for some reason. Paul