appels_wrappers.py
3.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
# ===========================================================
# Commandes pour piloter manuellement un telescope avec pyros
# -----------------------------------------------------------
# Idealement les commandes suivantes sont effectuées dans un agent.
#
# Liens entre les devices et les agents wrappers
# 'TCHMount', 'MountPointing' ---> wrapper_deltatau_tch
# 'TCHCamera', 'DetectorSensor' ---> wrapper_andor_tch
# 'TCHCamera', 'DetectorShutter' ---> wrapper_andor_tch
# 'TCHCamera', 'DetectorTimer' ---> wrapper_meinberg_tch
# 'TCHCamera', 'FilterSelector' ---> wrapper_deltatau_tch
# 'TCHCamera', 'DetectorFocus' ---> wrapper_deltatau_tch
#
# 'DetectorFocus' ==>
# ===========================================================
# Lors d'une instanciation de la classe Config :
# - On lit les key,value des sections 'instanciation' du fichier de config
>>> config = Config("config.xml")
# On peut trouver les instanciations qu'il faut effectuer
>>> config.get_instanciations()
['mount1'='TCHMount', 'channel1'='TCHCamera']
# On veut connaitre tous les devices de cette mounture
>>> config.get_devices('TCHMount')
['MountPointing']
# On peut recevoir une liste de dictionnaires de tous les parametres d'un device de cette mounture
>>> config.get_device_params('TCHMount','MountPointing')
[ {'section':"MountPointing", 'key':"wrapper", 'value':"wrapper_deltatau_tch.py"},
{'section':"MountPointing", 'key':"home", 'value':"GPS 1.477083 E 43.81667 150" 'type':"str" 'unit':""} ]
# On veut connaitre tous les devices d'un channel
>>> config.get_devices('TCHCamera')
['DetectorSensor', 'DetectorShutter', 'DetectorTimer', 'FilterSelector', 'DetectorFocus']
# On peut recevoir une liste de dictionnaires de tous les parametres d'un device de ce channel
>>> config.get_device('TCHCamera','DetectorSensor')
[ {'section':"DetectorSensor", 'key':"wrapper", 'value':"wrapper_andor_tch.py", 'type'="str"},
{'section':"DetectorSensor", 'key':"sensor_type", 'value':"CCD", 'type':"str"} ]
>>> pyros = Pyros(config)
>>> w1 = pyros.launch_agent("wrapper_deltatau_tch")
>>> w2 = pyros.launch_agent("wrapper_andor_tch")
>>> w3 = pyros.launch_agent("wrapper_meinberg_tch")
>>> pyros.kill_agent(w3)
% === envoie une commande vers un agent
pyros.command_agent(w1,"current status")
pyros.command_agent(w1,"current status")
!!!!!!!!! ajouter I am alive database pour les agents !!!!!!!!!!!!
mount1 = pyros.mount1
channel1 = pyros.channel1
mount1.MountPointing("current status")
mount1.MountPointing("do init")
channel1.FilterSelector("current error")
channel1.FilterSelector("set symbol B")
channel1.FilterSelector("do goto")
while True:
action = channel1.FilterSelector("current action")
if (symbol == "B"):
break
channel1.FocusTuning("set position 10.0")
channel1.FocusTuning("do goto")
while True:
position = channel1.FocusTuning("current position")
if ( abs(position-10)):
break
mount1.MountPointing("set slew speed [20, 20]")
mount1.MountPointing("set drift speed ['diurnal', 0]")
mount1.MountPointing("set coord ephem_radec [date:'now', ra='3h38m', dec='-0d3m', equinox='J2000']")
mount1.MountPointing("do goto")
channel1.DetectorSensor("set binning [1, 1]")
channel1.DetectorSensor("set exptime 10.0")