1. -- 
  2. -- Uwe R. Zimmer, Australia, July 2011 
  3. -- 
  4.  
  5. with Swarm_Structures_Base;      use Swarm_Structures_Base; 
  6. with Vectors_3D;                 use Vectors_3D; 
  7. with Vehicle_Message_Type;       use Vehicle_Message_Type; 
  8.  
  9. package Vehicle_Interface is 
  10.  
  11.    function Position     return Positions; 
  12.    function Velocity     return Velocities; 
  13.    function Acceleration return Accelerations; 
  14.  
  15.    procedure Set_Destination (V : Vector_3D); 
  16.    procedure Set_Throttle    (T : Throttle_T); 
  17.    -- Throttle automatically switched to Idle_Throttle is the destination has been reached. 
  18.    function Throttle_Is_On_Idle return Boolean; 
  19.  
  20.    procedure Send    (Message :     Inter_Vehicle_Messages); 
  21.    procedure Receive (Message : out Inter_Vehicle_Messages); -- blocking if no messages 
  22.    function Messages_Waiting return Boolean; 
  23.  
  24.    function Current_Charge    return Vehicle_Charges; 
  25.    function Discharge_Per_Sec return Float; 
  26.  
  27.    function Energy_Globes_Around return Energy_Globes_A; 
  28.  
  29.    procedure Wait_For_Next_Physics_Update; 
  30.    -- blocking until the underlying physics engine updated swarm and globe positions. 
  31.  
  32. end Vehicle_Interface;