Code Monkey home page Code Monkey logo

simforeflightlink's Introduction

SimForeflightLink

A barebones app to send SimConnect data to Foreflight.

Application status

Application Settings:

Settings are currently saved automatically on change. The current settings are the Auto-Connect to SimConnect, Auto-Connect to ForeFlight, and the DirectIP where to send ForeFlight packet.

Note: Autostart is only applicable on application start. Checking the box will not start the conenction by itself; you need to click on the Connect button.

SimConnect:

Currently only works with the local memory pipe. Will add network capabilities in the future. If in an active state, it will keep retrying to connection if it cannot be made or if it drops.

ForeFlight:

Currently supports specified IP. Will add dropdown for network broadcasts as well. IP address entry is not validated and no error handling exists yet, so be sure that there is a valid IP address before hitting 'connect'. For most home networks, to send to the network as a broadcst, replace the last section of the IP address to 255. For example, if your ip address is 192.168.0.45, send the packets to 192.168.0.255.

Also, the Foreflight sender will not send unless all the data is populated.

To Build Locally

Because I have not verified licensing of the SimConnect DLLs, They are not included in this project. For building the application, place both SimConnect.dll and Microsoft.FlightSimulator.SimConnect.dll in the lib folder of the project.

simforeflightlink's People

Contributors

eklynx avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

zenmusic

simforeflightlink's Issues

Auto-start preferences are saved on setting change and loaded/honored on app start.

The SimConnect and ForeFlight link have autostart checkboxes next to the connect buttons. Currently they do nothing and are disabled. Implement the auto start feature for both connections and the preferences that saves/loads the state of both buttons.

Acceptance Criteria.

  • Auto-start checkboxes are enabled
  • Auto-start state is saved on toggle
  • Auto-start state is loaded on application start.
  • SimConnect connection is automatically started when auto-start is enabled
  • ForeFlight connection is automatically started when auto-start is enabled
  • Tests are added as appropriate.

Application hangs for fraction of a second on SimConnect connection attempt.

When trying to establish a SimConnect connection, the application hangs. This is most noticeable when in a reconnection loop.

Steps to Repro:
With the Flight Sim Closed, try to establish a SimConnect connection. Notice the repeated fraction of a second hanging that occurs when the connection is attempted.

Better installer mechanism

Installer is a legacy MSI builder and recommended workflows aren't letting updates be installed without uninstalling first. Make the installer more windows 10 and update friendly.

Acceptance Criteria:

  • installer remains one file
  • installer can update an existing installation without extra steps.

App can detect valid broadcast addresses to use for ForeFlight connection.

The most common way to have data show up in foreflight is for the sender to send to the network broadcast address. We want the foreflight dropdown to populate with all valid network broadcast addresses (ipv4 + ipv6 link local) that can be used. When one of them is selected, it should grey out the manual host text box. The last used settings should be remembered between app restarts. If the previously used

Acceptance Criteria:

  • The Foreflight connection drop down should show "Broadcast: ###.###.###.XXX" for each IPv4 network to use (it should ignore localhost).
  • The Foreflight connection drop down should show "IPv6 Link Local" for a link local connection as the second to last item.
  • The Foreflight connection drop down should show "Direct IP" as the last item.
  • The text box to enter the IP address should be pre-populated with "127.0.0.1" if no valid IP address has been entered before.
  • The text box to enter the IP address should validate the value is a valid IP on focus lost and connection button. If the address is not valid, the status txt should show an error in red and prevent the "connect' button from changing status (should still be clickable). If it is empty and it loses focus/connect button clicked, it should default to "127.0.0.1".
  • If the network broadcast option that was last used no longer exist, it should still show up in the dropdown box along the currently valid ones. It should remain in there until app shutdown with a different network option selected at which point it should forget the network until it shows up again.
  • The network list should refresh on app app start and every time the dropdown is expanded. If there is too large a performance hit, it should refresh every 5 seconds instead while the foreflight link is disconnected and not at all if the foreflight link is active.

Local traffic is sent to foreflight

Foreflight supports traffic being added from the remote source. Determine the best way to retrieve traffic from SimConnect, keep track of local traffic and sending them to ForeFlight.

Acceptance Criteria:

  1. All planes in Flight Simulator that are within 50NM (set as property so we can configure in future) are shown in foreflight.

Attitude direction wrong

Hi- just tested this, and it works great!

One problem I noticed- when displaying the Attitude screen on foreflight, the bank shown/drawn is opposite of the actual bank angle of the plane. Other than this, it worked great!

Update notification

Add a mechanism when an update is available. Optionally: self-update

Acceptance Criteria:

  • if an update is available, notify the user.
  • Optional: self-update.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.