File: /home/oboss/Users/gec/sources/PUS_Services/Function_Management/generic_tc_translator.ads

1     --% Compilation Unit: Generic_TC_Translator
2     --
3     --% Category: Generic Package Declaration
4     --
5     --% Release:  $Name:  $
6     --
7     --% Version:  $Revision: 2.2 $
8     --
9     --% Author:   $Author: gec $
10     --
11     --% Revision Log:
12     --    $Log: generic_tc_translator.ads,v $
13     --    Revision 2.2  2004/02/13 16:17:18  gec
14     --    Merged results of Demonstrator development on to main OBOSS trunk.
15     --
16     --    Revision 2.1.2.1  2004/01/26 10:25:02  gec
17     --    Updates reflecting restructuring of function management service.
18     --
19     --    Revision 2.1  2003/11/13 14:57:44  gec
20     --    Merged ECSS Migration branch to main trunk.
21     --
22     --    Revision 2.0.8.1  2003/11/11 14:52:40  gec
23     --    Updated Function Management Service according to ECSS-E-70-41A standard.
24     --
25     --    Revision 2.0  2003/04/04 08:51:04  gec
26     --    Initial release of source files serving as baseline for OBOSS-III
27     --+    project.
28     --
29     --    Revision 1.1.1.1  2003/04/04 08:13:12  gec
30     --    Imported using TkCVS
31     --
32     --
33     --
34     --% Project: OBOSS
35     --
36     --% Copyright (C) 2003 by Terma A/S
37     --  Proprietary and intellectual rights of Terma A/S, Denmark,
38     --  are involved in the subject-matter of this material and
39     --  all manufacturing, reproduction, use, disclosure, and
40     --  sales rights pertaining to such subject-matter are
41     --  expressly reserved. This material is submitted for a
42     --  specific purpose as agreed, and the recipient by
43     --  accepting this material agrees that this material will
44     --  not be used, copied, or reproduced in whole or in part
45     --  nor its contents revealed in any manner or to any person,
46     --  except to meet the purpose for which it was submitted and
47     --  subject to the terms of the agreement.
48     --
49     --% Target Dependencies:
50     --    None
51     --% Compiler Dependencies:
52     --    None
53     
54     --~-----------------------------------------------------------------------------
55     
56     with Function_Management_Types;
57     with Verification_Types;
58     with PUS;
59     with Mission_Parameters;
60     with Task_Priority_Control;
61     with Packet_Depositor;
62     with Telecommand_Verification_Generator;
63     generic
64     
65        --% Generic Parameter Constraints:
66        -->   Telecommand_Buffer_Priority  - Shall exceed ceiling of any callers of
67        --+    Handle_PUS_Packet and Telecommand_Interpreter_Priority
68     
69        -- Application ID associated to application process providing the function
70        --+    management service.
71        My_APID : in     Mission_Parameters.APID;
72     
73        -- Pacakge suppporting routing of generated telemetry reports
74        with package Router is new Packet_Depositor(<>);
75     
76        -- Package supporting generation of telecomand verification reports
77        with package Telecommand_Verifier is new Telecommand_Verification_Generator
78              (<>);
79     
80        -- Performs function as described for service type (8,1) with function ID
81        --+    Fct_ID and any parameters as contained in Params.
82        -- Result shall indicate the status of execution for completion, and is
83        --+    included in generated telecommand verification packet.
84        with function Perform_Function
85              (TC     :        PUS.PUS_Packet;
86               Fct_ID :        Function_Management_Types.Function_ID;
87               Params :        Function_Management_Types.Parameter_List)
88              return Verification_Types.Verification_Status;
89     
90        -- Priority of protected object implementing buffering of calls to
91        --+    Handle_PUS_Packet
92        Telecommand_Buffer_Priority
93                                    : in     Task_Priority_Control.
94                                      Passive_Task_Priority;
95     
96        -- Maximum number of entries in buffer of calls to Handle_PUS_Packet.
97        -- Should be defined to cater for bursts in arrival of telecommands for
98        --+    execution
99        Telecommand_Buffer_Size : in     Positive;
100     
101        -- Priority and stack size of sporadic task performing telecommand execution
102        --+    as a response to calls to Handle_PUS_Packet
103        Telecommand_Interpreter_Priority
104                                         : in     Task_Priority_Control.
105                                           Active_Task_Priority;
106        Telecommand_Interpreter_Stack_Size : in     Natural;
107     
108     package Generic_TC_Translator is
109     
110        --% Package:
111        --    Generic implementation of function management service as defined by
112        --+    service type 8 in Packet Utilisation Standard
113        --% Active Tasks:
114        -->   The_TC_Interpreter.The_Sporadic_Task - Sporadic
115        --% Passive Tasks:
116        -->   The_TC_Interpreter.Event_Buffer.Queue_Task - Critical region
117        --+    protecting queue of telecommands pending for execution
118     
119        procedure Initialize;
120     
121        --% Subprogram:
122        --    Subject given telecommand packet for execution by function management
123        --+    service
124        --% Parameter Constraints:
125        -->   None
126        --% Exceptions Raised:
127        -->   None
128        procedure Handle_PUS_Packet
129              (TC : in     PUS.PUS_Packet);
130     
131     end Generic_TC_Translator;
132     
133     --~-----------------------------------------------------------------------------
134