Andy B.
-
Posts
41 -
Joined
-
Last visited
-
Days Won
1
Content Type
Profiles
Forums
Events
Gallery
Downloads
Posts posted by Andy B.
-
-
So, what should I use for the probe heat switches, the test probe heat switches, or something else?
Â
-
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?
-
This fix worked. I also threw the MakeRwys.exe process and the BuildAirportsDatabase methods on different tasks.
- 1
-
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)
 -
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]
 -
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.
-
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.
-
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}");
      }
      Â
            }
 -
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?
-
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}");
  }
  Â
        }
 -
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?
-
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?
-
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?
-
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?
Â
-
Is there a way to see what ones you added?
-
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?
-
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!
- 1
-
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
 -
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.
Â
-
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.
 -
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.
-
We were planning on it at some point in time. Unfortunately, things didn't look too good for that feature.
-
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.
- 1
-
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.
PMDG 737 in MSFS missing probe heat switches
in FSUIPC Client DLL for .NET
Posted
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 🙂