Jump to content
The simFlight Network Forums

Andy B.

Members
  • Posts

    41
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by Andy B.

  1. Oh, nevermind. I didn't see your line that said the test switches mapped to the probe heat switches. Guess I should use the test switches then 🙂
  2. So, what should I use for the probe heat switches, the test probe heat switches, or something else?
  3. Hi, I am working on Talking flight monitor and the PMDG 737. I noticed that the anti-ice probe heat switches are missing. Is it possible to add them to the library?
  4. This fix worked. I also threw the MakeRwys.exe process and the BuildAirportsDatabase methods on different tasks.
  5. After running BuildAirportsDatabaseAsync through the debugger, I found this stack trace. I don't understand where it came from, or why it is causing problems. I have 229GB left on my internal drive and over 3TB on my external. I also have 16GB of memory and 8GB of dedicated video memory. In the event this process is blowing out my memory, is there another way that isn't as resource intence? System.ComponentModel.Win32Exception HResult=0x80004005 Message=Not enough quota is available to process this command. Source=WindowsBase StackTrace: at MS.Win32.UnsafeNativeMethods.PostMessage(HandleRef hwnd, WindowMessage msg, IntPtr wparam, IntPtr lparam) at System.Windows.Interop.HwndTarget.UpdateWindowSettings(Boolean enableRenderTarget, Nullable`1 channelSet) at System.Windows.Interop.HwndTarget.UpdateWindowPos(IntPtr lParam) at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam) at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs) at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
  6. Here is the log. BuildAirportsDatabaseAsync never makes it to the build part for some reason. Last log entry was just before the db.MakeRunwaysFiles check. Here is the log. [Info]: Loading screen reader driver.: [tfm.App.Application_Startup]: [2023-09-18 18:16] [Debug]: Deleting existing MSFS make runways output folder.: [tfm.App.RunMakeRunways]: [2023-09-18 18:16] [Debug]: Creating MSFS make runways output folder.: [tfm.App.RunMakeRunways]: [2023-09-18 18:16] [Debug]: Copying C:\Users\a_bor\Documents\GitHub\talking-flight-monitor\source\bin\Debug\net7.0-windows\data\MakeRwys\MakeRwys.exe to C:\Users\a_bor\AppData\Local\tfm\Make runways\MSFS\MakeRwys.exe.: [tfm.App.RunMakeRunways]: [2023-09-18 18:16] [Debug]: Waiting for make runways to finish.: [tfm.App.RunMakeRunways]: [2023-09-18 18:16] [Debug]: Getting a copy of the current airports database.: [tfm.App.BuildAirportsDatabaseAsync]: [2023-09-18 18:40] [Debug]: Assigned MSFS make runways output folder: C:\Users\a_bor\AppData\Local\tfm\Make runways\MSFS.: [tfm.App.BuildAirportsDatabaseAsync]: [2023-09-18 18:40] [Debug]: Assigned MSFS airports database folder: C:\Users\a_bor\AppData\Local\tfm\Airports database\MSFS: [tfm.App.BuildAirportsDatabaseAsync]: [2023-09-18 18:40]
  7. Some additional info. I tried running the feature again. Everything works as expected with the BuildAirportsDatabaseAsync method until it creates the airports database location (for the binary files). After that, the app dies with no notice to the user.
  8. I have two methods: RunMakeRunways that takes a parameter from a WPF dialog asking the user to choose a simulator to build the database for. After choosing, then browsing to the P3D install folder if required, pressing the OK button launches a process that runs MakeRwys.exe in the proper location. In case of MSFS, %localappdata%\tfm\Make runways\MSFS. In P3D's case, the install folder with the working path for the process set to the P3D install folder. Once the RunMakeRunways method is complete (it finishes the MakeRwys.exe process), it bases the original simulator choice to BuildAirportsDatabaseAsync (the method in the previous post). Now, in the case of if(simulator == "P3D") block, everything works as expected. As for the if(simulator == "MSFS") block, I have done the following: * Put logging statements after every line of code. * Ran it through the debugger, which strangely works as expected. * Ran it outside of the debugger and get this strange behavior. * Consulted AI models with no luck. At the end of the entire process, the message box is supposed to show how many airports were loaded. Unfortunately, when passing "MSFS" to BuildAirportsDatabaseAsync, execution apparently stops at the line: var db = FSUIPCConnection.AirportsDatabase; The next log statement never appears, and Talking flight monitor is no longer running. No errors or exceptions.
  9. Hi, I tried building and loading the database offline. It works for P3D, but not MSFS. Here is my BuildAirportsAsync method where the "P3D" condition suceeds and the "MSFS" condition fails. In fact, when "MSFS" is passed into this method, db = FSUIPCConnection.AirportsDatabase fails, and the method stops working with no errors or exceptions. What might be wrong? public static async void BuildAirportsDatabaseAsync(string simulator) { // In case a simulator is running, clear the database before rebuilding. if (FSUIPCConnection.IsOpen) { if (FSUIPCConnection.AirportsDatabase.IsLoaded) { FSUIPCConnection.AirportsDatabase.Clear(); } } try { var db = FSUIPCConnection.AirportsDatabase; if (simulator == "MSFS") { db.MakeRunwaysFolder = msfsMakeRunwaysOutputPath; db.DatabaseFolder = msfsAirportsDatabaseFolder; } if(simulator == "P3D") { db.DatabaseFolder = p3dAirportsDatabaseFolder; db.MakeRunwaysFolder = p3dMakeRunwaysOutputPath; } if (db.MakeRunwaysFilesExist) { await db.RebuildDatabaseAsync(); db.Load(); System.Windows.MessageBox.Show($"{simulator} airports build successfully. Total {db.Airports.Count}"); logger.Info($"{simulator} airports build successfully. Total {db.Airports.Count}"); } } catch(FSUIPCException x) { System.Windows.MessageBox.Show($"{x.Message}"); } }
  10. Hi, I am putting in Talking flight monitor a way to automatically run make runways after choosing a simulater, mainly MSFS and P3D. Running it for MSFS is easy: Just put MakeRwys.exe wherever you want, then start it. P3D is a little more complicated. One of the steps includes copying the output files from one location to another. Is there a way that you could include a feature to copy all of the output files from one location to another?
  11. Hi, I am rebuilding Talking flight monitor with WPF, C#, and dotnet 7. I am trying to rebuild the airports database while disconnected from a simulator. I figured I would try MSFS first because it is easier to code for in this sense. Whenever I try to create or otherwise access the database, I get a null reference exception saying that the database doesn't exist. Here is my build database method. The msfs/p3d database and make runways variables are pointing to the desired path. So, how would I be able to build the database files offline? public static async void BuildAirportsDatabaseAsync(string simulator) { // In case a simulator is running, clear the database before rebuilding. if (FSUIPCConnection.IsOpen) { if (FSUIPCConnection.AirportsDatabase.IsLoaded) { FSUIPCConnection.AirportsDatabase.Clear(); } } try { var db = FSUIPCConnection.AirportsDatabase; if (simulator == "MSFS") { db.MakeRunwaysFolder = msfsMakeRunwaysOutputPath; db.DatabaseFolder = msfsAirportsDatabaseFolder; } if (db.MakeRunwaysFilesExist) { await db.RebuildDatabaseAsync(); System.Windows.MessageBox.Show($"MSFS airports build successfully. Total {db.Airports.Count}"); logger.Info($"MSFS airports build successfully. Total {db.Airports.Count}"); } } catch(FSUIPCException x) { System.Windows.MessageBox.Show($"{x.Message}"); } }
  12. Hi, Around a week ago, I started asking Open AI chat (now Open GPT) some questions about the PMDG 737 and some parameters for undocumented events such as the events that control the efis or hgs. It returned a very large laundry list of offsets for the efis and hgs. This prompted me to ask it other questions about event parameters and offsets that weren't documented anywhere that I know about. Some systems I asked about were icas, the du displays, the efis, hgs, isd, flight path, nd, and the map. It returned lists upon lists of offsets. The more I asked, the more it gave. Are these valid systems that have offsets that we can use, or is Open AI misleading me? I tried some of its recommended icas offsets in private, and everything works. I don't want to publish the offset memory blocks in case they shouldn't make it into the wild, but am wondering if we could use them?
  13. Hi, I am wondering if there is a way to track the 3 dimensional aspect of clouds? At the moment, we can get the height of a cloud layer, but are interested in getting its length and width. Is this possible, or will we have to deal with using only the height?
  14. Hi, I noticed that the PMDG 747's Overhead Maint/EEC panel has ch selectors. Unfortunately, TFM's users can't read the selectors values as they press the selectors in TFM. Is there some way to read the values of the ch selectors so I can put the values in a more usable form? What are the possible values for these selectors?
  15. Hi, Talking flight monitor users want to experience the weather with automatic announcements of weather changes. For example, some users are interested in knowing when the aircraft enters/exits a cloud. They want to know what type of cloud it is and if it is raining/snowing/hailing/sleeting and so on. They also want to know if it is possible to get a polygon of GPS coordinates (3d) of a storm, cloud, or other weather event. This will help them be able to request diversions from ATC. Is this possible with the FSUIPC .net library? If not, what would it take to add something that can do this?
  16. Hi, While adding events to Talking flight monitor, I found that the towing power event is missing. Here is the line from the PMDG 747 SDK. #define EVT_OH_ELEC_TOWING_PWR (THIRD_PARTY_EVENT_ID_MIN + 287) // 747-8 Can you add this event?
  17. I got rebuild to work. The startup routine now works - lets you know if it failed and to see the logs for more, or that it successfully loaded. I also have rewritten a few database features and am getting used to how the new layout works. Thanks for the help and rewrite!
  18. Hi, Your sample worked and the following code will load the database once built. Unfortunately, it doesn't rebuild it for the first time. public static async void LoadAirportsDatabase() { if (FSUIPCConnection.IsOpen) { AirportsDatabase database = FSUIPCConnection.AirportsDatabase; database.MakeRunwaysFolder = Properties.Settings.Default.P3DAirportsDatabasePath; if(database.MakeRunwaysFilesExist && database.DatabaseFilesExist == false) { await database.RebuildDatabaseAsync(); } else if (database.DatabaseFilesExist) { database.Load(); } if (database.IsLoaded) { Tolk.Output("Airports database loaded."); } } // open connection. } // LoadAirportsDatabase
  19. Hi, To answer your questions, We are using .net 4.8 and we aren't using the progress class. Our database loading routine uses tolk to speak the status of database loading.
  20. Hi, I tried rebuilding the main routine that loads the database for TFM. Unfortunately, we aren't getting any response from RebuildDatabaseAsync. It seems to get stuck for some reason. I then built and ran the sample code to see if pressing the rebuild database button would work. I ended up getting the unhandled exception window with the following contents. I imagine this is the same problem we are having in TFM. How should I fix this problem? Note: I tried installing protobuf-net in gnuget, but it says it is already installed. See the end of this message for details on invoking just-in-time (JIT) debugging instead of this dialog box. ************** Exception Text ************** System.IO.FileNotFoundException: Could not load file or assembly 'protobuf-net, Version=3.0.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67' or one of its dependencies. The system cannot find the file specified. File name: 'protobuf-net, Version=3.0.0.0, Culture=neutral, PublicKeyToken=257b51d87d2e4d67' at FSUIPC.DataStore.WriteList[T](String fileName, IEnumerable`1 ObjectsToStore) at FSUIPC.AirportsDatabase.importRunwaysAndAirports(Int32 taskIndex, IProgress`1 progress) at System.Threading.Tasks.Task.Execute() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at FSUIPC.AirportsDatabase.<RebuildDatabaseAsync>d__53.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter.GetResult() at FSUIPCExampleCode_CS.AirportDatabase.DB001_ManagingTheDatabase.<btnRebuild_Click>d__0.MoveNext() in C:\Users\Andy Borka\source\repos\fsuipc samples\FSUIPCExampleCode_CS\AirportDatabase\DB001_ManagingTheDatabase.cs:line 71 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() WRN: Assembly binding logging is turned OFF. To enable assembly bind failure logging, set the registry value [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD) to 1. Note: There is some performance penalty associated with assembly bind failure logging. To turn this feature off, remove the registry value [HKLM\Software\Microsoft\Fusion!EnableLog]. ************** Loaded Assemblies ************** mscorlib Assembly Version: 4.0.0.0 Win32 Version: 4.8.9105.0 built by: NET481REL1LAST_C CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll ---------------------------------------- FSUIPCExampleCode_CS Assembly Version: 1.4.0.0 Win32 Version: 1.4.0.0 CodeBase: file:///C:/Users/Andy%20Borka/source/repos/fsuipc%20samples/FSUIPCExampleCode_CS/bin/Debug/FSUIPCExampleCode_CS.exe ---------------------------------------- System.Windows.Forms Assembly Version: 4.0.0.0 Win32 Version: 4.8.9075.0 built by: NET481REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ---------------------------------------- System Assembly Version: 4.0.0.0 Win32 Version: 4.8.9065.0 built by: NET481REL1LAST_C CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll ---------------------------------------- System.Drawing Assembly Version: 4.0.0.0 Win32 Version: 4.8.9032.0 built by: NET481REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll ---------------------------------------- System.Configuration Assembly Version: 4.0.0.0 Win32 Version: 4.8.9032.0 built by: NET481REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll ---------------------------------------- System.Core Assembly Version: 4.0.0.0 Win32 Version: 4.8.9115.0 built by: NET481REL1LAST_B CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll ---------------------------------------- System.Xml Assembly Version: 4.0.0.0 Win32 Version: 4.8.9032.0 built by: NET481REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll ---------------------------------------- fsuipcClient Assembly Version: 3.3.1.401 Win32 Version: 3.3.1.401 CodeBase: file:///C:/Users/Andy%20Borka/source/repos/fsuipc%20samples/FSUIPCExampleCode_CS/bin/Debug/fsuipcClient.DLL ---------------------------------------- Newtonsoft.Json Assembly Version: 13.0.0.0 Win32 Version: 13.0.1.25517 CodeBase: file:///C:/Users/Andy%20Borka/source/repos/fsuipc%20samples/FSUIPCExampleCode_CS/bin/Debug/Newtonsoft.Json.DLL ---------------------------------------- System.Numerics Assembly Version: 4.0.0.0 Win32 Version: 4.8.9032.0 built by: NET481REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll ---------------------------------------- System.Runtime.Serialization Assembly Version: 4.0.0.0 Win32 Version: 4.8.9032.0 built by: NET481REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Serialization/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Serialization.dll ---------------------------------------- System.Data Assembly Version: 4.0.0.0 Win32 Version: 4.8.9110.0 built by: NET481REL1LAST_B CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll ---------------------------------------- Accessibility Assembly Version: 4.0.0.0 Win32 Version: 4.8.9032.0 built by: NET481REL1 CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll ---------------------------------------- ************** JIT Debugging ************** To enable just-in-time (JIT) debugging, the .config file for this application or computer (machine.config) must have the jitDebugging value set in the system.windows.forms section. The application must also be compiled with debugging enabled. For example: <configuration> <system.windows.forms jitDebugging="true" /> </configuration> When JIT debugging is enabled, any unhandled exception will be sent to the JIT debugger registered on the computer rather than be handled by this dialog box.
  21. Hi, While working through the PMDG747 SDK, I found the following problem. In the Overhead Maint section of the SDK, they have the following line: bool ELEC_APUFieldReset[2]; They also have both events, one for each offset. Unfortunately, the FSUIPC dll only supports one of these, and leaves the other out. I can give users a workaround, but it isn't something we want to support longterm.
  22. We were planning on it at some point in time. Unfortunately, things didn't look too good for that feature.
  23. We can try by lat/long and see if we can calculate the distance/GS. I can dropbox you a link to a zipfile of my makerunways output a little later.
  24. Hi Paul, We have a feature in Talking flight monitor that takes the ILS needles on the aircraft and turns them into bits of information the pilot can understand as a blind pilot. For example, the GS needle is announced in terms of feet relative to the aircraft. EX: 500feet up/down. The localizer needle is represented in terms of heading offsets. EX: 60 left/right. In our main process timer, I have the following line of code: // Track the user so we don't have to do it on every request. FSUIPCConnection.AirportsDatabase.SetReferenceLocation(); This line is ran every 250ms, which makes MSFS buffer. OBS log analyzer output tells the typical user that TFM is forcing the GPU into a 15% or larger lag. Is there any other way to constantly track the users location in the world? It is also worth noting that the makerunways output for MSFS is around 800MB in size.
×
×
  • 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.