till213 / SkyDolly

Sky Dolly connects with Flight Simulator 2020 and records the flight path and basic instruments for replay.
MIT License
79 stars 10 forks source link

IGC file format support (import / export) #15

Closed scls19fr closed 2 years ago

scls19fr commented 2 years ago

Is your feature request related to a problem? Please describe.

Following discussion

https://forums.flightsimulator.com/t/sky-dolly-v0-8-flightaware-kml-import-visualise-replay-real-world-flights/405367/12?u=scls19fr

IGC file format is widely used by glider pilots

Describe the solution you'd like

Supporting IGC both as import and export could be an important feature to have (especialy for glider pilots).

See Technical specification for GNSS flight recorders from international gliding commission (FAI)

https://www.fai.org/page/igc-free-software https://www.fai.org/sites/default/files/igc_fr_specification_2020-11-25_with_al6.pdf

till213 commented 2 years ago

Note to myself: the most important data (position, altitude, possibly timestamp) are in the so-called „B records“.

scls19fr commented 2 years ago

Some IGC parser implementations using several differents languages exist

https://github.com/topics/igc

C++ implementations can be found using

https://github.com/topics/igc?l=c%2B%2B

be aware that some implementations are released under GPL (so it could be a problem if you want to keep MIT license)... but I'm pretty sure you will find a simple manner of implementing B records parsing.

scls19fr commented 2 years ago

B records provide time (not date) so for full knowledge of timestamp (ie date and time) you need to also parse HFDTEddmmyy record (H=header)

I have never flown during night (above 00:00) but I think it's important to ensure timestamp are always increasing (if time is not increasing it's because that's a point which should be attached to another day).

till213 commented 2 years ago

I am not promising any timeline here, but...

https://github.com/till213/SkyDolly/tree/feature-igc

(feature branch with initial import plugin just created).

By the way, is there really a need for an export plugin? What would be the use case here? You can already visualise flight paths exported in KML format (with Google Earth and others)?

scls19fr commented 2 years ago

Having built in IGC import will be very convenient. Maybe you are right @till213 maybe export to IGC is not necessary as KML export exist and some tools can convert KML files to IGC... But it simplifies creation of such IGC file without the need of an other tools.

till213 commented 2 years ago

Jesus Christ! Already parsing the date of the flight becomes an adventure alone (note to myself):

Oh, the joy of verbose text formats ;)

scls19fr commented 2 years ago

I'm sorry.... I'm not author of this format... Just a simple user 😆

till213 commented 2 years ago

A basic IGC import plugin has been implemented and downbranched into the current release v0.8.6 (see "Releases").

Current limitations & known issues

scls19fr commented 2 years ago

I'm wondering which aircraft do you use. I have Schempp-Hirth Discus-2c installed in my community folder but couldn't find it in Aircraft list in Sky Dolly when selecting File / Import / IGC

till213 commented 2 years ago

Sky Dolly does not actually scan your Community folder ;) So in order to have an aircraft selectable in the dropdown list (of the import dialog) you have to record at least one (dummy) flight with it.

Or in other words: the already selectable aircraft are "pre-installed" in each "logbook" (database), as a courtesy of the developer (me ;)). They represent all aircraft that come "out of the box" with the Premium Deluxe variant of MSFS.

Any additional (third-party) aircraft is added ("upsert") as soon as it is recorded (only).

Does that help?

scls19fr commented 2 years ago

Thanks. I will record a flight with this glider.

till213 commented 2 years ago

By the way:

https://github.com/till213/SkyDolly/blob/feature-iep/CHANGELOG.md

;)

Note that this is still a feature branch"iep" (= "import/export plugins") for the upcoming v0.9 - no date yet set ;)

P.S. If you happen to be some real-world glider pilot - or are otherwise attached to some aviation friends / clubs - please feel free to make some noise for Sky Dolly ;)

till213 commented 2 years ago

A new IGC export plugin has just been merged into the current MAIN branch (for the upcoming 0.9 release - no release date set).

Both the IGC import and export plugin will received some more minor features (keyword: environmental noise level -> engine start/stop) and fine-tuning, but are both functional at this point.

If you want to test those features you can build Sky Dolly MAIN branch, as described in the BUILD.md instructions.

I will hence close this issue for now.