RemoteTech icon indicating copy to clipboard operation
RemoteTech copied to clipboard

SAS does not work when out of contact

Open Starstrider42 opened this issue 11 years ago • 5 comments

I've found a bug in the build-develop-47 release while testing for #147. When a ship has no connection, it never tries to slew, even when SAS should try to cancel its rotation.

To reproduce:

  • Open the save file at https://gist.github.com/Starstrider42/8cfbcb12800aa8d3786a
  • Go to the tracking station and fly the only mission there
  • Spin the ship in various directions until it passes out of contact

SAS will try to counter the spin so long as the satellite is over the horizon from KSC, but it will have no effect once the satellite sets.

Starstrider42 avatar Aug 07 '14 04:08 Starstrider42

Did some research and I can reproduce this bug in 0.23.5 and RT 1.3.3 as well as in later versions. So it's a bit strange that this bug wasn't noticed before. On the bright side, it means @Peppie23 is probably on the right track about it being a flaw in how RT handles locks.

Starstrider42 avatar Aug 09 '14 04:08 Starstrider42

Strange this was never noticed. Going from the top of my head, RT inserts itself into the OnFlyByWire delegates and resets it if there's no connection. This would indeed mean SAS is then ignored, although I can't exactly recall how SAS is handled. (per-Vessel VesselSAS Object?).

You could rearrange the FlyByWire hooks to execute SAS first, or come up with a way to use the SanctionedPilot system I had in place for kOS to manually execute the SAS routine.

I've got some spare time these days so if anyone has design questions about RT, hit me up via email and Ill try my best to answer it to speed up development.

ghost avatar Aug 09 '14 09:08 ghost

Not fixed as of build-develop-102. Moving the lock call didn't help.

Starstrider42 avatar Oct 04 '14 20:10 Starstrider42

This bug is still present in RT 1.8.12 and KSP 1.4.4. The inputs from SAS/Autopilot is not taken/neutralized in these methods in FlightComputer.cs when the connection is lost

  • PopFlightCtrl (initial blank FlightControlState)
  • OnFlyByWirePost (fcs.Neutralize())

Frankly, I am not eager to find and close another difficult worm can of loopholes (such as players can press WASDQE in absence of working connection), if I try to fix.

Besides, it doesn't seem to be a dealbreaker anyway.

KSP-TaxiService avatar Jul 21 '18 17:07 KSP-TaxiService

RemoteTech doesn't obey "Require Signal for Control" setting

Monniasza avatar Sep 08 '19 12:09 Monniasza