File: /home/oboss/Users/gec/sources/Demonstrator/Data_Handling_System/data_handling_system-parameters.ads

1     --% Compilation Unit: Data_Handling_System.Parameters
2     --
3     --% Category: Package Declaration
4     --
5     --% Release:  $Name:  $
6     --
7     --% Version:  $Revision: 2.1 $
8     --
9     --% Author:   $Author: gec $
10     --
11     --% Revision Log:
12     --    $Log: data_handling_system-parameters.ads,v $
13     --    Revision 2.1  2004/02/13 16:16:31  gec
14     --    Merged results of Demonstrator development on to main OBOSS trunk.
15     --
16     --    Revision 1.1.2.5  2004/01/19 15:33:44  jhl
17     --    Udating wrt. integration Test.
18     --
19     --    Revision 1.1.2.4  2003/12/18 14:16:36  gec
20     --    Updated Data Handling System application process in accordance with 'OBOSS-III Demonstrator Specification'.
21     --
22     --    Revision 1.1.2.3  2003/12/12 12:10:48  gec
23     --    Updated Data Handling System application process according to 'OBOSS-III
24     --+    Demonstrator Test Case Specification'.
25     --
26     --    Revision 1.1.2.2  2003/12/10 15:56:29  gec
27     --    Updated instance of memory management service in accordance with
28     --+    'Demonstrator Test Case Specification'.
29     --
30     --    Revision 1.1.2.1  2003/12/10 10:12:50  gec
31     --    Restructured Data Handling System application process using child
32     --+    packages.
33     --
34     --
35     --% Project: OBOSS
36     --
37     --% Copyright (C) 2003 by Terma A/S
38     --  Proprietary and intellectual rights of Terma A/S, Denmark,
39     --  are involved in the subject-matter of this material and
40     --  all manufacturing, reproduction, use, disclosure, and
41     --  sales rights pertaining to such subject-matter are
42     --  expressly reserved. This material is submitted for a
43     --  specific purpose as agreed, and the recipient by
44     --  accepting this material agrees that this material will
45     --  not be used, copied, or reproduced in whole or in part
46     --  nor its contents revealed in any manner or to any person,
47     --  except to meet the purpose for which it was submitted and
48     --  subject to the terms of the agreement.
49     --
50     --% Target Dependencies:
51     --    None
52     --% Compiler Dependencies:
53     --    None
54     
55     --~-----------------------------------------------------------------------------
56     
57     with Task_Priority_Control;
58     with Ada_Task_Configuration;
59     with Mission_Parameters;
60     with Application_Process_Parameters;
61     with External_On_Board_Scheduling_Types;
62     with External_Memory_Management_Types;
63     with Packet_Store_Types;
64     package Data_Handling_System.Parameters is
65     
66        --% Library Package:
67        --    Definition of on-board scheduling values
68        --% Active Tasks:
69        -->   None
70        --% Passive Tasks:
71        -->   None
72     
73        -- Application process ID associated to the data handling system application
74        --+    process
75        Application_ID :
76           constant Mission_Parameters.APID :=
77                    Mission_Parameters.Data_Handling_System;
78     
79     
80        --~--------------------------------------------------------------------------
81     
82        package TC_Interpreters is
83     
84           --% Package:
85           --    Parameters common to the telecommand interpreters in the
86           --+    appplication process
87           --% Active Tasks:
88           -->   None
89           --% Passive Tasks:
90           -->   None
91     
92           Telecommand_Buffer_Priority :
93              constant Task_Priority_Control.Passive_Task_Priority :=
94                       Ada_Task_Configuration.
95                          Data_Handling_System_Telecommand_Buffer_Priority;
96           Telecommand_Buffer_Size     : constant := 2;
97     
98           Telecommand_Interpreter_Priority :
99              constant Task_Priority_Control.Active_Task_Priority :=
100                       Ada_Task_Configuration.
101                          Data_Handling_System_Telecommand_Interpreter_Priority;
102     
103        end TC_Interpreters;
104     
105        --~--------------------------------------------------------------------------
106     
107        package TC_Dispathing is
108     
109           --% Package:
110           --    Parameters related to dispatching of telecommands internally in the
111           --+    application process
112           --% Active Tasks:
113           -->   task_name - Category
114           --% Passive Tasks:
115           -->   task_name - Description
116     
117           TC_Task_Priority :
118              constant Task_Priority_Control.Active_Task_Priority :=
119                       Ada_Task_Configuration.
120                          Data_Handling_System_TC_Task_Priority;
121           TC_Task_Stack_Size : constant := 8_000;
122     
123           TC_Buffer_Priority :
124              constant Task_Priority_Control.Passive_Task_Priority :=
125                       Ada_Task_Configuration.
126                          Data_Handling_System_TC_Buffer_Priority;
127           TC_Buffer_Size :
128              constant Natural :=
129                       Application_Process_Parameters.The_Parameters
130                             (Application_ID).Packet_Queue_Size;
131     
132        end TC_Dispathing;
133     
134        --~--------------------------------------------------------------------------
135     
136        package Onboard_Scheduling is
137     
138           --% Package:
139           --    Parameters for the onboard scheduling service instance
140           --% Active Tasks:
141           -->   None
142           --% Passive Tasks:
143           -->   None
144     
145           Schedule_Size            : constant := 3 * 20;
146           Schedule_Max_List_Length : constant := Schedule_Size;
147     
148           type Sub_Schedule_ID is
149                 (All_Sub_Schedules,
150                  Sub_Schedule_1,
151                  Sub_Schedule_2,
152                  Sub_Schedule_3);
153     
154           type Sub_Schedule_ID_Representation_Mapping is array
155                 (Sub_Schedule_ID) of
156                 External_On_Board_Scheduling_Types.Sub_Schedule_ID;
157           Sub_Schedule_ID_Representation :
158              constant Sub_Schedule_ID_Representation_Mapping :=
159                       (All_Sub_Schedules => 0,
160                        Sub_Schedule_1    => 1,
161                        Sub_Schedule_2    => 2,
162                        Sub_Schedule_3    => 3);
163     
164           -- Scheduling period expressed as milliseconds
165           Scheduling_Period : constant := 1_000;
166     
167           Max_No_Of_Telecommands_In_Scheduling_Period :
168              constant Natural := Schedule_Size;
169     
170           Schedule_Priority :
171              constant Task_Priority_Control.Passive_Task_Priority :=
172                       Ada_Task_Configuration.
173                          Data_Handling_System_Schedule_Priority;
174     
175           Scheduler_Task_Priority :
176              constant Task_Priority_Control.Active_Task_Priority :=
177                       Ada_Task_Configuration.
178                          Data_Handling_System_Scheduler_Task_Priority;
179           Scheduler_Task_Stack_Size : constant := 20_000;
180     
181           Interpreter_Stack_Size : constant := 20_000;
182     
183        end Onboard_Scheduling;
184     
185        --~--------------------------------------------------------------------------
186     
187        package Memory_Management is
188     
189           --% Package:
190           --    Parameters related to memory management service instantiation
191           --% Active Tasks:
192           -->   None
193           --% Passive Tasks:
194           -->   None
195     
196           Max_List_Length : constant := 1;
197           Max_Data_Length : constant := 10_000;
198     
199           type Memory_ID is
200                 (Code,
201                  Data);
202     
203           type Memory_ID_Representation_Mapping is array (Memory_ID) of
204                 External_Memory_Management_Types.Memory_ID;
205           Memory_ID_Representation : constant Memory_ID_Representation_Mapping :=
206                       (Code =>
207                           (1 => Character'Pos('C'),
208                            2 => Character'Pos('O'),
209                            3 => Character'Pos('D'),
210                            4 => Character'Pos('E'),
211                            5 => Character'Pos(' '),
212                            6 => Character'Pos('M'),
213                            7 => Character'Pos('E'),
214                            8 => Character'Pos('M')),
215                        Data =>
216                           (1 => Character'Pos('D'),
217                            2 => Character'Pos('A'),
218                            3 => Character'Pos('T'),
219                            4 => Character'Pos('A'),
220                            5 => Character'Pos(' '),
221                            6 => Character'Pos('M'),
222                            7 => Character'Pos('E'),
223                            8 => Character'Pos('M')));
224     
225           Interpreter_Stack_Size : constant := 15_000;
226     
227        end Memory_Management;
228     
229        --~--------------------------------------------------------------------------
230     
231        package Large_Data_Transfer is
232     
233           --% Package:
234           --    Parameters for the large data transfer service instance
235           --% Active Tasks:
236           -->   None
237           --% Passive Tasks:
238           -->   None
239     
240           -- Maximum length of sequence number list in a "Repeat Parts" TC/TM.
241           Sequence_Number_List_Length : constant := 8;
242     
243           -- Priority of proteceted object encapsulating actual state changes,
244           --+    making them atomic.
245           Protected_State_Priority :
246              constant Task_Priority_Control.Passive_Task_Priority :=
247                       Ada_Task_Configuration.LDT_Protected_State_Priority;
248     
249           -- Timeout interval for downlink reception acknowledgement TC from
250           --+    receiver.
251           Timeout_Interval_In_Milliseconds : constant := 10_000;
252     
253           -- Priority of proteceted object encapsulating the timout control
254           Protected_Timer_Control_Priority :
255              constant Task_Priority_Control.Passive_Task_Priority :=
256                       Ada_Task_Configuration.LDT_Protected_Timer_Control_Priority;
257     
258           -- Priority of the actual timer task for timeout control
259           Active_Timer_Priority :
260              constant Task_Priority_Control.Active_Task_Priority :=
261                       Ada_Task_Configuration.LDT_Active_Timer_Priority;
262     
263           -- Stack size of sporadic task performing TC packet execution as a
264           --+    response to calls to Handle_TC_Packet
265           Interpreter_Stack_Size : constant := 15_000;
266     
267           -- Priority of protected object implementing buffering of calls to the
268           --+    SDU sender
269           SDU_Sender_Buffer_Priority :
270              constant Task_Priority_Control.Passive_Task_Priority :=
271                       Ada_Task_Configuration.SDU_Sender_Buffer_Priority;
272     
273           -- Maximum number of entries in buffer of calls to the SDU sender.
274           -- Should be defined to cater for bursts in arrival of TM packets
275           SDU_Sender_Buffer_Size : constant := 2;
276     
277           -- Priority and stack size of sporadic task performing SDU sending as a
278           --+    response to calls to Deposit_TM_Packet
279           SDU_Sender_Interpreter_Priority :
280              constant Task_Priority_Control.Active_Task_Priority :=
281                       Ada_Task_Configuration.SDU_Sender_Interpreter_Priority;
282     
283           SDU_Sender_Interpreter_Stack_Size : constant := 15_000;
284     
285        end Large_Data_Transfer;
286     
287        --~--------------------------------------------------------------------------
288     
289        package Storage_Selection is
290     
291           --% Package:
292           --    Various parameters applicable to the storage selection definiton
293           --+    service.
294           --% Active Tasks:
295           -->   None
296           --% Passive Tasks:
297           -->   None
298     
299           Max_Store_IDs : constant Packet_Store_Types.Count_Type := 2;
300     
301           -- Stack size of sporadic task performing TC packet execution as a
302           --+    response to calls to Handle_TC_Packet
303           Interpreter_Stack_Size : constant := 15_000;
304     
305        end Storage_Selection;
306     
307        --~--------------------------------------------------------------------------
308     
309        package Event_Action is
310     
311           --% Package:
312           --    Varuious parameters associated to the event-action service
313           --+    instantiation
314           --% Active Tasks:
315           -->   None
316           --% Passive Tasks:
317           -->   None
318     
319           -- Maximum number of events in event detection list
320           Max_Detection_List_Length : constant := 3;
321     
322           -- Maximum number of "Add Events" in an Event Action Telecommand
323           Max_Add_Events : constant := Max_Detection_List_Length;
324     
325           -- Maximum number of "Delete Events" in an Event Action  Telecommand
326           Max_Delete_Events : constant := Max_Detection_List_Length;
327     
328           -- Maximum number of action controls (Enable/Disable) in an Event Action
329           --+     Telecommand
330           Max_Action_Controls : constant := Max_Detection_List_Length;
331     
332           -- Stack size of sporadic task performing TC packet execution as a
333           --+    response to calls to Handle_TC_Packet
334           Interpreter_Stack_Size : constant := 15_000;
335     
336           -- Priority of critical region making operations on event detection list
337           --+    data structures atomic
338           Detection_List_Priority :
339              constant Task_Priority_Control.Passive_Task_Priority :=
340                       Ada_Task_Configuration.Detection_List_Priority;
341     
342        end Event_Action;
343     
344        --~--------------------------------------------------------------------------
345     
346     end Data_Handling_System.parameters;
347     
348     --~-----------------------------------------------------------------------------
349