Blame view

sockets_tele/README.txt 8.39 KB
fc6ea9bc   Etienne Pallier   socket client pou...
1
2
3


********************************************************************************************
3f616717   Etienne Pallier   Nombreuses petite...
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
1) TEST

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

Ca doit se terminer par quelque chose comme:
Ran 1 test in 0.005s
OK

Là, il faut arrêter avec CTRL-C (car je ne sais pas encore comment arrêter le serveur simulateur autrement !)



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

fc6ea9bc   Etienne Pallier   socket client pou...
21
22
23
24
25
Pour lancer le client sur ton telescope Gemini:
./client_gemini_run.py
(Windows: python3 client_gemini_run.py)

(NB: un log "client.log" est créé et alimenté au fur et à mesure)
ca2504aa   Etienne Pallier   Nouvelle version ...
26
(Pour avoir plus de détail, mettre la variable DEBUG à True dans le fichier client_gemini_run.py) 
fc6ea9bc   Etienne Pallier   socket client pou...
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
(press ENTER to quit)

REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: GD
src.client.client_udp_or_tcp - INFO - Sent: b'01000000:GD#\n'
src.client.client_udp_or_tcp - INFO - RECEIVED (ALL BYTES): b'01000000+87.380139#\x00'
src.client.client_udp_or_tcp - INFO - RECEIVED (useful data): +87.380139


REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: GR
src.client.client_udp_or_tcp - INFO - Sent: b'01000000:GR#\n'
src.client.client_udp_or_tcp - INFO - RECEIVED (ALL BYTES): b'0100000020.865902#\x00'
src.client.client_udp_or_tcp - INFO - RECEIVED (useful data): 20.865902


REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: GV
src.client.client_udp_or_tcp - INFO - Sent: b'01000000:GV#\n'
src.client.client_udp_or_tcp - INFO - RECEIVED (ALL BYTES): b'01000000510#\x00'
src.client.client_udp_or_tcp - INFO - RECEIVED (useful data): 510


REQUEST TO SERVER [ex: ':GD#' (Get Dec), ':GR#' (Get RA)']: Gv
src.client.client_udp_or_tcp - INFO - Sent: b'01000000:Gv#\n'
src.client.client_udp_or_tcp - INFO - RECEIVED (ALL BYTES): b'01000000T\x00'
src.client.client_udp_or_tcp - INFO - RECEIVED (useful data): T


ca2504aa   Etienne Pallier   Nouvelle version ...
53

fc6ea9bc   Etienne Pallier   socket client pou...
54
********************************************************************************************
3f616717   Etienne Pallier   Nombreuses petite...
55
56
3) DEV

ca2504aa   Etienne Pallier   Nouvelle version ...
57
Pour lancer le client sur le "simulateur" de telescope (localhost, port 11110):
fc6ea9bc   Etienne Pallier   socket client pou...
58
- dans un terminal, lancer le simulateur: ./server_run.py
ca2504aa   Etienne Pallier   Nouvelle version ...
59
60
- dans un autre terminal, lancer le client: ./client_gemini_run.py local

37e3b077   Etienne Pallier   do_init() is now ...
61
62
63
	
	
********************************************************************************************
c6f1b364   Etienne Pallier   TODOLIST updated ...
64
4) DONE
7d8f698f   Etienne Pallier   get() set() do()
65

54cb16da   Etienne Pallier   implementation du...
66
67
	- doctests

31e3fa71   Etienne Pallier   do_init() finaliz...
68
69
70
71
	- GOTO
	- finalize do_init()

	- set date&time, set lat&long
37e3b077   Etienne Pallier   do_init() is now ...
72
73
	- README file enriched
    - help => liste cdes possibles
c6f1b364   Etienne Pallier   TODOLIST updated ...
74
75
76
77
78
79
80
81
82
83
    - (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 ...
84
	
f886f7c6   Etienne Pallier   Telescope Generic...
85
86
    - generic commands available from client console
    - generic commands implemented
37e3b077   Etienne Pallier   do_init() is now ...
87
88
89
90
91
    
    - procedure initialize()

    - ACK (cde 6)

7d8f698f   Etienne Pallier   get() set() do()
92
93
    - 3 types of commands
    - \x00 at end
37e3b077   Etienne Pallier   do_init() is now ...
94
95

    - classe SocketClientAbstract de base
c6f1b364   Etienne Pallier   TODOLIST updated ...
96
97
   
   
7d8f698f   Etienne Pallier   get() set() do()
98
********************************************************************************************
c6f1b364   Etienne Pallier   TODOLIST updated ...
99
5) WORK CURRENTLY IN PROGRESS...
7d8f698f   Etienne Pallier   get() set() do()
100

31e3fa71   Etienne Pallier   do_init() finaliz...
101
	
54cb16da   Etienne Pallier   implementation du...
102
	- move do_GOTO dans abstract
c6f1b364   Etienne Pallier   TODOLIST updated ...
103
	
54cb16da   Etienne Pallier   implementation du...
104
	- main updated
c6f1b364   Etienne Pallier   TODOLIST updated ...
105
	- tests updated
54cb16da   Etienne Pallier   implementation du...
106
107
108
109
	
	- comment functions args
	
	- clean code
37e3b077   Etienne Pallier   do_init() is now ...
110
    
37e3b077   Etienne Pallier   do_init() is now ...
111

c6f1b364   Etienne Pallier   TODOLIST updated ...
112
113
********************************************************************************************
6) TODO LIST
37e3b077   Etienne Pallier   do_init() is now ...
114

c6f1b364   Etienne Pallier   TODOLIST updated ...
115
116
117
118
119
120
121
	- 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é
	
7d8f698f   Etienne Pallier   get() set() do()
122
    - POSITION (p103):
54cb16da   Etienne Pallier   implementation du...
123
124
	- (100) MOVE() (p104-105)
		=> en altaz ou radec 
c6f1b364   Etienne Pallier   TODOLIST updated ...
125
126
127
128
129
130
131
		=> 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...
132
133
134
135
136
137
138
139
140
	    - 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 ...
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
	
	- (100) GOTO:
		- 1) goto_setmode(radec | hadec | altaz)
		- 2) goto()
		- 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...)
		
	- (100) do_native()
	
	- (100) generic functions return tuple with error code :
		res = get_ra()
		=> res.res is the resulte
		=> res.error is the error object : err.error_code, err.generic_msg, err.native_msg
		
	- (200) PLC abstract client
	
	- (100) input commands format : 
		- get ra
		- set ra "2h3m27s" => converted by celme.Angle(ra).deg()
		
	- (200) superclass ClientChannel for ClientSocketAbstract : for UDP, TCP, serial, usb...
	
	- (100) _cmds_getset, _cmds_do = list of functions 

	- 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()
194
        
c6f1b364   Etienne Pallier   TODOLIST updated ...
195
196
197
198
    - Table d'attributs pour chaque telescope (config)
         
    - _connect() ou connect() ?
    
7d8f698f   Etienne Pallier   get() set() do()
199
200
201
202
    - Implémenter les commandes NATIVES (non LX-200) :
        - < ou >, termine par ':' + checksum + #
    

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

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

7d8f698f   Etienne Pallier   get() set() do()
205
206
207
208
209
210
211
212
213








********************************************************************************************
37e3b077   Etienne Pallier   do_init() is now ...
214
7) INFORMATIONS
7d8f698f   Etienne Pallier   get() set() do()
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256


    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...