Pyros applications
Version 57 (Paul Carensac, 08/09/2016 11:31 am)
1 | 1 | Paul Carensac | h1. Pyros applications |
---|---|---|---|
2 | 1 | Paul Carensac | |
3 | 2 | Paul Carensac | List and details of all the pyros applications. |
4 | 2 | Paul Carensac | |
5 | 17 | Paul Carensac | {{>toc}} |
6 | 17 | Paul Carensac | |
7 | 2 | Paul Carensac | --- |
8 | 2 | Paul Carensac | |
9 | 2 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}pyrosapp% |
10 | 2 | Paul Carensac | |
11 | 3 | Paul Carensac | h3. Purpose |
12 | 2 | Paul Carensac | |
13 | 2 | Paul Carensac | * Contains all the database Models |
14 | 2 | Paul Carensac | * Basic tests in tests.py |
15 | 2 | Paul Carensac | * Backoffice configuration in admin.py |
16 | 2 | Paul Carensac | |
17 | 3 | Paul Carensac | h3. Notes |
18 | 2 | Paul Carensac | |
19 | 57 | Paul Carensac | * Should be removed, and the models moved in the "common" application |
20 | 2 | Paul Carensac | |
21 | 2 | Paul Carensac | --- |
22 | 2 | Paul Carensac | |
23 | 2 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}dashboard% |
24 | 2 | Paul Carensac | |
25 | 3 | Paul Carensac | h3. Purpose |
26 | 2 | Paul Carensac | |
27 | 2 | Paul Carensac | * Interface for all external users |
28 | 2 | Paul Carensac | * Leads to displays and actions for all the pyros modules (users, requests, system execution, ...) |
29 | 2 | Paul Carensac | |
30 | 4 | Paul Carensac | h3. Evolution |
31 | 4 | Paul Carensac | |
32 | 4 | Paul Carensac | * Creating application |
33 | 4 | Paul Carensac | |
34 | 4 | Paul Carensac | * manage.py startapp dashboard |
35 | 5 | Paul Carensac | * added 'dashboard' in settings.py -> INSTALLED_APPS |
36 | 5 | Paul Carensac | * created a urls.py file in dashboard module |
37 | 5 | Paul Carensac | * added _url(r'^dashboard/', include('dashboard.urls'))_ in pyros/urls.py -> urlpatterns |
38 | 5 | Paul Carensac | * created templates/ and templates/dashboard/ folders in dashboard module |
39 | 5 | Paul Carensac | |
40 | 5 | Paul Carensac | * Main page |
41 | 5 | Paul Carensac | |
42 | 5 | Paul Carensac | * added 'home' view in views.py |
43 | 5 | Paul Carensac | * linked 'home' view to 8000/dashboard URL |
44 | 5 | Paul Carensac | * created a template for the homepage in templates/dashboard/ (with bootstrap) |
45 | 5 | Paul Carensac | * created views, views linking (urls.py) and templates for the dashboard modules |
46 | 5 | Paul Carensac | * redirected mainpage buttons to Admin interface (temporary) |
47 | 4 | Paul Carensac | |
48 | 22 | Paul Carensac | * System page (logs) |
49 | 22 | Paul Carensac | |
50 | 22 | Paul Carensac | * Retrieve logs from the db |
51 | 26 | Paul Carensac | * Print logs and automatically update every second via an ajax request |
52 | 22 | Paul Carensac | |
53 | 3 | Paul Carensac | h3. Notes |
54 | 2 | Paul Carensac | |
55 | 2 | Paul Carensac | * The buttons lead to the Admin interface for the moment |
56 | 7 | Paul Carensac | * Added bootstrap3 module (see Installation) |
57 | 7 | Paul Carensac | * Added Django Template Editor (see Eclipse configuration) |
58 | 2 | Paul Carensac | |
59 | 3 | Paul Carensac | h3. TODO |
60 | 2 | Paul Carensac | |
61 | 2 | Paul Carensac | * Create the backoffice views as the modules are integrated in pyros |
62 | 2 | Paul Carensac | * Think about a system of permissions |
63 | 2 | Paul Carensac | |
64 | 2 | Paul Carensac | --- |
65 | 8 | Paul Carensac | |
66 | 8 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}scheduler% |
67 | 8 | Paul Carensac | |
68 | 8 | Paul Carensac | h3. Purpose |
69 | 8 | Paul Carensac | |
70 | 8 | Paul Carensac | * Creates the planning with the OBSERVABLE sequences |
71 | 40 | Paul Carensac | * Give access to a web page to see the current & old plannings |
72 | 8 | Paul Carensac | |
73 | 8 | Paul Carensac | h3. Evolution |
74 | 8 | Paul Carensac | |
75 | 8 | Paul Carensac | * Creating application |
76 | 8 | Paul Carensac | |
77 | 8 | Paul Carensac | * manage.py startapp scheduler |
78 | 8 | Paul Carensac | * added 'scheduler' in settings.py -> INSTALLED_APPS |
79 | 8 | Paul Carensac | * created a urls.py file in scheduler module |
80 | 8 | Paul Carensac | * added _url(r'^scheduler/', include('scheduler.urls'))_ in pyros/urls.py -> urlpatterns |
81 | 8 | Paul Carensac | * created templates/ and templates/scheduler/ folders in scheduler module |
82 | 8 | Paul Carensac | |
83 | 9 | Paul Carensac | * Model modifications |
84 | 1 | Paul Carensac | |
85 | 9 | Paul Carensac | * Schedule |
86 | 9 | Paul Carensac | |
87 | 9 | Paul Carensac | * Remove day_start |
88 | 9 | Paul Carensac | * Remove day_stop |
89 | 9 | Paul Carensac | * Add plan_start |
90 | 13 | Paul Carensac | * Add plan_end |
91 | 9 | Paul Carensac | * Enum system for the status |
92 | 9 | Paul Carensac | * ScheduleHistory |
93 | 9 | Paul Carensac | |
94 | 9 | Paul Carensac | * Remove day_start |
95 | 9 | Paul Carensac | * Remove day_stop |
96 | 9 | Paul Carensac | * Add plan_start |
97 | 13 | Paul Carensac | * Add plan_end |
98 | 9 | Paul Carensac | * Sequence |
99 | 9 | Paul Carensac | |
100 | 9 | Paul Carensac | * Remove exec_start |
101 | 9 | Paul Carensac | * Remove exec_stop |
102 | 9 | Paul Carensac | * Add tsp |
103 | 9 | Paul Carensac | * Add tep |
104 | 9 | Paul Carensac | * Add jd1 |
105 | 9 | Paul Carensac | * Add jd2 |
106 | 9 | Paul Carensac | * Add deltaTL |
107 | 9 | Paul Carensac | * Add deltaTR |
108 | 9 | Paul Carensac | * Add t_prefered |
109 | 9 | Paul Carensac | * Changed duration from Float to DecimalField (more precise) |
110 | 15 | Paul Carensac | * Add overhead |
111 | 15 | Paul Carensac | |
112 | 10 | Paul Carensac | * manage.py makemigrations sheduler ; manage.py migrate |
113 | 10 | Paul Carensac | |
114 | 10 | Paul Carensac | * Creation of Scheduler and Interval classes in models.py |
115 | 10 | Paul Carensac | |
116 | 10 | Paul Carensac | * Implementation of the Interval class |
117 | 10 | Paul Carensac | |
118 | 12 | Paul Carensac | * Implementation of the Scheduler's 'make_schedule' function (and children). This is the only entry point for now. This function creates the planning (organizes the observable sequences). |
119 | 9 | Paul Carensac | |
120 | 14 | Paul Carensac | * Creation of the web interface |
121 | 14 | Paul Carensac | |
122 | 14 | Paul Carensac | * Added current_schedule.html in template/scheduler folder |
123 | 14 | Paul Carensac | * Created view and url linking to this template (with current planning retrieving) |
124 | 14 | Paul Carensac | |
125 | 14 | Paul Carensac | * Creation of the simulator |
126 | 14 | Paul Carensac | |
127 | 14 | Paul Carensac | * Created a second entry point in the Scheduler class (with a few minor adaptations to handle SIMULATION mode) |
128 | 14 | Paul Carensac | * Created a simulator module in the scheduler |
129 | 14 | Paul Carensac | |
130 | 14 | Paul Carensac | * Added the MyHTMLParser class (easy implementation of HTMLParser) |
131 | 23 | Paul Carensac | * Added Simulator class. It parses a file given in parametr to retrieve sequences and create a schedule |
132 | 14 | Paul Carensac | * Created a second view linked to schedule/simulation to show simulation results |
133 | 1 | Paul Carensac | |
134 | 29 | Paul Carensac | * Supression du système d'agent et ajout de la tâche (celery) de scheduling |
135 | 29 | Paul Carensac | |
136 | 23 | Paul Carensac | * Main update 19/05/2016 : overheads & historic system |
137 | 23 | Paul Carensac | |
138 | 23 | Paul Carensac | * Deleted ScheduleHistory |
139 | 23 | Paul Carensac | * Transformed the Sequence - Schedule relation to ManyToMany |
140 | 23 | Paul Carensac | * Moved the scheduling information into the M2M relationship class (shs = ScheduleHasSequences) |
141 | 23 | Paul Carensac | * Added a static overhead into scheduling (can be set from the calling code, through scheduler.max_overhead = blabla(float)) |
142 | 23 | Paul Carensac | |
143 | 23 | Paul Carensac | h3. Tests |
144 | 23 | Paul Carensac | |
145 | 30 | Paul Carensac | * Some tests in test.py to test the different functionalities of the scheduler. These tests include the simulation. |
146 | 24 | Paul Carensac | * A simulator at localhost:8000/scheduler/simulation, taking sequences from scheduler/sequences_cador.html |
147 | 24 | Paul Carensac | |
148 | 8 | Paul Carensac | h3. Notes |
149 | 1 | Paul Carensac | |
150 | 1 | Paul Carensac | * Priorities and quotas are default-calculated (for the moment) |
151 | 9 | Paul Carensac | * What is the 'flag' attribute in the Schedule model ? |
152 | 1 | Paul Carensac | |
153 | 9 | Paul Carensac | h3. TODO |
154 | 13 | Paul Carensac | |
155 | 38 | Paul Carensac | * views |
156 | 39 | Paul Carensac | |
157 | 38 | Paul Carensac | * Link the main page to the current schedule instead of the simulation page |
158 | 38 | Paul Carensac | * Show user sequences in the schedules (with links) |
159 | 38 | Paul Carensac | * Give accces to old schedules (day / days before / all end-night plannings / all plannings) |
160 | 38 | Paul Carensac | * Give access to the refused sequences of a schedule, and the reasons of rejects |
161 | 39 | Paul Carensac | |
162 | 38 | Paul Carensac | * scheduler |
163 | 39 | Paul Carensac | |
164 | 38 | Paul Carensac | * Change the system to determine night start/end (they must be given in parameter, only if first_schedule is True) |
165 | 55 | Paul Carensac | * Store the reasons of rejects (create a new attribute, in shs ?) |
166 | 38 | Paul Carensac | * What is the 'flag' attribute ? (@AK) |
167 | 38 | Paul Carensac | * Do not create the execute_sequence tasks if it's not the night (- 120 seconds) |
168 | 38 | Paul Carensac | * Priority and quota computing |
169 | 38 | Paul Carensac | * Quotas evolution |
170 | 38 | Paul Carensac | * Blank space filling |
171 | 38 | Paul Carensac | * At the end of a scheduling send, it to the IC ? |
172 | 18 | Paul Carensac | |
173 | 18 | Paul Carensac | --- |
174 | 18 | Paul Carensac | |
175 | 18 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}alert_manager% |
176 | 18 | Paul Carensac | |
177 | 18 | Paul Carensac | h3. Purpose |
178 | 18 | Paul Carensac | |
179 | 18 | Paul Carensac | * Listen to VOEvent network |
180 | 18 | Paul Carensac | * Sort interesting events |
181 | 18 | Paul Carensac | * Create requests according to these events |
182 | 18 | Paul Carensac | * Manage the requests created via the alerts |
183 | 35 | Paul Carensac | * Change the observation strategies for alerts |
184 | 18 | Paul Carensac | |
185 | 18 | Paul Carensac | h3. Evolution |
186 | 18 | Paul Carensac | |
187 | 18 | Paul Carensac | * Creating application |
188 | 18 | Paul Carensac | |
189 | 18 | Paul Carensac | * See scheduler documentation above |
190 | 18 | Paul Carensac | |
191 | 18 | Paul Carensac | * Implementation of the agent system |
192 | 18 | Paul Carensac | |
193 | 18 | Paul Carensac | * Created agent.py whith a "class AlertManagerAgent(Agent):" inside |
194 | 18 | Paul Carensac | * Overriding agent's 'work' and 'shutdown' method |
195 | 18 | Paul Carensac | * Added message(s) to agent.actions_by_message dictionnary, with the functions associated to these messages |
196 | 18 | Paul Carensac | * Added the Agent's launch system in apps.py |
197 | 18 | Paul Carensac | |
198 | 18 | Paul Carensac | * Implementation of the VOEventListener Thread |
199 | 18 | Paul Carensac | |
200 | 18 | Paul Carensac | * Created a "class VOEventListener(Thread):" in agent.py |
201 | 18 | Paul Carensac | * Overriding the run method |
202 | 18 | Paul Carensac | |
203 | 28 | Paul Carensac | * 19/05/2016 : deleted the agent system (deleted from the applications below too) |
204 | 1 | Paul Carensac | |
205 | 27 | Paul Carensac | * Added some VOEvents in events_to_send |
206 | 27 | Paul Carensac | |
207 | 27 | Paul Carensac | * Installed Comet (see in [[Technical components]] section) |
208 | 1 | Paul Carensac | |
209 | 28 | Paul Carensac | * Created 2 celery tasks in tesks.py : alert_listener and change_obs_strategy |
210 | 28 | Paul Carensac | |
211 | 28 | Paul Carensac | * Added alert_listener launch at server start |
212 | 28 | Paul Carensac | |
213 | 28 | Paul Carensac | * Implemented alert_listener : it waits for an event file to be created in events_received, then read it and creates a request |
214 | 28 | Paul Carensac | |
215 | 28 | Paul Carensac | * Added a simulator system ( see section Tests below ) |
216 | 28 | Paul Carensac | |
217 | 35 | Paul Carensac | * Added the strategy_change page |
218 | 35 | Paul Carensac | |
219 | 45 | Paul Carensac | * Removed launching at start : it is now started by the monitoring task |
220 | 45 | Paul Carensac | |
221 | 28 | Paul Carensac | h3. Tests |
222 | 28 | Paul Carensac | |
223 | 28 | Paul Carensac | * Simulator : |
224 | 28 | Paul Carensac | |
225 | 28 | Paul Carensac | * You first need to set settings.SIMULATION to True (in pyros/settings.py) |
226 | 28 | Paul Carensac | * Start celery workers (scripts/start_celery_workers.sh) |
227 | 28 | Paul Carensac | * Start server (manage.py runserver) |
228 | 28 | Paul Carensac | * Go to localhost:8000/alert_manager/simulation, and press the button ! |
229 | 28 | Paul Carensac | * This will read into the simulation_sequences file. |
230 | 28 | Paul Carensac | |
231 | 41 | Paul Carensac | * Test AlertListenerTestsCelery.test_alert_reception : |
232 | 28 | Paul Carensac | |
233 | 28 | Paul Carensac | * Tests if the alert_listener is working well. |
234 | 28 | Paul Carensac | * +Be careful :+ this will act on the production database, and will start the entire alert workflow |
235 | 1 | Paul Carensac | * To start it : script/celery_test.sh alert_manager |
236 | 41 | Paul Carensac | |
237 | 41 | Paul Carensac | * Tests TestStrategyChange.* : |
238 | 41 | Paul Carensac | * Test the changing of the observation strategy with errors and different parameters |
239 | 28 | Paul Carensac | |
240 | 27 | Paul Carensac | h3. Notes |
241 | 1 | Paul Carensac | |
242 | 28 | Paul Carensac | * The request created by alert_listener is hard-coded |
243 | 28 | Paul Carensac | |
244 | 1 | Paul Carensac | h3. TODO |
245 | 28 | Paul Carensac | |
246 | 42 | Paul Carensac | * Web : |
247 | 42 | Paul Carensac | |
248 | 42 | Paul Carensac | * Print if there is an alert in progress in the main page |
249 | 42 | Paul Carensac | * Link the alerts to their status and results |
250 | 42 | Paul Carensac | |
251 | 42 | Paul Carensac | * Connect to a real VOEvent broker |
252 | 42 | Paul Carensac | |
253 | 42 | Paul Carensac | * Determine the communication with FSC for strategy change |
254 | 42 | Paul Carensac | |
255 | 42 | Paul Carensac | * VOEvents : |
256 | 42 | Paul Carensac | |
257 | 42 | Paul Carensac | * Extract the good fields (see AK Q&A 07/01/2016) |
258 | 42 | Paul Carensac | * Fill the request & alerts objects |
259 | 42 | Paul Carensac | * Use strategies to build a request |
260 | 56 | Paul Carensac | * Possibility to change the default strategy |
261 | 42 | Paul Carensac | * Handle VOEvent updates |
262 | 42 | Paul Carensac | * Be careful to not create 2 alerts for a same GRB, seen by 2 different satellites |
263 | 18 | Paul Carensac | |
264 | 18 | Paul Carensac | --- |
265 | 18 | Paul Carensac | |
266 | 20 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}analyzer% |
267 | 18 | Paul Carensac | |
268 | 18 | Paul Carensac | h3. Purpose |
269 | 18 | Paul Carensac | |
270 | 36 | Paul Carensac | * Apply calibration files to the images taken by the observation manager |
271 | 36 | Paul Carensac | * Analyze the images produced by the calibrations |
272 | 18 | Paul Carensac | |
273 | 18 | Paul Carensac | h3. Evolution |
274 | 18 | Paul Carensac | |
275 | 18 | Paul Carensac | * Creating application |
276 | 18 | Paul Carensac | |
277 | 18 | Paul Carensac | * See scheduler documentation above |
278 | 18 | Paul Carensac | |
279 | 43 | Paul Carensac | * Implemented the skeleton of the module in the task Analysis (call a function for calibrations then a function for analyses) |
280 | 1 | Paul Carensac | |
281 | 1 | Paul Carensac | h3. Notes |
282 | 1 | Paul Carensac | |
283 | 36 | Paul Carensac | h3. TODO |
284 | 43 | Paul Carensac | |
285 | 43 | Paul Carensac | * Apply the calibrations in the right function |
286 | 43 | Paul Carensac | * Apply the analyses only if it's a GRB |
287 | 43 | Paul Carensac | * Implement the analyses |
288 | 43 | Paul Carensac | * Send analyses to FSC |
289 | 18 | Paul Carensac | |
290 | 18 | Paul Carensac | --- |
291 | 18 | Paul Carensac | |
292 | 19 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}majordome% |
293 | 18 | Paul Carensac | |
294 | 18 | Paul Carensac | h3. Purpose |
295 | 18 | Paul Carensac | |
296 | 44 | Paul Carensac | * Handles the execution of the sequences in the right order during the night |
297 | 44 | Paul Carensac | * Handles the system start & stop |
298 | 44 | Paul Carensac | * Handles the changes of observation conditions |
299 | 46 | Paul Carensac | * Stops the celery tasks when needed |
300 | 44 | Paul Carensac | |
301 | 18 | Paul Carensac | h3. Evolution |
302 | 18 | Paul Carensac | |
303 | 21 | Paul Carensac | * Creating application |
304 | 1 | Paul Carensac | |
305 | 46 | Paul Carensac | * See scheduler documentation above |
306 | 21 | Paul Carensac | |
307 | 46 | Paul Carensac | * Created all the tasks in tasks.py |
308 | 21 | Paul Carensac | |
309 | 46 | Paul Carensac | * Created the TaskManager to stop the sequence & plan executions when an alert / routine is received |
310 | 21 | Paul Carensac | |
311 | 46 | Paul Carensac | * Implemented execute_sequence (not finished) |
312 | 1 | Paul Carensac | |
313 | 1 | Paul Carensac | h3. Notes |
314 | 1 | Paul Carensac | |
315 | 1 | Paul Carensac | h3. TODO |
316 | 46 | Paul Carensac | |
317 | 46 | Paul Carensac | * TaskManager |
318 | 46 | Paul Carensac | |
319 | 46 | Paul Carensac | * When a sequence is cancelled, give back the quota to the user |
320 | 46 | Paul Carensac | * In case of alert, do not stop the ongoing plan, and make the instruments abort |
321 | 46 | Paul Carensac | |
322 | 46 | Paul Carensac | * execute_sequence |
323 | 46 | Paul Carensac | |
324 | 46 | Paul Carensac | * Add the PLC checks at start (to see if we do the slew) |
325 | 46 | Paul Carensac | * Use the global telescope (instead of creating one here) |
326 | 46 | Paul Carensac | * Give first_schedule as false when a scheduling is launched |
327 | 46 | Paul Carensac | * Remove the default countdown (1, for tests) |
328 | 46 | Paul Carensac | |
329 | 46 | Paul Carensac | * system_pause |
330 | 46 | Paul Carensac | |
331 | 46 | Paul Carensac | * Abort the isntruments |
332 | 46 | Paul Carensac | * Stop the execution tasks |
333 | 46 | Paul Carensac | |
334 | 46 | Paul Carensac | * system_restart |
335 | 46 | Paul Carensac | |
336 | 46 | Paul Carensac | * Start a scheduling |
337 | 46 | Paul Carensac | |
338 | 46 | Paul Carensac | * change_obs_conditions |
339 | 46 | Paul Carensac | |
340 | 46 | Paul Carensac | * Change sequences status (if needed) |
341 | 46 | Paul Carensac | * If some status changed, re-launch a scheduling |
342 | 18 | Paul Carensac | |
343 | 18 | Paul Carensac | --- |
344 | 18 | Paul Carensac | |
345 | 19 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}monitoring% |
346 | 18 | Paul Carensac | |
347 | 18 | Paul Carensac | h3. Purpose |
348 | 18 | Paul Carensac | |
349 | 47 | Paul Carensac | * It is the only tasks launched at the system's start |
350 | 47 | Paul Carensac | * Make all the starting actions : instruments configuration, connection to the PLC, updating software versions, determine night start/end & start a scheduling |
351 | 47 | Paul Carensac | * Starts the alert_listener |
352 | 47 | Paul Carensac | * Infinite loop to regularly check the instruments and PLC status (and send them to the IC) |
353 | 47 | Paul Carensac | * Handles night start & end |
354 | 47 | Paul Carensac | |
355 | 18 | Paul Carensac | h3. Evolution |
356 | 18 | Paul Carensac | |
357 | 1 | Paul Carensac | * Creating application |
358 | 21 | Paul Carensac | |
359 | 1 | Paul Carensac | * See scheduler documentation above |
360 | 1 | Paul Carensac | |
361 | 47 | Paul Carensac | * System to launch the task at the system's start |
362 | 1 | Paul Carensac | |
363 | 47 | Paul Carensac | * Implement skeleton of task |
364 | 1 | Paul Carensac | |
365 | 47 | Paul Carensac | * Implement starting actions (with some empty functions) |
366 | 47 | Paul Carensac | |
367 | 47 | Paul Carensac | * Main loop to check PLC, instruments and night start / end (not finished) |
368 | 18 | Paul Carensac | |
369 | 18 | Paul Carensac | h3. Notes |
370 | 18 | Paul Carensac | |
371 | 18 | Paul Carensac | h3. TODO |
372 | 18 | Paul Carensac | |
373 | 48 | Paul Carensac | * views |
374 | 48 | Paul Carensac | |
375 | 48 | Paul Carensac | * Move the dashboard here |
376 | 48 | Paul Carensac | * Print the instrument status |
377 | 48 | Paul Carensac | * Print PLC informations (with the evolution) |
378 | 48 | Paul Carensac | * In the dashboard screens, put scroll on each screen to see the old logs |
379 | 48 | Paul Carensac | |
380 | 48 | Paul Carensac | * Monitoring task |
381 | 48 | Paul Carensac | |
382 | 48 | Paul Carensac | * Uncomment the scheduling at the beginning |
383 | 48 | Paul Carensac | * Implement night start/end computation |
384 | 48 | Paul Carensac | * Initialize communication with the instruments |
385 | 48 | Paul Carensac | * Configure intruments at start |
386 | 48 | Paul Carensac | * Send software versions to the IC |
387 | 48 | Paul Carensac | * Initialize connection with PLC |
388 | 48 | Paul Carensac | * After the starting actions, loop to wait for the instruments configuration to be finished |
389 | 48 | Paul Carensac | * Ask PLC for status |
390 | 48 | Paul Carensac | * Ask filter wheel for status |
391 | 48 | Paul Carensac | * Store the instruments & PLC status |
392 | 48 | Paul Carensac | * Send all status to IC |
393 | 48 | Paul Carensac | * Analyse PLC status (obs conditions, ...) |
394 | 48 | Paul Carensac | * Create tasks of obs condition changes |
395 | 48 | Paul Carensac | |
396 | 19 | Paul Carensac | --- |
397 | 18 | Paul Carensac | |
398 | 18 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}observation_manager% |
399 | 18 | Paul Carensac | |
400 | 18 | Paul Carensac | h3. Purpose |
401 | 18 | Paul Carensac | |
402 | 49 | Paul Carensac | * Give orders the instruments to execute the plans |
403 | 49 | Paul Carensac | * Take the calibration images and computes the 'super' calibration images |
404 | 49 | Paul Carensac | |
405 | 18 | Paul Carensac | h3. Evolution |
406 | 1 | Paul Carensac | |
407 | 18 | Paul Carensac | * Creating application |
408 | 1 | Paul Carensac | |
409 | 21 | Paul Carensac | * See scheduler documentation above |
410 | 1 | Paul Carensac | |
411 | 49 | Paul Carensac | * Created the tasks : execute_plan_(nir/vis) & create_calibrations |
412 | 1 | Paul Carensac | |
413 | 49 | Paul Carensac | * Implemented the execute_plan tasks with some incomplete functions |
414 | 1 | Paul Carensac | |
415 | 1 | Paul Carensac | h3. Notes |
416 | 1 | Paul Carensac | |
417 | 1 | Paul Carensac | h3. TODO |
418 | 49 | Paul Carensac | |
419 | 49 | Paul Carensac | * execute_plan : |
420 | 49 | Paul Carensac | |
421 | 49 | Paul Carensac | * Use the cameras at a global level instead of creating them here (same for the filter wheels) |
422 | 49 | Paul Carensac | * Uncomment the instruments_ready waiting function |
423 | 49 | Paul Carensac | * Uncomment the observation_ending waiting function |
424 | 49 | Paul Carensac | * Try to remove code duplication |
425 | 49 | Paul Carensac | * Determine what needs to be done at the end of an observation |
426 | 49 | Paul Carensac | |
427 | 49 | Paul Carensac | * create_calibrations : |
428 | 49 | Paul Carensac | |
429 | 49 | Paul Carensac | * Make the calibration images |
430 | 49 | Paul Carensac | * Generate super images |
431 | 49 | Paul Carensac | * Send them to the IC |
432 | 18 | Paul Carensac | |
433 | 18 | Paul Carensac | --- |
434 | 18 | Paul Carensac | |
435 | 18 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}routine_manager% |
436 | 18 | Paul Carensac | |
437 | 18 | Paul Carensac | h3. Purpose |
438 | 18 | Paul Carensac | |
439 | 50 | Paul Carensac | * Enables astronomers to create routines via the website |
440 | 50 | Paul Carensac | * Import / export of routines (XML) |
441 | 50 | Paul Carensac | * Display observation results for routines |
442 | 50 | Paul Carensac | |
443 | 18 | Paul Carensac | h3. Evolution |
444 | 18 | Paul Carensac | |
445 | 18 | Paul Carensac | * Creating application |
446 | 18 | Paul Carensac | |
447 | 18 | Paul Carensac | * See scheduler documentation above |
448 | 18 | Paul Carensac | |
449 | 50 | Paul Carensac | * Created forms online for routine creation |
450 | 50 | Paul Carensac | |
451 | 50 | Paul Carensac | * Added import / export |
452 | 50 | Paul Carensac | |
453 | 50 | Paul Carensac | * Added routine submit / unsubmit |
454 | 18 | Paul Carensac | |
455 | 52 | Paul Carensac | h3. Tests |
456 | 52 | Paul Carensac | |
457 | 52 | Paul Carensac | * Import fake file |
458 | 52 | Paul Carensac | * Import invalid file |
459 | 52 | Paul Carensac | * Import good file |
460 | 52 | Paul Carensac | * Export incomplete |
461 | 52 | Paul Carensac | * Export valid |
462 | 52 | Paul Carensac | |
463 | 18 | Paul Carensac | h3. Notes |
464 | 18 | Paul Carensac | |
465 | 19 | Paul Carensac | h3. TODO |
466 | 50 | Paul Carensac | |
467 | 51 | Paul Carensac | * Web |
468 | 50 | Paul Carensac | |
469 | 51 | Paul Carensac | * Put the goods fields (for coordinates etc) |
470 | 51 | Paul Carensac | * Only propose the objects that matches the conditions (ex: scientific programs of the user only) |
471 | 51 | Paul Carensac | * Do all the needed checks |
472 | 51 | Paul Carensac | * Add automatic computation of JD1/JD2 |
473 | 51 | Paul Carensac | * Add checkbox for JD / GD |
474 | 51 | Paul Carensac | * Add options : copy my sequence on x days, and authorise report |
475 | 51 | Paul Carensac | * Add ETC-IS simulation |
476 | 51 | Paul Carensac | * Add help for new users (and for it the first time an account come on the page) |
477 | 51 | Paul Carensac | |
478 | 51 | Paul Carensac | * Do more checks at unserialization |
479 | 51 | Paul Carensac | |
480 | 51 | Paul Carensac | * views |
481 | 51 | Paul Carensac | |
482 | 51 | Paul Carensac | * When saving, do more checks on coordinates, jd1/2 etc |
483 | 51 | Paul Carensac | * Uncomment filter for alerts removing |
484 | 51 | Paul Carensac | * When submitting, use the monitoring to determine sequences status |
485 | 51 | Paul Carensac | * When submitting, modify the first_schedule to False, when scheduling |
486 | 51 | Paul Carensac | * When unsubmitting, uncomment the check for EXED and EXING removing |
487 | 51 | Paul Carensac | * When unsubmitting, uncomment the scheduling and change the first_schedule to False |
488 | 18 | Paul Carensac | |
489 | 18 | Paul Carensac | --- |
490 | 18 | Paul Carensac | |
491 | 18 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}user_manager% |
492 | 18 | Paul Carensac | |
493 | 31 | Paul Carensac | h3. Purpose |
494 | 31 | Paul Carensac | |
495 | 31 | Paul Carensac | * Handle user create / delete / login / logout |
496 | 18 | Paul Carensac | * Allow to see user profile and make password recovery |
497 | 18 | Paul Carensac | |
498 | 18 | Paul Carensac | h3. Evolution |
499 | 18 | Paul Carensac | |
500 | 18 | Paul Carensac | * Creating application |
501 | 18 | Paul Carensac | |
502 | 32 | Paul Carensac | * See scheduler documentation above |
503 | 32 | Paul Carensac | |
504 | 32 | Paul Carensac | * Taking and adapting templates from Alexandru project |
505 | 32 | Paul Carensac | |
506 | 32 | Paul Carensac | * User creation |
507 | 33 | Paul Carensac | |
508 | 33 | Paul Carensac | * Form in admin.py |
509 | 33 | Paul Carensac | * Functions to verify if email doesn't exist and if passwords match |
510 | 18 | Paul Carensac | * Added check to pass login page if user is already autheticated |
511 | 18 | Paul Carensac | * Restricted access to all pyros views to authenticated users (except from user creation and login) with @login_required |
512 | 18 | Paul Carensac | |
513 | 53 | Paul Carensac | h3. Tests |
514 | 53 | Paul Carensac | |
515 | 53 | Paul Carensac | * Creation |
516 | 53 | Paul Carensac | * Login |
517 | 53 | Paul Carensac | * wrong email |
518 | 53 | Paul Carensac | * wrong password |
519 | 53 | Paul Carensac | * logout |
520 | 53 | Paul Carensac | |
521 | 18 | Paul Carensac | h3. Notes |
522 | 31 | Paul Carensac | |
523 | 31 | Paul Carensac | h3. TODO |
524 | 31 | Paul Carensac | |
525 | 31 | Paul Carensac | * Password recovery |
526 | 18 | Paul Carensac | * Profile page |
527 | 18 | Paul Carensac | * User validation by administrator / commission |
528 | 53 | Paul Carensac | * Handle permissions and access |
529 | 53 | Paul Carensac | |
530 | 18 | Paul Carensac | |
531 | 20 | Paul Carensac | --- |
532 | 18 | Paul Carensac | |
533 | 18 | Paul Carensac | h2. %{margin-left:0px; font-weight:bold; font-size:25px; display:block; color:red;}common% |
534 | 18 | Paul Carensac | |
535 | 18 | Paul Carensac | h3. Purpose |
536 | 18 | Paul Carensac | |
537 | 18 | Paul Carensac | * Regroups common data and functions shared by applications |
538 | 18 | Paul Carensac | |
539 | 25 | Paul Carensac | h3. Content |
540 | 18 | Paul Carensac | |
541 | 25 | Paul Carensac | * RequestBuilder - class to build and save in DB the requests |
542 | 25 | Paul Carensac | |
543 | 25 | Paul Carensac | * You can start a request, then add sequences, albums and plans, given their parent class (ex: you need to give a sequence id to create an album) |
544 | 18 | Paul Carensac | * Each function returns the ID of the element it created (to give it to the children classes) |
545 | 18 | Paul Carensac | * To save a request, you need to use validate_request |
546 | 54 | Paul Carensac | |
547 | 54 | Paul Carensac | * Device and children |
548 | 54 | Paul Carensac | |
549 | 54 | Paul Carensac | * Implementation of devices communication, messages and initialization |
550 | 54 | Paul Carensac | * All classes inherit from the Device class |
551 | 54 | Paul Carensac | * All classes re-implement the list of messages |
552 | 25 | Paul Carensac | |
553 | 54 | Paul Carensac | h3. Tests |
554 | 54 | Paul Carensac | |
555 | 54 | Paul Carensac | * Test the creation of a full request by the RequestBuilder |
556 | 54 | Paul Carensac | |
557 | 25 | Paul Carensac | h3. Notes |
558 | 18 | Paul Carensac | |
559 | 18 | Paul Carensac | * Will probably contain the DB models at last ... |
560 | 1 | Paul Carensac | |
561 | 1 | Paul Carensac | h3. TODO |
562 | 54 | Paul Carensac | |
563 | 54 | Paul Carensac | * Network communication for every instrument |
564 | 54 | Paul Carensac | * Change the 'first_schedule' to False at the end of RequestBuilder.validate() |