Jump to content
The simFlight Network Forums

Andy B.

Members
  • Posts

    46
  • Joined

  • Last visited

  • Days Won

    2

Posts posted by Andy B.

  1. 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.


     

  2. 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.

  3. 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.

  4. Is it possible to have the PMDG 737 offsets for msfs and p3d/fsx combined in the same class? The new class would determine what version of FSUIPC is loaded, then make public the appropriate offset? Example: If we are running FSUIPC 7, give us the offsets for msfs. Otherwise, give us the offsets for p3d/fsx. It would make our project more streamlined and prevent us from having to maintain duplicate projects for a single line of code.

     

  5. I tried the new PMDG 737 MSFS offsets yesterday. Everything seems to be working just fine. The only problem is an error I get while building with the MSFS offsets. It appears the PMDG 737 SDK states that irs_display_left and irs_display_right are character strings as they were for P3D. Building the project gives me the following error:

     

    Cannot convert Offset<byte> to string.

     

    The code referenced is below:

     

    leftIRSDisplayTextBox.Text = Aircraft.PMDG737.IRS_DISPLAY_LEFT.Value;

    rightIRSDisplayTextBox.Text = Aircraft.PMDG737.IRS_DISPLAY_RIGHT.Value;

     

    Is it possible to fix this?

  6. Hi,

     

    I am trying to create a "look around" feature in Talking flight monitor. The feature allows a pilot to choose a specific heading, 128 for example. Once that is done, the pilot would then have a choice on what to receive. Distance to the next polygon (geographical area) and its name, or a list of all polygons and their names in the current direction (128 in this example). Other features might come later, but it depends on whether I can get the basic framework working. What I can do so far, is get a polygon from Bing maps. Beyond this, I am stuck. Does anyone have any ideas on how to move forward with this feature?

     

  7. Hi,

     

    Our application needs to build a network of taxiways at the airport where a pilot is currently located. As they taxi, the application needs to keep in mind the following points:

     

    * Announce with a screen reader such as NVDA, the current taxiway as the pilot moves onto it.

    * Keep track of the pilot's movements along the taxiways, then announce the new taxiway in front of them.

    * Provide directional guidance on the upcoming taxiway such as 'taxiway alpha to the left and right.', or 'taxiway bravo 1 O' clock to the right.'.

    * Announce to the pilot when they have strayed off of the taxiway such as veering into the grass.

    * Announce runways as they appear as intersections to the current taxiway in the event the pilot doesn't have RAS professional installed.

    * Automatically announce the distance in feet to the next intersection when they are 500 feet or less from that intersection.

     

    I know the .net library has a taxiways database. However, I am not clear on how to start implementing these features. If anyone has any starter points to try, it would be appreciated. Announcing with speech isn't a problem, as long as I can get the taxiway network built and understand how it works.

     

  8. Hi,

     

    I have a class called SingleStateToggle that has properties for offset, name (string that is self-assigned), AvaliableStates (0=off, 1=on, etc...), CurrentState (KeyValue pair of byte/string), and a few additional properties. When creating an instance of SingleStateToggle, the offset I assign doesn't change values when trying to find the KeyValue<byte, string> pair for the CurrentState. Here is some code to demonstrate my problem:

     

    SingleStateToggle:

    using FSUIPC;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace tfm.PMDG.PanelObjects
    {
        class SingleStateToggle: PanelObject
        {

            private Offset<byte> _offset;
            private PanelObjectType _type = PanelObjectType.SingleState;
                    private Dictionary<byte, string> _availableStates = null;
            private KeyValuePair<byte, string> _currentState;

            public Dictionary<byte, string> AvailableStates { get => _availableStates; set => _availableStates = value; }
            public KeyValuePair<byte, string> CurrentState
            {

    // Try to retreive the KeyValue pair that matches offset.value.
                get
                {
                    KeyValuePair<byte, string> item = new KeyValuePair<byte, string>();
                    foreach (KeyValuePair<byte, string> pair in this._availableStates)
                    {
                                                                    if (This._offset.Value == pair.Key)
                            {
                                item = pair;
                            break;
                            }
                        }
                                                        
                    return item;
                } // End Get    
            } // End CurrentState.
                    public override PanelObjectType Type => this._type;

            public Offset<byte> Offset { get => _offset; set => _offset =  value; }

            public override string ToString()
            {
                    return $"{this.Name}: {this.CurrentState.Value}";
                                    } // End ToString.
               } // End SingleStateToggle.
    }// End namespace.
     

     

    In a class for the PMDG 777, I have the following code:

    using tfm.PMDG;
    using tfm.PMDG.PanelObjects;
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;

    namespace tfm
    {
    static      class PMDG777
        {
    public static  PanelObject[] PanelControls
            {
                get => new PanelObject[]
                {
                    new SingleStateToggle {Offset = Aircraft.pmdg777.BRAKES_ParkingBrakeLeverOn, Name = "Parking break", Verbosity = AircraftVerbosity.Low, PanelName = "Forward", PanelSection = "CDU", AvailableStates = new Dictionary<byte, string> { { 1, "on" }, { 0, "off" }, },  },

                };
            }
        } // End PMDG777 class.
    } // End namespace.
     

    After putting a breakpoint on SingleStateToggle.CurrentState, nothing happens except the foreach loop runs multiple times before dceiding that 0 is always the _offset.Value value. We do have the timer that runs the process method for all the offsets. Do you have any ideas why _offset.Value never changes?

  9. Hi,

     

    I would certainly leave those options available. Our current mapping system uses a class to represent a coordinate pare, so the order doesn't really matter. Here is some sample code to demonstrate the GeoDataLocation class:

     

    var request = new GetBoundaryRequest()
                {
                    EntityType = BoundaryEntityType.PopulatedPlace,
                    LevelOfDetail = 3,
                    GetAllPolygons = true,
                    GetEntityMetadata = true,
                    Coordinate = new GeodataLocation(43.7001, -79.4163),
                }; // End request.
                var response = await GeodataManager.GetBoundary(request, "api key goes here");
                MessageBox.Show(response[0].Name.EntityName + response[0].EntityMetadata.PopulationClass).ToString();

                foreach (GeodataPolygon location in response[0].GetPolygons())
                {
                    foreach(GeodataLocation point in location.ExteriorRing)
                    {
                        latLongListBox.Items.Add($"{point.Latitude}, {point.Longitude}");
                    }
                }
            }

  10. Hi,

     

    I am the one working on this part of the project. To make clear, the lat/long of the plane is the only known constant. I will not know when, or where the points on the outline will appear in relation to the airplane. So, if I am flying heading 0, and want to take a "look" at heading 5, I will not know what points will appear at the given heading. This does solve 90% of our problems. The only thing left to figure out is the names of major bodies of water, given a GPS lat/long pair. At this point, Bing maps doesn't do this.

×
×
  • 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.