31 changed files with 336 additions and 118 deletions
			
			
		@ -0,0 +1,76 @@
				@@ -0,0 +1,76 @@
					 | 
				
			||||
with Types; use Types; | 
				
			||||
 | 
				
			||||
package External with Abstract_State => | 
				
			||||
  ((From_GS with External => Async_Writers), | 
				
			||||
   (From_CP with External => Async_Writers), | 
				
			||||
   (From_P_P with External => Async_Writers)) is | 
				
			||||
 | 
				
			||||
   ------------------------------------------------------ | 
				
			||||
   -- Ground-based Mission Preparation and Supervision -- | 
				
			||||
   ------------------------------------------------------ | 
				
			||||
 | 
				
			||||
   function Navigation_Parameters return Navigation_Parameters_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_GS; | 
				
			||||
 | 
				
			||||
   function Navigation_Mode return Navigation_Mode_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_GS; | 
				
			||||
 | 
				
			||||
   function Navigation_Option return Navigation_Option_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_GS; | 
				
			||||
 | 
				
			||||
   function Go return Boolean with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_GS; | 
				
			||||
 | 
				
			||||
   function Emergency_Landing return Boolean with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_GS; | 
				
			||||
 | 
				
			||||
   -------------------------------------------------- | 
				
			||||
   -- AV-based Mission Preparation (Control Panel) -- | 
				
			||||
   -------------------------------------------------- | 
				
			||||
 | 
				
			||||
   function On_OFF_Push_Button return Boolean with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_CP; | 
				
			||||
 | 
				
			||||
   function Start_Push_Button return Boolean with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_CP; | 
				
			||||
 | 
				
			||||
   function Mode_Switch return Navigation_Mode_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_CP; | 
				
			||||
 | 
				
			||||
   function Bay_Switch return Bay_Switch_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_CP; | 
				
			||||
 | 
				
			||||
   function Payload_Mass return Payload_Mass_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_CP; | 
				
			||||
 | 
				
			||||
   function USB_Key return Navigation_Parameters_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_CP; | 
				
			||||
 | 
				
			||||
   ------------------------- | 
				
			||||
   -- Physical Parameters -- | 
				
			||||
   ------------------------- | 
				
			||||
 | 
				
			||||
   function P return Distance_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_P_P; | 
				
			||||
 | 
				
			||||
   function P_Dot return Speed_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_P_P; | 
				
			||||
 | 
				
			||||
   function Q return Angle_Type with | 
				
			||||
     Volatile_Function, | 
				
			||||
     Global => From_P_P; | 
				
			||||
 | 
				
			||||
end External; | 
				
			||||
@ -1,33 +1,38 @@
				@@ -1,33 +1,38 @@
					 | 
				
			||||
package MMS.F_PT.F_MM.Output is | 
				
			||||
with Types; use Types; | 
				
			||||
 | 
				
			||||
package MMS.F_PT.F_MM.Output with | 
				
			||||
  Abstract_State => (To_F_CM, To_F_EL, To_F_FC) | 
				
			||||
is | 
				
			||||
 | 
				
			||||
   ------------- | 
				
			||||
   -- To F_CM -- | 
				
			||||
   -------------- | 
				
			||||
    | 
				
			||||
   function Mission_Cancelled return Boolean; | 
				
			||||
   function Mission_Cancelled return Boolean with Global => To_F_CM; | 
				
			||||
    | 
				
			||||
   function Mission_Complete return Boolean; | 
				
			||||
   function Mission_Complete return Boolean with Global => To_F_CM; | 
				
			||||
    | 
				
			||||
   function Mission_Aborted return Boolean; | 
				
			||||
   function Mission_Aborted return Boolean with Global => To_F_CM; | 
				
			||||
    | 
				
			||||
   ------------- | 
				
			||||
   -- To F_EL -- | 
				
			||||
   -------------- | 
				
			||||
 | 
				
			||||
   function Emergency_Landing return Boolean; | 
				
			||||
   function Emergency_Landing return Boolean with Global => To_F_EL; | 
				
			||||
    | 
				
			||||
   ------------- | 
				
			||||
   -- To F_FC -- | 
				
			||||
   ------------- | 
				
			||||
    | 
				
			||||
   function Start_Take_Off return Boolean; | 
				
			||||
   function Start_Take_Off return Boolean with Global => To_F_FC; | 
				
			||||
    | 
				
			||||
   function Start_Landing return Boolean; | 
				
			||||
   function Start_Landing return Boolean with Global => To_F_FC; | 
				
			||||
 | 
				
			||||
   function Operating_Point return Operating_Point_Type; | 
				
			||||
   function Operating_Point return Operating_Point_Type with Global => To_F_FC; | 
				
			||||
    | 
				
			||||
   function Operating_Mode return Navigation_Option_Type; | 
				
			||||
   function Operating_Mode return Navigation_Option_Type with Global => To_F_FC; | 
				
			||||
    | 
				
			||||
   function Mission_Range return Current_Range_Type; -- ??? which distance type | 
				
			||||
   function Mission_Range return Current_Range_Type with Global => To_F_FC; | 
				
			||||
   -- ??? which distance type | 
				
			||||
    | 
				
			||||
end MMS.F_PT.F_MM.Output; | 
				
			||||
				 
					 | 
				
			||||
@ -1,47 +1,55 @@
				@@ -1,47 +1,55 @@
					 | 
				
			||||
with Types; use Types; | 
				
			||||
with External; | 
				
			||||
 | 
				
			||||
package MMS.Input is | 
				
			||||
 | 
				
			||||
   ------------------------------------------------------ | 
				
			||||
   -- Ground-based Mission Preparation and Supervision -- | 
				
			||||
   ------------------------------------------------------ | 
				
			||||
 | 
				
			||||
   function Navigation_Parameters return Navigation_Parameters_Type; | 
				
			||||
   function Navigation_Parameters return Navigation_Parameters_Type | 
				
			||||
     renames External.Navigation_Parameters; | 
				
			||||
 | 
				
			||||
   function Navigation_Mode return Navigation_Mode_Type; | 
				
			||||
   function Navigation_Mode return Navigation_Mode_Type | 
				
			||||
     renames External.Navigation_Mode; | 
				
			||||
 | 
				
			||||
   function Navigation_Option return Navigation_Option_Type; | 
				
			||||
   function Navigation_Option return Navigation_Option_Type | 
				
			||||
     renames External.Navigation_Option; | 
				
			||||
 | 
				
			||||
   function Go return Boolean; | 
				
			||||
   function Go return Boolean renames External.Go; | 
				
			||||
 | 
				
			||||
   function Emergency_Landing return Boolean; | 
				
			||||
   function Emergency_Landing return Boolean renames External.Emergency_Landing; | 
				
			||||
 | 
				
			||||
   -------------------------------------------------- | 
				
			||||
   -- AV-based Mission Preparation (Control Panel) -- | 
				
			||||
   -------------------------------------------------- | 
				
			||||
 | 
				
			||||
   function On_OFF_Push_Button return Boolean; | 
				
			||||
 | 
				
			||||
   function Start_Push_Button return Boolean; | 
				
			||||
 | 
				
			||||
   function Mode_Switch return Navigation_Mode_Type; | 
				
			||||
   function On_OFF_Push_Button return Boolean | 
				
			||||
     renames External.On_OFF_Push_Button; | 
				
			||||
 | 
				
			||||
   function Bay_Switch return Bay_Switch_Type; | 
				
			||||
   function Start_Push_Button return Boolean | 
				
			||||
     renames External.Start_Push_Button; | 
				
			||||
 | 
				
			||||
   function Payload_Mass return Payload_Mass_Type; | 
				
			||||
   function Mode_Switch return Navigation_Mode_Type | 
				
			||||
     renames External.Mode_Switch; | 
				
			||||
 | 
				
			||||
   function USB_Key return Navigation_Parameters_Type; | 
				
			||||
   function Bay_Switch return Bay_Switch_Type | 
				
			||||
     renames External.Bay_Switch; | 
				
			||||
 | 
				
			||||
   function Rotactor_1 return Rotactor_Type; | 
				
			||||
   function Payload_Mass return Payload_Mass_Type | 
				
			||||
     renames External.Payload_Mass; | 
				
			||||
 | 
				
			||||
   function Rotactor_2 return Rotactor_Type; | 
				
			||||
   function USB_Key return Navigation_Parameters_Type | 
				
			||||
     renames External.USB_Key; | 
				
			||||
 | 
				
			||||
   ------------------------- | 
				
			||||
   -- Physical Parameters -- | 
				
			||||
   ------------------------- | 
				
			||||
 | 
				
			||||
   function P return Distance_Type; | 
				
			||||
   function P return Distance_Type renames External.P; | 
				
			||||
 | 
				
			||||
   function P_Dot return Speed_Type; | 
				
			||||
   function P_Dot return Speed_Type renames External.P_Dot; | 
				
			||||
 | 
				
			||||
   function Q return Angle_Type; | 
				
			||||
   function Q return Angle_Type renames External.Q; | 
				
			||||
 | 
				
			||||
end MMS.Input; | 
				
			||||
				 
					 | 
				
			||||
@ -0,0 +1,63 @@
				@@ -0,0 +1,63 @@
					 | 
				
			||||
package Types is | 
				
			||||
 | 
				
			||||
   ---------------------------------- | 
				
			||||
   -- Types for inputs and outputs -- | 
				
			||||
   ---------------------------------- | 
				
			||||
 | 
				
			||||
   type Distance_Input_Type is range 1 .. 100; -- in n.m | 
				
			||||
 | 
				
			||||
   type Speed_Input_Type is range 1 .. 250; -- in k.t | 
				
			||||
 | 
				
			||||
   type Altitude_Input_Type is range -500 .. 3000; -- in ft | 
				
			||||
 | 
				
			||||
   type Navigation_Parameters_Type is record | 
				
			||||
      Distance : Distance_Input_Type; | 
				
			||||
      Speed    : Speed_Input_Type; | 
				
			||||
      Altitude : Altitude_Input_Type; | 
				
			||||
   end record; | 
				
			||||
 | 
				
			||||
   type Navigation_Mode_Type is (RP, A); | 
				
			||||
 | 
				
			||||
   type Navigation_Option_Type is (SPEED, ALTITUDE, ENERGY); | 
				
			||||
 | 
				
			||||
   type Bay_Switch_Type is (OPEN, CLOSED); | 
				
			||||
 | 
				
			||||
   type Payload_Mass_Type is new Integer range 0 .. 98; -- in kg | 
				
			||||
 | 
				
			||||
   type Distance_Type is new Float; -- type of P, unit and bounds ??? | 
				
			||||
 | 
				
			||||
   type Speed_Type is new Float; -- type of P_Dot, unit and bounds ??? | 
				
			||||
 | 
				
			||||
   type Angle_Type is new Float; -- type of Q, unit and bounds ??? | 
				
			||||
 | 
				
			||||
   type Angular_Speed_Type is new Float; -- type of Q_Dot, unit and bounds ??? | 
				
			||||
 | 
				
			||||
   type Rotactor_Type is range 0 .. 9; | 
				
			||||
 | 
				
			||||
   type CP_Switches_Type is record | 
				
			||||
      Power      : Boolean; | 
				
			||||
      Mode       : Navigation_Mode_Type; | 
				
			||||
      Bay        : Bay_Switch_Type; | 
				
			||||
      Start      : Boolean; | 
				
			||||
      Rotactor_1 : Rotactor_Type; | 
				
			||||
      Rotactor_2 : Rotactor_Type; | 
				
			||||
   end record; | 
				
			||||
 | 
				
			||||
   type Source_Type is range 1 .. 100; | 
				
			||||
 | 
				
			||||
   type CP_Displays_Type is record | 
				
			||||
      Ready            : Boolean; | 
				
			||||
      Cancelled        : Boolean; | 
				
			||||
      Complete         : Boolean; | 
				
			||||
      Aborted          : Boolean; -- ??? | 
				
			||||
      Primary_Source   : Source_Type; | 
				
			||||
      Secondary_Source : Source_Type; | 
				
			||||
   end record; | 
				
			||||
 | 
				
			||||
   type Propulsion_Energy_Type is record | 
				
			||||
      Primary_Source_Capacity   : Source_Type; | 
				
			||||
      Secondary_Source_Capacity : Source_Type; | 
				
			||||
   end record; | 
				
			||||
 | 
				
			||||
   type Torque_Type is delta 0.0001 range -10.0E6 .. 10.0E6; -- ??? | 
				
			||||
end Types; | 
				
			||||
					Loading…
					
					
				
		Reference in new issue