File: /home/oboss/Users/gec/sources/Basic_Services/Platform_Parameters/ada_task_configuration.ads

1     --% Compilation Unit: Ada_Task_Configuration
2     --
3     --% Category: Package Declaration
4     --
5     --% Release:  $Name:  $
6     --
7     --% Version:  $Revision: 2.2 $
8     --
9     --% Author:   $Author: gec $
10     --
11     --% Revision Log:
12     --    $Log: ada_task_configuration.ads,v $
13     --    Revision 2.2  2004/02/13 16:16:27  gec
14     --    Merged results of Demonstrator development on to main OBOSS trunk.
15     --
16     --    Revision 2.1.8.4  2004/01/26 10:29:23  gec
17     --    Updated parameters for Payload application process.
18     --
19     --    Revision 2.1.8.3  2004/01/19 15:37:20  jhl
20     --    Udating wrt. integration Test.
21     --
22     --    Revision 2.1.8.2  2004/01/05 12:14:04  gec
23     --    Updated Power Conditioning System application process according to
24     --+    Demonstrator Test Case.
25     --
26     --    Revision 2.1.8.1  2003/12/12 12:11:26  gec
27     --    Updated Data Handling System application process according to 'OBOSS-III
28     --+    Demonstrator Test Case Specification'.
29     --
30     --    Revision 2.1  2003/10/21 08:44:43  gec
31     --    Merged STADY_Recommendations branch onto trunk.
32     --    Contains numerous updates resulting from STADY fault descriptions.
33     --
34     --    Revision 2.0.2.2  2003/10/17 11:07:07  gec
35     --    Inserted error handling in External_Application_Process_IF submitting
36     --+    event reports in case of data loss due to overflow of internal buffers.
37     --
38     --    Response to STADY fault description 39 & 40.
39     --
40     --    Revision 2.0.2.1  2003/10/13 08:09:52  gec
41     --    Reinserted Event_Forwarder to support generation of event reports.
42     --
43     --    Revision 2.0  2003/04/04 08:50:11  gec
44     --    Initial release of source files serving as baseline for OBOSS-III
45     --+    project.
46     --
47     --    Revision 1.1.1.1  2003/04/04 08:13:03  gec
48     --    Imported using TkCVS
49     --
50     --
51     --
52     --% Project: OBOSS
53     --
54     --% Copyright (C) 2003 by Terma A/S
55     --  Proprietary and intellectual rights of Terma A/S, Denmark,
56     --  are involved in the subject-matter of this material and
57     --  all manufacturing, reproduction, use, disclosure, and
58     --  sales rights pertaining to such subject-matter are
59     --  expressly reserved. This material is submitted for a
60     --  specific purpose as agreed, and the recipient by
61     --  accepting this material agrees that this material will
62     --  not be used, copied, or reproduced in whole or in part
63     --  nor its contents revealed in any manner or to any person,
64     --  except to meet the purpose for which it was submitted and
65     --  subject to the terms of the agreement.
66     --
67     --% Target Dependencies:
68     --    None
69     --% Compiler Dependencies:
70     --    None
71     
72     --~-----------------------------------------------------------------------------
73     
74     with Task_Priority_Control;
75     with System;
76     package Ada_Task_Configuration is
77     
78        --% Library Package:
79        --    Definition of priorities associated with all active and passive Ada
80        --+    tasks in OBOSS
81        --% Active Tasks:
82        -->   None
83        --% Passive Tasks:
84        -->   None
85     
86        -- Access infix operators on Task_Priority_Control.Active_Task_Priority and
87        --+    Task_Priority_Control.Passive_Task_Priority
88        use Task_Priority_Control;
89     
90        -- Ceiling of priorities for active and passive tasks.
91        Max_Active_Priority :
92           constant Task_Priority_Control.Active_Task_Priority :=
93                    Task_Priority_Control.Active_Task_Priority'Last;
94        Max_Passive_Priority :
95           constant Task_Priority_Control.Passive_Task_Priority :=
96                    Task_Priority_Control.Passive_Task_Priority'Last;
97     
98        Main_Program_Priority :
99           constant System.Priority := Task_Priority_Control.Main_Program_Priority;
100     
101        --------------------------------------------------------------------------------
102        --+
103        -- Device Drivers
104        --------------------------------------------------------------------------------
105        --+
106     
107     
108        Onboard_Elapsed_Time_Critical_Region_Priority :
109           constant Task_Priority_Control.Passive_Task_Priority    := 58;
110        Synchronous_Serial_Interface_Critical_Region_Priority :
111           constant Task_Priority_Control.Passive_Task_Priority    := 58;
112        Analogue_Status_Interface_Critical_Region_Priority :
113           constant Task_Priority_Control.Passive_Task_Priority    := 58;
114        Digital_Status_Interface_Critical_Region_Priority :
115           constant Task_Priority_Control.Passive_Task_Priority    := 58;
116        Temperature_Status_Interface_Critical_Region_Priority :
117           constant Task_Priority_Control.Passive_Task_Priority    := 58;
118        Power_Conditioning_System_Interfaces_Priority :
119           constant Task_Priority_Control.Passive_Task_Priority    := 58;
120     
121        TC_Source_Priority :
122           constant Task_Priority_Control.Active_Task_Priority := 49;
123     
124     
125     
126        --------------------------------------------------------------------------------
127        --+
128        -- System Infrastructure
129        --------------------------------------------------------------------------------
130        --+
131     
132        -- Priorities associated with the Packet Router.
133        Packet_Buffer_Priority :
134           constant Task_Priority_Control.Passive_Task_Priority    := 58;
135        Packet_Distributer_Priority :
136           constant Task_Priority_Control.Active_Task_Priority     := 49;
137     
138        -- Protected object implementing pool of PUS Packets.
139        -- Shall be ceiling of priorities of all tasks operating on PUS Packets.
140        PUS_Packet_Pool_Priority :
141           constant Task_Priority_Control.Passive_Task_Priority    := 61;
142     
143        Counters_Critical_Region_Task_Priority :
144           constant Task_Priority_Control.Passive_Task_Priority    := 45;
145        Packet_Store_Info_Critical_Region_Task_Priority :
146           constant Task_Priority_Control.Passive_Task_Priority    := 48;
147     
148        -- Protected object implementing pool of small and large source data
149        --+    buffers.
150        -- Shall be ceiling of priorities of all tasks operating on source data in
151        --+    PUS packets.
152        Small_Source_Data_Pool_Priority :
153           constant Task_Priority_Control.Passive_Task_Priority    := 61;
154        Large_Source_Data_Pool_Priority :
155           constant Task_Priority_Control.Passive_Task_Priority    := 61;
156     
157        -- Event Queue related to event reporting.
158        -- Introduced due to GNAT problems with cyclic references.
159        Event_Queue_Priority :
160           constant Task_Priority_Control.Passive_Task_Priority := 61;
161     
162        -- Event Forwarder related to event reporting.
163        -- Introduced due to GNAT problems with cyclic references.
164        Event_Forwarder_Priority :
165           constant Task_Priority_Control.Active_Task_Priority    := 57;
166     
167        --------------------------------------------------------------------------------
168        --+
169        -- Ground IF Agent
170        --------------------------------------------------------------------------------
171        --+
172     
173        -- Priority of protected around UART used for up/downlink
174        UART_Protected_Priority :
175           constant Task_Priority_Control.Passive_Task_Priority :=
176                    Task_Priority_Control.Passive_Task_Priority'Last;
177        -- Priority assigned to queue of interrupt transactions from UART on
178        --+    up/downlink
179        UART_Interrupt_Handler_Priority :
180           constant Task_Priority_Control.Interrupt_Task_Priority :=
181                    Task_Priority_Control.Interrupt_Task_Priority'Last;
182        -- Priority assigned to interrupt-sporadic task handling UART on
183        --+    up/downlink
184        UART_Receiver_Task_Priority :
185           constant Task_Priority_Control.Active_Task_Priority    := 60;
186        -- Priority of protected buffer of packets destined at ground
187        Up_Down_Link_Dispatcher_Event_Buffer_Priority :
188           constant Task_Priority_Control.Passive_Task_Priority    := 57;
189        -- Priority of task receiving packets destined at ground
190        Up_Down_Link_Dispatcher_Task_Priority :
191           constant Task_Priority_Control.Active_Task_Priority    := 46;
192        -- Priority of protected buffer of packets received from ground
193        Up_Down_Link_Receiver_Event_Buffer_Task_Priority :
194           constant Task_Priority_Control.Passive_Task_Priority    := 61;
195        -- Priority of packet receiver from ground
196        Up_Down_Link_The_Receiver_Task_Priority :
197           constant Task_Priority_Control.Active_Task_Priority    := 18;
198        -- Priority of protected low-level buffer of byte stream from ground
199        Up_Down_Link_Circular_Buffer_Low_Level_Byte_Buffer_Priority :
200           constant Task_Priority_Control.Passive_Task_Priority    := 61;
201        -- Priority of low-level packet receiver from ground (IT sporadic)
202        Up_Down_Link_TC_Low_Level_Receiver_Task_Priority :
203           constant Task_Priority_Control.Active_Task_Priority    := 59;
204     
205        --------------------------------------------------------------------------------
206        --+
207        -- Payload
208        --------------------------------------------------------------------------------
209     
210        -- Interfaces
211     
212        Thermistor_Simulator_Region_Prority : constant Passive_Task_Priority := 55;
213     
214        -- Telecommand Dispatcher
215     
216        -- Priority of protected queue of telecommands destined at Power
217        --+    Conditioning System Application process
218        Payload_TC_Buffer_Priority : constant Passive_Task_Priority := 55;
219        -- Priority of dispatcher task distributing received telecommands to proper
220        --+    service.
221        Payload_TC_Task_Priority : constant Active_Task_Priority := 35;
222        -- Priority of protected buffer of payload commands
223        Payload_Telecommand_Buffer_Priority :
224           constant Task_Priority_Control.Passive_Task_Priority    := 54;
225        -- Priority of payload service executor
226        Payload_Telecommand_Interpreter_Priority :
227           constant Task_Priority_Control.Active_Task_Priority    := 19;
228     
229        -- Housekeeping and Diagnostic Service
230     
231        -- Priority assigned to protected report definitions.
232        Payload_HK_Diag_Report_Definition_Priority :
233           constant Task_Priority_Control.Passive_Task_Priority    := 26;
234        -- Priority of Protected object implementing timeline of collection events
235        Payload_HK_Diag_Event_List_Priority :
236           constant Task_Priority_Control.Passive_Task_Priority    := 25;
237        -- Priority of cyclic object performing parameter collection
238        Payload_HK_Diag_Event_Task_Priority :
239           constant Task_Priority_Control.Active_Task_Priority    := 14;
240     
241        -- Science Data service
242        -- Priority of cyclic task collecting science data.
243        Science_Collector_Priority :
244           constant Task_Priority_Control.Active_Task_Priority    := 12;
245     
246     
247        --------------------------------------------------------------------------------
248        --+
249        -- Power Conditioning System
250        --------------------------------------------------------------------------------
251        --+
252     
253        -- Interfaces
254     
255        PDU_Simulator_Region_Prority : constant Passive_Task_Priority := 55;
256     
257        -- Telecommand Dispatcher
258     
259        -- Priority of protected queue of telecommands destined at Power
260        --+    Conditioning System Application process
261        Power_Conditioning_System_TC_Buffer_Priority :
262           constant Passive_Task_Priority    := 55;
263        -- Priority of dispatcher task distributing received telecommands to proper
264        --+    service.
265        Power_Conditioning_System_TC_Task_Priority :
266           constant Active_Task_Priority := 35;
267        -- Priority of protected buffer of power conditioning system commands
268        Power_Conditioning_System_Telecommand_Buffer_Priority :
269           constant Task_Priority_Control.Passive_Task_Priority    := 54;
270        -- Priority of power conditioning system service executor
271        Power_Conditioning_System_Telecommand_Interpreter_Priority :
272           constant Task_Priority_Control.Active_Task_Priority    := 19;
273     
274        -- Onboard Monitoring Service
275     
276        -- Priority of protected object implementing buffering of telecommands to
277        --+    onboard monitoring service.
278        Power_Conditioning_System_Monitor_Telecommand_Buffer_Priority :
279           constant Task_Priority_Control.Passive_Task_Priority    := 39;
280        -- Priority of sporadic task performing telecommand execution for onboard
281        --+    monitoring service
282        Power_Conditioning_System_Monitor_Telecommand_Interpreter_Priority :
283           constant Task_Priority_Control.Active_Task_Priority    := 27;
284        -- Priority of Protected object implementing monitoring list.
285        Power_Conditioning_System_Monitoring_List_Priority :
286           constant Task_Priority_Control.Passive_Task_Priority    := 30;
287        -- Priority of Protected object implementing collection of check
288        --+    definitions.
289        Power_Conditioning_System_Check_Definitions_Collection_Priority :
290           constant Task_Priority_Control.Passive_Task_Priority    := 29;
291        -- Priority of Protected object implementing timeline of monitoring events.
292        Power_Conditioning_System_Monitor_Timeline_Priority :
293           constant Task_Priority_Control.Passive_Task_Priority    := 28;
294        -- Priority of cyclic task performing parameter monitoring.
295        Power_Conditioning_System_Monitor_Task_Priority :
296           constant Task_Priority_Control.Active_Task_Priority    := 16;
297        -- Priority of Protected object implementing list of OOL transitions.
298        Power_Conditioning_System_OOL_Transition_List_Priority :
299           constant Task_Priority_Control.Passive_Task_Priority    := 17;
300        -- Priority of cyclic task generating out-of-limit reports.
301        Power_Conditioning_System_OOL_Reporter_Priority :
302           constant Task_Priority_Control.Active_Task_Priority    := 1;
303     
304        -- Housekeeping and Diagnostic Service
305     
306        -- Priority of Protected object implementing buffering of telecommands
307        --+    destined at the Housekeeping & Diagnostics service.
308        Power_Conditioning_System_HK_Diag_Telecommand_Buffer_Priority :
309           constant Task_Priority_Control.Passive_Task_Priority    := 37;
310        -- Priority of sporadic task performing telecommand execution of
311        --+    Housekeeping & Diagnostics service telecommands.
312        Power_Conditioning_System_HK_Diag_Telecommand_Interpreter_Priority :
313           constant Task_Priority_Control.Active_Task_Priority    := 24;
314        -- Priority assigned to protected report definitions.
315        Power_Conditioning_System_HK_Diag_Report_Definition_Priority :
316           constant Task_Priority_Control.Passive_Task_Priority    := 26;
317        -- Priority of Protected object implementing timeline of collection events
318        Power_Conditioning_System_HK_Diag_Event_List_Priority :
319           constant Task_Priority_Control.Passive_Task_Priority    := 25;
320        -- Priority of cyclic object performing parameter collection
321        Power_Conditioning_System_HK_Diag_Event_Task_Priority :
322           constant Task_Priority_Control.Active_Task_Priority    := 14;
323     
324        -- Function Management Service
325     
326        -- Priority of Protected object implementing buffering of telecommands
327        --+    destined at Function Management Service.
328        Power_Conditioning_System_Function_Management_Telecommand_Buffer_Priority :
329           constant Task_Priority_Control.Passive_Task_Priority    := 38;
330        -- Priority of sporadic task performing telecommand execution of Function
331        --+    Management telecommands.
332        Power_Conditioning_System_Function_Management_Telecommand_Interpreter_Priority :
333           constant Task_Priority_Control.Active_Task_Priority    := 15;
334     
335        -- Onboard Storage & Retrieval Service
336     
337        -- Priority of Protected object implementing buffering of telecommands
338        --+    related to storage selections
339        PCS_Storage_Selection_Telecommand_Buffer_Priority :
340           constant Task_Priority_Control.Passive_Task_Priority    := 36;
341        -- Priority of sporadic task performing telecommand execution of
342        --+    telecommands related to storage selections for Onboard Storage &
343        --+    Retrieval service.
344        PCS_Storage_Selection_Telecommand_Interpreter_Priority :
345           constant Task_Priority_Control.Active_Task_Priority    := 13;
346     
347     
348        --------------------------------------------------------------------------------
349        --+
350        -- Data Handlling System
351        --------------------------------------------------------------------------------
352        --+
353     
354        -- Priority of protected queue of telecommands destined at Data Handling
355        --+    System application process.
356        Data_Handling_System_TC_Buffer_Priority :
357           constant Task_Priority_Control.Passive_Task_Priority    := 54;
358        -- Priority of dispatcher task distributing received telecommands to command
359        --+    service executor
360        Data_Handling_System_TC_Task_Priority :
361           constant Task_Priority_Control.Active_Task_Priority    := 33;
362        -- Priority of protected buffer of data handling system commands
363        Data_Handling_System_Telecommand_Buffer_Priority :
364           constant Task_Priority_Control.Passive_Task_Priority    := 34;
365        -- Priority of data handling system service executor
366        Data_Handling_System_Telecommand_Interpreter_Priority :
367           constant Task_Priority_Control.Active_Task_Priority    := 19;
368        -- Priority of protected telecommand queue
369        Data_Handling_System_Schedule_Priority :
370           constant Task_Priority_Control.Passive_Task_Priority    := 32;
371        -- Priority of telecommand scheduler
372        Data_Handling_System_Scheduler_Task_Priority :
373           constant Task_Priority_Control.Active_Task_Priority    := 31;
374     
375        -- Priorities associated to instance of large data transfer
376        LDT_Protected_State_Priority :
377           constant Task_Priority_Control.Passive_Task_Priority    := 52;
378        LDT_Protected_Timer_Control_Priority :
379           constant Task_Priority_Control.Passive_Task_Priority    := 53;
380        LDT_Active_Timer_Priority :
381           constant Task_Priority_Control.Active_Task_Priority     := 42;
382        SDU_Sender_Buffer_Priority :
383           constant Task_Priority_Control.Passive_Task_Priority    := 53;
384        -- JHL_UT: changed SDU_Sender_Interpreter_Priority from 41 to 10
385        SDU_Sender_Interpreter_Priority :
386           constant Task_Priority_Control.Active_Task_Priority    := 10;
387     
388        -- Priorities associated to  instance of event/action service
389        Detection_List_Priority :
390           constant Task_Priority_Control.Passive_Task_Priority    := 53;
391     
392        --------------------------------------------------------------------------------
393        --+
394        -- Onboard Storage Administrator
395        --------------------------------------------------------------------------------
396        --+
397     
398        -- Priority of protected queue of telecommands destined at Onboard Storage
399        --+    Administrator application process.
400        Onboard_Storage_TC_Buffer_Priority :
401           constant Task_Priority_Control.Passive_Task_Priority    := 53;
402        -- Priority of dispatcher task distributing received telecommands to proper
403        --+    service.
404        Onboard_Storage_TC_Task_Priority :
405           constant Task_Priority_Control.Active_Task_Priority    := 11;
406        -- Priority of protected buffer of storage adminstration commands
407        Onboard_Storage_Packet_Buffer_Priority :
408           constant Task_Priority_Control.Passive_Task_Priority    := 17;
409        -- Priority of storage administration command service executor
410        Onboard_Storage_Packet_Handler_Priority :
411           constant Task_Priority_Control.Active_Task_Priority    := 15;
412     
413     end Ada_Task_Configuration;
414     
415     --~-----------------------------------------------------------------------------
416