|
|
|
-- The structure of the MMS system has been created from the System
|
|
|
|
-- Requirements document following the pattern below:
|
|
|
|
-- * Components are packages.
|
|
|
|
-- * Sub-Components are child packages.
|
|
|
|
-- * Inputs and outputs are functions stored in child packages Comp.Input and
|
|
|
|
-- Comp.Output.
|
|
|
|
-- * Connections between inputs and outputs of various components are done
|
|
|
|
-- using renamings (or eventually expression functions when necessary).
|
|
|
|
-- Consistency of the component architecture is ensured by following the
|
|
|
|
-- rules below:
|
|
|
|
-- - An input package Comp.Subcomp.Input can only reference outputs of
|
|
|
|
-- siblings Comp.*.Output or inputs of parent Comp.Input.
|
|
|
|
-- - An output package Comp.Output can only reference its own inputs
|
|
|
|
-- Comp.Input or outputs of its children Comp.Subcomp.Output.
|
|
|
|
-- - In subcomponents, inputs and outputs are grouped within sections
|
|
|
|
-- with a header specifying to which component(s) they are linked.
|
|
|
|
|
|
|
|
package MMS 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 MMS;
|