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

1     --% Compilation Unit:	Gen_OBS_Scheduler
2     --
3     --% Category: Generic Package Declaration
4     --
5     --% Release:  $Name:  $
6     --
7     --% Version:  $Revision: 2.0 $
8     --
9     --% Author:   $Author: gec $
10     --
11     --% Revision Log:
12     --    $Log: gen_obs_scheduler.ads,v $
13     --    Revision 2.0  2003/04/04 08:51:18  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;
44     with Mission_Parameters;
45     with Task_Priority_Control;
46     generic
47     
48        --% Generic Parameter Constraints:
49        -->   Forward_TC  - This operation must leave TC counters unchanged
50     
51        -- Identification of the application process of the "current" instance of
52        --+    this service
53        My_Application_ID : in     Mission_Parameters.APID;
54     
55        type TC_List_Range is range <>;
56        -- Range extended to include PUS.Void for safe inicialisation.
57        type TC_List is array (TC_List_Range range <>) of PUS.Optional_PUS_Packet;
58     
59        -- Routine for routing telecommands that have been scheduled for execution,
60        --+    should be instantiated with an operation that does NOT update packet
61        --+    counters.
62        with function Forward_TC
63              (Packet : in     PUS.PUS_Packet)
64              return Boolean;
65     
66        -- Routine that provides a list of TCs that are currently to be executed
67        with function Get_Telecommands_Due
68              return TC_List;
69     
70        -- Scheduling_Period indicates the period by which schedulable TCs are
71        --+    extracted and executed.
72        -- On board scheduling is implemented based on polling, meaning that the
73        --+    scheduler task once every Scheduling_Period schedules all TCs due for
74        --+    execution.
75        -- The actual execution time of one telecommand is thus subject to a jitter
76        --+    equaling Scheduling_Period
77        Scheduling_Period : in     Integer; -- Expressed in milliseconds
78     
79        -- Priority and stack size of cyclic task performing command scheduling
80        Scheduler_Task_Priority
81                                : in     Task_Priority_Control.Active_Task_Priority;
82        Scheduler_Task_Stack_Size : in     Natural;
83     
84     package Gen_OBS_Scheduler is
85     
86        --% Library Package:
87        --    Performs periodic forwarding of schedulable TCs acquired by
88        --+    Get_Telecommands_Due
89        --% Active Tasks:
90        -->   The_Scheduler.The_Cyclic_Task - Cyclic
91        --% Passive Tasks:
92        -->   None
93     
94        procedure Initialize;
95     
96     end Gen_OBS_Scheduler;
97     
98     --~-----------------------------------------------------------------------------
99