1. -- Suggestions for packages which might be useful: 
  2.  
  3. --  with Ada.Real_Time;              use Ada.Real_Time; 
  4. --  with Ada.Text_IO;                use Ada.Text_IO; 
  5. with Exceptions;                 use Exceptions; 
  6. --  with Real_Type;                  use Real_Type; 
  7. --  with Generic_Sliding_Statistics; 
  8. --  with Rotations;                  use Rotations; 
  9. --  with Vectors_3D;                 use Vectors_3D; 
  10. with Vehicle_Interface;          use Vehicle_Interface; 
  11. --  with Vehicle_Message_Type;       use Vehicle_Message_Type; 
  12. --  with Swarm_Structures;           use Swarm_Structures; 
  13. --  with Ada.Text_IO; use Ada.Text_IO; 
  14.  
  15. package body Vehicle_Task_Type is 
  16.  
  17.    task body Vehicle_Task is 
  18.  
  19.       Vehicle_No : Positive; pragma Unreferenced (Vehicle_No); 
  20.       -- You will want to take the pragma out, once you use the "Vehicle_No" 
  21.  
  22.    begin 
  23.  
  24.       -- You need to react to this call and provide your task_id. 
  25.       -- You can e.g. employ the assigned vehicle number (Vehicle_No) 
  26.       -- in communications with other vehicles. 
  27.  
  28.       accept Identify (Set_Vehicle_No : Positive; Local_Task_Id : out Task_Id) do 
  29.          Vehicle_No     := Set_Vehicle_No; 
  30.          Local_Task_Id  := Current_Task; 
  31.       end Identify; 
  32.  
  33.       -- Replace the rest of this task with your own code. 
  34.       -- Maybe synchronizing on an external event clock like "Wait_For_Next_Physics_Update", 
  35.       -- yet you can synchronize on e.g. the real-time clock as well. 
  36.  
  37.       -- Without control this vehicle will go for its natural swarming instinct. 
  38.  
  39.       select 
  40.  
  41.          Flight_Termination.Stop; 
  42.  
  43.       then abort 
  44.  
  45.          Outer_task_loop : loop 
  46.  
  47.             Wait_For_Next_Physics_Update; 
  48.  
  49.             -- Your vehicle should respond to the world here: sense, listen, talk, act? 
  50.  
  51.          end loop Outer_task_loop; 
  52.  
  53.       end select; 
  54.  
  55.    exception 
  56.       when E : others => Show_Exception (E); 
  57.  
  58.    end Vehicle_Task; 
  59.  
  60. end Vehicle_Task_Type;