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