Blame view

devices_channel/README.txt 9.26 KB
fc6ea9bc   Etienne Pallier   socket client pou...
1
2
3


********************************************************************************************
3f616717   Etienne Pallier   Nombreuses petite...
4
5
6
7
8
9
10
1) TEST

Pour lancer les TESTS:
cd test/
./test_client_gemini.py 

Ca doit se terminer par quelque chose comme:
737e50e9   Etienne Pallier   updated README
11
Ran 2 tests in 0.013s
3f616717   Etienne Pallier   Nombreuses petite...
12
13
OK

737e50e9   Etienne Pallier   updated README
14
Là, il faut arrêter avec CTRL-C (car je ne sais pas encore comment arrêter le simulateur de Telescope (serveur) autrement !)
3f616717   Etienne Pallier   Nombreuses petite...
15
16
17
18
19
20



********************************************************************************************
2) RUN

737e50e9   Etienne Pallier   updated README
21
22
23
Pour lancer le client sur le telescope Gemini de Alain Klotz:
./telescope_controller_gemini_run.py
(Windows: python3 telescope_controller_gemini_run.py)
fc6ea9bc   Etienne Pallier   socket client pou...
24
25

(NB: un log "client.log" est créé et alimenté au fur et à mesure)
737e50e9   Etienne Pallier   updated README
26
(Pour avoir moins de détail, mettre la variable DEBUG à False dans le fichier telescope_controller_gemini_run.py) 
fc6ea9bc   Etienne Pallier   socket client pou...
27
28
(press ENTER to quit)

b7dc5536   Etienne Pallier   decorator @generi...
29
Examples of requests:
fc6ea9bc   Etienne Pallier   socket client pou...
30

b7dc5536   Etienne Pallier   decorator @generi...
31
32
33
34
35
36
REQUEST TO SERVER (ENTER to quit): >>> :GR#
NATIVE Command to send is ':GR#'
Sent: b'00090000:GR#\x00'
Sent 13 bytes
RECEIVED (ALL BYTES): b'0009000015:01:48#\x00'
RECEIVED (useful data): 15:01:48
fc6ea9bc   Etienne Pallier   socket client pou...
37

b7dc5536   Etienne Pallier   decorator @generi...
38
39
40
41
42
43
44
45
REQUEST TO SERVER (ENTER to quit): >>> get ra
GENERIC Command to send is get_ra
NATIVE Command to send is ':GR#'
Sent: b'00100000:GR#\x00'
Sent 13 bytes
RECEIVED (ALL BYTES): b'0010000015:01:48#\x00'
RECEIVED (useful data): 15:01:48
result is 15:01:48
fc6ea9bc   Etienne Pallier   socket client pou...
46
47


ca2504aa   Etienne Pallier   Nouvelle version ...
48

fc6ea9bc   Etienne Pallier   socket client pou...
49
********************************************************************************************
3f616717   Etienne Pallier   Nombreuses petite...
50
51
3) DEV

ca2504aa   Etienne Pallier   Nouvelle version ...
52
Pour lancer le client sur le "simulateur" de telescope (localhost, port 11110):
fc6ea9bc   Etienne Pallier   socket client pou...
53
- dans un terminal, lancer le simulateur: ./server_run.py
737e50e9   Etienne Pallier   updated README
54
- dans un autre terminal, lancer le client avec le paramètre "local": ./telescope_controller_gemini_run.py local
ca2504aa   Etienne Pallier   Nouvelle version ...
55

37e3b077   Etienne Pallier   do_init() is now ...
56
57
58
	
	
********************************************************************************************
c6f1b364   Etienne Pallier   TODOLIST updated ...
59
4) DONE
7d8f698f   Etienne Pallier   get() set() do()
60

bc955504   Etienne Pallier   greatly improved ...
61
62
63
64
65
	5/10/18:
	
	- greatly improved (plant)UML class diagram(s) 
	
	
62e41b8f   Etienne Pallier   BIG REORGANIZATIO...
66
67
68
69
70
71
72
73
	4/10/18:
	
	- BIG REORGANIZATION OF CODE
		=> new class DeviceControllerAbstract which has a component ClientChannel (of type "socket", "serial", or "usb")
	- tests ok
	- cleanup
	

f6e5fcb2   Etienne Pallier   abstract commands...
74
	2/10/18:
ff4e8d44   Etienne Pallier   improved telescop...
75
	
62e41b8f   Etienne Pallier   BIG REORGANIZATIO...
76
77
78
	- included "doctests" in tests (try it by running "cd test/ ; ./test_client_gemini.py")
	- started plc client 
	
ff4e8d44   Etienne Pallier   improved telescop...
79
80
	- improved telescope simulator server answers : do_goto(), do_move(), do_init()  
	
b5acee63   Etienne Pallier   improved telescop...
81
82
83
	- improved telescope simulator server answers
	- tests pass ok
	
b7dc5536   Etienne Pallier   decorator @generi...
84
85
	- decorator @generic_cmd
	
f6e5fcb2   Etienne Pallier   abstract commands...
86
87
88
89
90
	- abstract commands dictionary is now the default one and is ovewritable with native dictionary
	- native telescope class is now less than 300 lines (majority of code is in the abstract class so that it is easy to make a new concrete telescope class):
	=> ne contient quasiment QUE le dictionnaire des commandes natives
	- cleanup
	
62e41b8f   Etienne Pallier   BIG REORGANIZATIO...
91
	
7e82f0aa   Etienne Pallier   interpreteur de c...
92
	1/10/18:
ff4e8d44   Etienne Pallier   improved telescop...
93
	
7e82f0aa   Etienne Pallier   interpreteur de c...
94
95
96
97
98
99
	- interpreteur de cde generique et native : set ra 20:00:00 ou :GR#
	- execute_cmd():
		- execute_generic_cmd()
		- execute_native_cmd()
	- GenericResult()
	
62e41b8f   Etienne Pallier   BIG REORGANIZATIO...
100
	
7e82f0aa   Etienne Pallier   interpreteur de c...
101
	28/9/18:
ff4e8d44   Etienne Pallier   improved telescop...
102
	
23b4fbc5   Etienne Pallier   move do_init() to...
103
104
105
	- move do_init() to abstract class
	- generic return code for each command

a494f372   Etienne Pallier   clean code AND mo...
106
107
108
	- clean code
	- move do_goto() and move_dir() to abstract class

54cb16da   Etienne Pallier   implementation du...
109
110
	- doctests

62e41b8f   Etienne Pallier   BIG REORGANIZATIO...
111

7e82f0aa   Etienne Pallier   interpreteur de c...
112
	27/9/18:
ff4e8d44   Etienne Pallier   improved telescop...
113
	
31e3fa71   Etienne Pallier   do_init() finaliz...
114
115
116
117
	- GOTO
	- finalize do_init()

	- set date&time, set lat&long
37e3b077   Etienne Pallier   do_init() is now ...
118
119
	- README file enriched
    - help => liste cdes possibles
c6f1b364   Etienne Pallier   TODOLIST updated ...
120
121
122
123
124
125
126
127
128
129
    - (X) set DATE & TIME (p109)
        - Ce que fait AK avec TCL ou C: sprintf(ligne,":SC%02d/%02d/%02d#:SL%02d:%02d:%02.0f#:SG+00#",m,d,y-2000,h,min,s);
			 1) :SG+00#
			=> TU
			2) SC%02d/%02d/%02d#:
			mois, jour, YY
			3) SL%02d:%02d:%02.0f#:
			hh:mn:ss (heure locale)
			m,d,y-2000,h,min,s
			Faire les 3 commandes ensemble en 1 seule ligne, chacune séparée par #, le tout terminé par « 00 »
37e3b077   Etienne Pallier   do_init() is now ...
130
	
f886f7c6   Etienne Pallier   Telescope Generic...
131
132
    - generic commands available from client console
    - generic commands implemented
37e3b077   Etienne Pallier   do_init() is now ...
133
134
135
136
137
    
    - procedure initialize()

    - ACK (cde 6)

7d8f698f   Etienne Pallier   get() set() do()
138
139
    - 3 types of commands
    - \x00 at end
37e3b077   Etienne Pallier   do_init() is now ...
140
141

    - classe SocketClientAbstract de base
c6f1b364   Etienne Pallier   TODOLIST updated ...
142
   
62e41b8f   Etienne Pallier   BIG REORGANIZATIO...
143
144
  
  
7d8f698f   Etienne Pallier   get() set() do()
145
********************************************************************************************
c6f1b364   Etienne Pallier   TODOLIST updated ...
146
5) WORK CURRENTLY IN PROGRESS...
7d8f698f   Etienne Pallier   get() set() do()
147

54cb16da   Etienne Pallier   implementation du...
148
	- main updated
c6f1b364   Etienne Pallier   TODOLIST updated ...
149
	- tests updated
54cb16da   Etienne Pallier   implementation du...
150
151
	- comment functions args
	
37e3b077   Etienne Pallier   do_init() is now ...
152
    
37e3b077   Etienne Pallier   do_init() is now ...
153

c6f1b364   Etienne Pallier   TODOLIST updated ...
154
155
********************************************************************************************
6) TODO LIST
37e3b077   Etienne Pallier   do_init() is now ...
156

b5acee63   Etienne Pallier   improved telescop...
157
158
	- INTEGRATION INTO PYROS
	
bc955504   Etienne Pallier   greatly improved ...
159
160
	- LOG: avoir le nom du module qui logue et non pas only logs.py
	
7e82f0aa   Etienne Pallier   interpreteur de c...
161
162
	- interpreteur de cde generique (avec celme pour les values) : set ra 20:00:00

c6f1b364   Etienne Pallier   TODOLIST updated ...
163
164
165
166
167
168
169
	- Tele MEADE ETX (altaz) : cf doc pdf (from page 1)
		- peut être en 3 modes : land, altaz, polar (equatorial)
		- :AP# => passer en mode polar
		- :AA# => passer en mode AltAz
		- cette config doit être fait dans do_init()
		- doc page 1 : x=implémenté, p=partial, - = pas implémenté
	
430e6c92   Etienne Pallier   do_init() ok avec...
170
171
	- Position class
	
7d8f698f   Etienne Pallier   get() set() do()
172
    - POSITION (p103):
54cb16da   Etienne Pallier   implementation du...
173
174
	- (100) MOVE() (p104-105)
		=> en altaz ou radec 
c6f1b364   Etienne Pallier   TODOLIST updated ...
175
176
177
178
179
180
181
		=> préférer "haut, bas, gauche, droite" plutôt que North, South, west, east (surtout sur altaz ça n'a aucun sens)
		=> sur equatorial, h,b = DEC et g,d = RA
		- set_speed()
		- start(direction) avec direction = h,b,g,d => move infini
		- stop()
		- pulse(direction, nbsec) = start() puis sleep(nbsec) puis stop()
		- éventuellement start_diagonal qui ferait start(up) et start(right) en alternance (pas prioritaire)
31e3fa71   Etienne Pallier   do_init() finaliz...
182
183
184
185
186
187
188
189
190
	    - MOVE(direction, rate, duration):
	        - move dans une direction (N,S,E,O) à l'infini
	        - ':Q#' pour arrêter (p 108)
	        - duration: infinie si pas donnée
	        - rate (p108): 4 vitesses différentes (prendre la plus lente par défaut), entre 0 et 1:
	            - [0-0.25] : RC => Rate Center. Subsequent Move commands will move at Centering Speed.
	            - [0.25-0.50] : RG => Rate Guide. Subsequent Move commands will move at Guiding Speed.
	            - [0.50-0.75] : RM => Rate Move. Subsequent Move commands will move at Centering Speed.
	            - [0.75-1.0] : RS => Rate Slew. Subsequent Move commands will move at Slewing Speed.
c6f1b364   Etienne Pallier   TODOLIST updated ...
191
192
	
	- (100) GOTO:
737e50e9   Etienne Pallier   updated README
193
		- bloquant ou non
c6f1b364   Etienne Pallier   TODOLIST updated ...
194
195
		- 1) goto_setmode(radec | hadec | altaz)
		- 2) goto()
c6f1b364   Etienne Pallier   TODOLIST updated ...
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
		- Attention, gemini ne comprend que radec, les tarot ne comprennent que hadec !!! :
			=> goto_setmode(radec) ne fait rien sur un gemini, mais convertit sur un tarot
	
	- (100) vitesse de pointage (slew speed) : n'existe pas sur tous les tele
	
	- drift = tracking speed : une fois que tele a pointé, comment il part...
		- toujours en hadec
		- tracking_speed = 0 => tele est fixe
		- t.tracking_speed(ha ou ra, dec) => ha est en nb degrés/sec 
			=> t.tracking_speed(0,0)
			=> t.tracking_speed("diurnal" ou "sideral",0) // sideral c'est mieux
			- jour solaire : 86400s/jour
			- jour sideral (diurnal) = durée d'une journée pour une étoile = 86164s/jour (moins que jour solaire, à cause du fait que en 24h, la Terre a avancé sur son orbite circulaire)
			- nb degrés/sec = 360/86400 pour jour solaire, et 360/86164 pour jour sideral
	
	
	- (200) timeout : 1 pour send, 1 pour receive
	
	- (200) celme.angles => infos() à généraliser
	
	- (200) type erreurs
		- 1000 : communication (network, cable débranché) = channel
		- 2000 : syntax
		- 3000 : out of limit (pointage hors limite, ex: sur le sol)
		- 4000 : controller
		- 5000 : file (disk...)
		
737e50e9   Etienne Pallier   updated README
223
	- (200) generic functions return tuple with error code :
c6f1b364   Etienne Pallier   TODOLIST updated ...
224
		res = get_ra()
62e41b8f   Etienne Pallier   BIG REORGANIZATIO...
225
		=> res.res is the result
c6f1b364   Etienne Pallier   TODOLIST updated ...
226
		=> res.error is the error object : err.error_code, err.generic_msg, err.native_msg
62e41b8f   Etienne Pallier   BIG REORGANIZATIO...
227
228
229
230
231
		=> ou plutot:
			res,error = get_ra()
			res,_ = get_ra() # pour ignorer le code erreur
			res is the result
			error is the error object
c6f1b364   Etienne Pallier   TODOLIST updated ...
232
233
234
235
236
237
238
		
	- (200) PLC abstract client
	
	- (100) input commands format : 
		- get ra
		- set ra "2h3m27s" => converted by celme.Angle(ra).deg()
		
62e41b8f   Etienne Pallier   BIG REORGANIZATIO...
239
	- (100) _cmds = list of functions (???) 
c6f1b364   Etienne Pallier   TODOLIST updated ...
240
241
242
243
244
245

	- remplacer utf-8 par unicode ou iso...
	
    - cdes 05 (p100):
        - cde 05 => return long list of parameters (= GROS GET)
        - ENQ = 05
7d8f698f   Etienne Pallier   get() set() do()
246
        
c6f1b364   Etienne Pallier   TODOLIST updated ...
247
248
249
250
    - Table d'attributs pour chaque telescope (config)
         
    - _connect() ou connect() ?
    
7d8f698f   Etienne Pallier   get() set() do()
251
252
253
254
    - Implémenter les commandes NATIVES (non LX-200) :
        - < ou >, termine par ':' + checksum + #
    

37e3b077   Etienne Pallier   do_init() is now ...
255

7d8f698f   Etienne Pallier   get() set() do()
256

7d8f698f   Etienne Pallier   get() set() do()
257
258
259
260
261
262
263
264
265








********************************************************************************************
37e3b077   Etienne Pallier   do_init() is now ...
266
7) INFORMATIONS
7d8f698f   Etienne Pallier   get() set() do()
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308


    GMT = TU décalé de 12h, mais maintenant c'est pareil
    TU = UTC civil, voir aussi UT1, UT2
    
    COMMANDES LX-200:
    - SA et SZ pour envoyer coord en alt-az
    
    RA-DEC is converted into "pas codeurs" 
    1 pas codeur (mvmt interne du tele) = environ 1 sec arc sur le ciel
    (en gros, RA = petit axe du tele, DEC = grand axe du tele)
    
    Parking = vers le nord (cf photo) = en position CWD (Counter Weight Down) (contre-poids en bas ?)
    
    Par défaut, le tele fonctionne en RADEC J2000
    
    http://82.64.28.71:8083/L5V1serial.html
    
        
    Ce qui marche:
    
    - REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: 01000000:GD#
    Received (all data): 01000000+90:00:00#
    
    - REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: 01000000:GR#
    Received (all data): 0100000015:01:48#
    - REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: 01000000:GR#
    Received (all data): 0100000016:04:17#
    
    - Get Software Level l(one digit) and Version vv(two digits)
    REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: 01000000:GV#
    Received (all data): 01000000510#
    
    - REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: 01000000:GG#
    Received (all data): 01000000+00#
    
    - Get Maximum Velocity of both axes (N = No mvmt)
    REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: 01000000:Gv#
    Received (all data): 01000000N

    
    
ca2504aa   Etienne Pallier   Nouvelle version ...

fc6ea9bc   Etienne Pallier   socket client pou...

fc6ea9bc   Etienne Pallier   socket client pou...