37 lines
1.1 KiB
Python
37 lines
1.1 KiB
Python
from time import sleep
|
|
|
|
from .utils import kill_relative_velocity, kill_relative_velocity_rcs, correct_course, magnitude
|
|
|
|
from . import Maneuver
|
|
|
|
|
|
class DockingManeuver(Maneuver):
|
|
def __init__(self, conn, mission_control, docking_port, target_docking_port):
|
|
super().__init__(conn, mission_control)
|
|
self.mech_jeb = conn.mech_jeb
|
|
self.docking_port = docking_port
|
|
self.target_docking_port = target_docking_port
|
|
|
|
def start(self):
|
|
vessel = self.conn.space_center.active_vessel
|
|
|
|
self.conn.space_center.active_vessel = self.mission_control.vessel
|
|
vessel.parts.controlling = self.docking_port.part
|
|
self.conn.space_center.target_docking_port = self.target_docking_port
|
|
|
|
da = self.mech_jeb.docking_autopilot
|
|
da.speed_limit = 10
|
|
da.roll = 0
|
|
da.force_roll = True
|
|
da.enabled = True
|
|
|
|
sleep(1)
|
|
|
|
with self.conn.stream(getattr, da, "enabled") as enabled:
|
|
enabled.rate = 1
|
|
with enabled.condition:
|
|
while enabled():
|
|
enabled.wait()
|
|
|
|
return True
|