File: /home/oboss/Users/gec/sources/PUS_Services/On_Board_Scheduler/on_board_scheduling_types.ads

1     --% Compilation Unit:	On_Board_Scheduling_Types
2     --
3     --% Category: Package Declaration
4     --
5     --% Release:  $Name:  $
6     --
7     --% Version:  $Revision: 2.0 $
8     --
9     --% Author:   $Author: gec $
10     --
11     --% Revision Log:
12     --    $Log: on_board_scheduling_types.ads,v $
13     --    Revision 2.0  2003/04/04 08:51:19  gec
14     --    Initial release of source files serving as baseline for OBOSS-III project.
15     --
16     --    Revision 1.1.1.1  2003/04/04 08:13:14  gec
17     --    Imported using TkCVS
18     --
19     --
20     --
21     --% Project: OBOSS
22     --
23     --% Copyright (C) 2003 by Terma A/S
24     --  Proprietary and intellectual rights of Terma A/S, Denmark,
25     --  are involved in the subject-matter of this material and
26     --  all manufacturing, reproduction, use, disclosure, and
27     --  sales rights pertaining to such subject-matter are
28     --  expressly reserved. This material is submitted for a
29     --  specific purpose as agreed, and the recipient by
30     --  accepting this material agrees that this material will
31     --  not be used, copied, or reproduced in whole or in part
32     --  nor its contents revealed in any manner or to any person,
33     --  except to meet the purpose for which it was submitted and
34     --  subject to the terms of the agreement.
35     --
36     --% Target Dependencies:
37     --    None
38     --% Compiler Dependencies:
39     --    None
40     
41     --~-----------------------------------------------------------------------------
42     
43     with PUS_Data_Types;
44     with Mission_Parameters;
45     package On_Board_Scheduling_Types is
46     
47        --% Library Package:
48        --    Definition of types specific to the on-board scheduling service
49        --% Active Tasks:
50        -->   None
51        --% Passive Tasks:
52        -->   None
53     
54        TM_Destination :
55           constant Mission_Parameters.APID := Mission_Parameters.Ground;
56     
57        type List_Length is new Natural;
58     
59        type Scheduling_Event_Spec is
60              (Absolute,
61               Schedule,
62               Sub_Schedule);
63     
64        type APID_Set is array (Mission_Parameters.APID) of Boolean;
65     
66     
67        -- This CUC_Time is used for time tags that may be absolute or relative, and
68        --+    utilizes that PUS_Data_Types.On_Board_Duration is basically the same
69        --+    representation as PUS_Data_Types.On_Board_Time
70        type CUC_Time is new PUS_Data_Types.On_Board_Time;
71     
72        type Optional_On_Board_Time(Time_Present : Boolean := False) is
73           record
74              case Time_Present is
75                 when True =>
76                    Get_Time : PUS_Data_Types.On_Board_Time;
77                 when False =>
78                    null;
79              end case;
80           end record;
81     
82     
83        --% Subprogram:
84        --    Make an On_Board_Time into an Optional_On_Board_Time
85        --% Parameter Constraints:
86        -->   None
87        --% Exceptions Raised:
88        -->   None
89     
90        function Obt
91              (Sch_Time : in     PUS_Data_Types.On_Board_Time)
92              return Optional_On_Board_Time;
93     
94     
95        --% Subprogram:
96        --    Make a void Optional_On_Board_Time
97        --% Parameter Constraints:
98        -->   None
99        --% Exceptions Raised:
100        -->   None
101     
102        function None
103              return Optional_On_Board_Time;
104     
105     
106        -- Specification of temporal criteria for manipulation of schedule.
107     
108        type Temporal_Range_Type is
109              (All_Times,
110               Times_Between,
111               Times_Before,
112               Times_After);
113     
114        type Time_Specification
115              (Temporal_Range : Temporal_Range_Type := Temporal_Range_Type'First)
116              is
117           record
118              case Temporal_Range is
119                 when Times_Between =>
120                    Lower_Limit : PUS_Data_Types.On_Board_Time;
121                    Upper_Limit : PUS_Data_Types.On_Board_Time;
122                 when Times_Before =>
123                    End_Time : PUS_Data_Types.On_Board_Time;
124                 when Times_After =>
125                    Start_Time : PUS_Data_Types.On_Board_Time;
126                 when All_Times =>
127                    null;
128              end case;
129           end record;
130     
131     end On_Board_Scheduling_Types;
132     
133     --~-----------------------------------------------------------------------------
134