Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Engine failing #178

Open
kevinbuckley70 opened this issue Sep 24, 2024 · 5 comments
Open

Engine failing #178

kevinbuckley70 opened this issue Sep 24, 2024 · 5 comments
Assignees
Labels
enhancement New feature or request help wanted Extra attention is needed

Comments

@kevinbuckley70
Copy link

Describe the bug
When replaying a flight with the Milviz C310R twin prop, the engines are started correctly but then randomly one or other just stops. I can usually manually restart the stopped engine whilst the Sky Dolly replay continues. This happens every time.

Today, I am replaying a flight but one of the engines simply won't start. Either by Sky Dolly or manually. If I load an MSFS flight without Sky Dolly, the aircraft is fine. As soon as I load Sky Dolly, everything stops as it forces the aircraft into cold and dark. But after that, the starboard engine cannot be started.

Interestingly, if I fast forward, the engine gauges show correct manifold pressure and rpm. But the engine is not actually running.

I've used Sky Dolly extensively and it's great but it does have this quirk. Usually, I just restart the stopped engine and get on with capturing my post-flight video. But this time I'm stuck as the aircraft is being forced to fly but one prop is actually just windmilling.

To Reproduce
Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots
If applicable, add screenshots to help explain your problem.

Application version:

  • Visible in the "Info / About" dialog
  • Version [e.g. 0.5.0]

Additional context
Add any other context about the problem here.

@till213
Copy link
Owner

till213 commented Sep 29, 2024

Hello, thank you for raising this issue and sorry for my late reply.

The engine is controlled in quite a rudimentary way: essentially Sky Dolly tries to - somewhat heuristically - detect whether the engine is either running or stopped. This is essentially done by reading essentially two simulation variables:

  • General engine starter
  • Combustion

Once Sky Dolly knows (or assumes) that the engine(s) is (are) either running or stopped ("cold and dark") then it either tries to start or stop the engines, by issueing an "auto-start engines" respectively "auto-stop engines" event. In essence what you do in MSFS by pressing CTRL + E (auto-start) and CTRL + SHIFT + E (auto-stop).

This is not optimal, but there is no practical way to try to detect for each custom engine logic (each custom aircraft) whether the engines are running or not, let alone how to reliably start and stop the engines (with the aircraft custom logic, let alone the distinction between propeller, rotor, turboprop, jet, ...). This simple "auto-start/stop" logic together with the detection whether the engines are currently running or not (this is determined each time you push the play button and each time you seek back and forth, e.g. by sliding the timeline) works for most (stock) aircraft though.

Depending on whether there is custom logic or not that requires more than a simple auto-start this may or may not work with certain 3rd-party aircraft.

As I do not own the above mentioned aircraft myself, I have a question:

  • Does auto-start and auto-stop in MSFS (CTRL + E respectively CTRL + SHIFT + E, with the default keyboard layout) work at all with this aircraft?

@till213 till213 self-assigned this Sep 29, 2024
@till213 till213 added enhancement New feature or request help wanted Extra attention is needed labels Sep 29, 2024
@kevinbuckley70
Copy link
Author

kevinbuckley70 commented Sep 29, 2024 via email

@till213
Copy link
Owner

till213 commented Sep 30, 2024

for each engine, you have to select the correct primer switch position, then ...

That's what I thought: a rather sophisticated process, and most importantly specific to this aircraft. And I assume that it even uses what is known as "local variables", that is variables that are specific to this aircraft (in order to implement e.g. a custom engine logic).

While it is now (since several MSFS SDK releases) possible to record (and presumably also replay) those so-called "local variables" (as opposed to "simulation variables" that are "public" and well defined) it is currently out of scope for me to implement aircraft-specific sets of such local variables. Also, those sets could change nilly-willy, at the will (and requirement changes) of the corresponding the 3rd-party aircraft producer.

However I actually already thought about having the option that the user could specify - somehow, e.g. as "comma-separated text list" or so - such "local variables" sets, that would then be dynamically registered (how? -> to be investigated whether possible to define such sets "dynamically at runtime"), recorded and replayed.

(What makes this tricky is that each request / response "struct" (structure) must actually be known and defined at "compile-time", such that the "code knows about the struct member offsets etc. - but I'll look into that, I guess that's solvable).

What would be useful, but maybe not worth the effort, would be the ability to filter/disable certain categories of commands. Such as engine start/stop.

This sounds actually like a good idea: such settings could perhaps even be implemented "per aircraft". I thought about the possibility to define "aircraft mappings" between MSFS 2020 and the upcoming MSFS 2024, such that a "formation flight" recorded with MSFS 2024 specific aircraft could still be replayed in MSFS 2020 (and vice versa) (essentially that when an aircraft cannot be spawned as "AI aircraft" the mapped replacement aircraft would be spawned instead).

In such an "aircraft editor" the options to not record and replay certain variables (such as auto-engine start/stop) could certainly be implemented.

Until such an "aircraft configuration editor" would exist (which is currently lower priority) I could add such an "Enable engine auto-start/stop" option in the Sky Dolly application settings.

I'll think about that... thanks for the suggestion!

In the meantime I would still be curious to know whether auto-start/stop works with the Milviz C310R. Or perhaps anyone knows a more reliable way to detect whether the engine is running (or stopped), and I could improve the code to more reliably send the proper "start engine" or "stop engine" event (in case engine state detection is the problem).

By the way, in the "Simulation Variables" dialog in Sky Dolly (press key V) you will see the following values:

Simulation Variables

If either General engine start or Combustion (or both) is enabled (checked) then Sky Dolly concludes that the engines are running (or about to be running) and issues the mentioned "engine auto-start" event. Otherwise (both disabled) then an "engine auto-stop" event is sent. This is done each time the replay is started (resumed) or a seek on the timeline is done.

Of course this approach is rather simplistic, and does not work for individual engines: so all engines are started (according to the "auto-start" logic that is implemented by the aircraft) or stopped at once.

@kevinbuckley70
Copy link
Author

kevinbuckley70 commented Sep 30, 2024 via email

@kevinbuckley70
Copy link
Author

kevinbuckley70 commented Oct 17, 2024 via email

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

2 participants