Commit fc092b385c8abdae5c69a68953c9fa3adc6ba6b9
1 parent
1b27fed2
Exists in
dev
Mise à jour de TNC Raspberry.
Showing
2 changed files
with
88 additions
and
23 deletions
Show diff stats
mount_tnc/raspberry/mountastro.py
@@ -843,7 +843,7 @@ class Mountastro(Mounttools): | @@ -843,7 +843,7 @@ class Mountastro(Mounttools): | ||
843 | axisb.simu_motion_start("CONTINUOUS", frame='ang', drift=ha_drift_deg_per_sec) | 843 | axisb.simu_motion_start("CONTINUOUS", frame='ang', drift=ha_drift_deg_per_sec) |
844 | axisp.simu_motion_start("CONTINUOUS", frame='ang', drift=dec_drift_deg_per_sec) | 844 | axisp.simu_motion_start("CONTINUOUS", frame='ang', drift=dec_drift_deg_per_sec) |
845 | # === Real hardware | 845 | # === Real hardware |
846 | - err, res = self._my_hadec_move_stop(ha_drift_deg_per_sec, dec_drift_deg_per_sec) | 846 | + err, res = self._my_hadec_move_stop() |
847 | return err, res | 847 | return err, res |
848 | 848 | ||
849 | def _my_hadec_stop(self): | 849 | def _my_hadec_stop(self): |
@@ -1326,6 +1326,55 @@ class Mountastro(Mounttools): | @@ -1326,6 +1326,55 @@ class Mountastro(Mounttools): | ||
1326 | self.radec_init(self._lx200_setra_deg, self._lx200_setdec_deg) | 1326 | self.radec_init(self._lx200_setra_deg, self._lx200_setdec_deg) |
1327 | elif command.startswith(":MS")==True: | 1327 | elif command.startswith(":MS")==True: |
1328 | self.radec_goto(self._lx200_setra_deg, self._lx200_setdec_deg) | 1328 | self.radec_goto(self._lx200_setra_deg, self._lx200_setdec_deg) |
1329 | + if self._remote_command_protocol=="astromecca": | ||
1330 | + if command.startswith(chr(6))==True: | ||
1331 | + res = "P" | ||
1332 | + elif command.startswith(":Gg")==True: | ||
1333 | + deg = self.site.longitude | ||
1334 | + res = celme.Angle(deg).sexagesimal("d +0180") | ||
1335 | + res = res[0:4] + "*" + res[5:7] | ||
1336 | + """ | ||
1337 | + while True: | ||
1338 | + # --- read the ASCOM commands | ||
1339 | + lignes = "" | ||
1340 | + try: | ||
1341 | + err, lignes = ascom_chan.read_chan() | ||
1342 | + #print("lignes = {}".format(lignes)) | ||
1343 | + lignes = str(lignes[0]) | ||
1344 | + except: | ||
1345 | + pass | ||
1346 | + if err==ascom_chan.NO_ERROR and lignes != "": | ||
1347 | + mount_scx11.log.print("===\nlignes recu ={}".format(lignes)) | ||
1348 | + mots = lignes.split() | ||
1349 | + mount_scx11.log.print("mots recus ={}".format(mots)) | ||
1350 | + msg = "" | ||
1351 | + # --- traiter la ligne recue de ASCOM | ||
1352 | + if lignes.startswith("READ_RA")==True: | ||
1353 | + # --- on traite un goto | ||
1354 | + ra, dec, side = mount_scx11.radec_coord(UNIT_RA="deg") | ||
1355 | + mount_scx11.log.print("{} ra={}".format(mots[0],ra)) | ||
1356 | + msg = str( float(ra)/15.) | ||
1357 | + if lignes.startswith("READ_DEC")==True: | ||
1358 | + # --- on traite un goto | ||
1359 | + ra, dec, side = mount_scx11.radec_coord(UNIT_DEC="deg") | ||
1360 | + mount_scx11.log.print("{} dec={}".format(mots[0],dec)) | ||
1361 | + msg = str(dec) | ||
1362 | + # --- traiter la ligne recue de ASCOM | ||
1363 | + if lignes.startswith("GOTO_RA_DEC")==True: | ||
1364 | + ra = float(mots[1])*15. | ||
1365 | + dec = float(mots[2]) | ||
1366 | + mount_scx11.log.print("{} ra={} dec={}".format(mots[0],ra,dec)) | ||
1367 | + mount_scx11.radec_goto(ra, dec, EQUINOX="NOW") | ||
1368 | + if lignes.startswith("PARK")==True: | ||
1369 | + ha = 270.0 | ||
1370 | + dec = 90.0 | ||
1371 | + side = 1 | ||
1372 | + mount_scx11.log.print("{} ha={} dec={} side={}".format(mots[0],ra,dec,side)) | ||
1373 | + mount_scx11.hadec_goto(ha, dec, side=side) | ||
1374 | + # --- send the EQMOD answer to ASCOM | ||
1375 | + mount_scx11.log.print("msg renvoyé ={}".format(msg)) | ||
1376 | + ascom_chan.put_chan(msg) | ||
1377 | + """ | ||
1329 | else: | 1378 | else: |
1330 | pass | 1379 | pass |
1331 | if res=="": | 1380 | if res=="": |
mount_tnc/raspberry/universalpad.py
@@ -220,7 +220,9 @@ class UniversalPadRepeat(Thread): | @@ -220,7 +220,9 @@ class UniversalPadRepeat(Thread): | ||
220 | try: | 220 | try: |
221 | self._myself.pad_cbk_compute_lst() | 221 | self._myself.pad_cbk_compute_lst() |
222 | self._myself.pad_cbk_compute_coord() | 222 | self._myself.pad_cbk_compute_coord() |
223 | + #print("ok 1001") | ||
223 | except: | 224 | except: |
225 | + #print("pb 1001") | ||
224 | pass | 226 | pass |
225 | time.sleep(0.5) | 227 | time.sleep(0.5) |
226 | msg = "The thread UniversalPadRepeat termined properly" | 228 | msg = "The thread UniversalPadRepeat termined properly" |
@@ -250,7 +252,7 @@ class UniversalPad(): | @@ -250,7 +252,7 @@ class UniversalPad(): | ||
250 | # --- configuration depending the computer | 252 | # --- configuration depending the computer |
251 | if hostname == "titanium": | 253 | if hostname == "titanium": |
252 | print("Configuration = {}".format(hostname)) | 254 | print("Configuration = {}".format(hostname)) |
253 | - port_serial_scx11='//./com6' ; # '//./com4' | 255 | + port_serial_scx11='//./com12' ; # '//./com4' |
254 | port_serial_aux='//./com1' | 256 | port_serial_aux='//./com1' |
255 | elif hostname == "rapido2": | 257 | elif hostname == "rapido2": |
256 | print("Configuration = {}".format(hostname)) | 258 | print("Configuration = {}".format(hostname)) |
@@ -275,12 +277,18 @@ class UniversalPad(): | @@ -275,12 +277,18 @@ class UniversalPad(): | ||
275 | # --- shortcuts | 277 | # --- shortcuts |
276 | self._themount_axisb = self._themount.axis[Mountaxis.BASE] | 278 | self._themount_axisb = self._themount.axis[Mountaxis.BASE] |
277 | self._themount_axisp = self._themount.axis[Mountaxis.POLAR] | 279 | self._themount_axisp = self._themount.axis[Mountaxis.POLAR] |
278 | - # --- simulation or not | ||
279 | - self._themount_axisb.real = False | 280 | + # --- simulation or not |
281 | + mount_mode = self.padconfig['mount_mode'] | ||
282 | + if mount_mode=="simulation": | ||
283 | + mount_mode_real = False | ||
284 | + else: | ||
285 | + mount_mode_real = True | ||
286 | + print("mount_mode={}".format(mount_mode)) | ||
287 | + self._themount_axisb.real = mount_mode_real | ||
280 | self._themount_axisb.ratio_wheel_puley = 6.32721 | 288 | self._themount_axisb.ratio_wheel_puley = 6.32721 |
281 | self._themount_axisb.inc_per_motor_rev = 1540 # DPR for -490000 to +490000 | 289 | self._themount_axisb.inc_per_motor_rev = 1540 # DPR for -490000 to +490000 |
282 | self._themount_axisb.senseinc = 1 | 290 | self._themount_axisb.senseinc = 1 |
283 | - self._themount_axisp.real = False | 291 | + self._themount_axisp.real = mount_mode_real |
284 | self._themount_axisp.ratio_wheel_puley = 6.8262 | 292 | self._themount_axisp.ratio_wheel_puley = 6.8262 |
285 | self._themount_axisp.inc_per_motor_rev = 1421 | 293 | self._themount_axisp.inc_per_motor_rev = 1421 |
286 | self._themount_axisp.senseinc = -1 | 294 | self._themount_axisp.senseinc = -1 |
@@ -336,8 +344,8 @@ class UniversalPad(): | @@ -336,8 +344,8 @@ class UniversalPad(): | ||
336 | self._themount.hadec_goto(ha, dec, side=theside, blocking=False) | 344 | self._themount.hadec_goto(ha, dec, side=theside, blocking=False) |
337 | 345 | ||
338 | def pad_cbk_name2coord(self): | 346 | def pad_cbk_name2coord(self): |
339 | - name =self.pad_var_object_name.get() | ||
340 | with lock: | 347 | with lock: |
348 | + name =self.pad_var_object_name.get() | ||
341 | tools = Mounttools() | 349 | tools = Mounttools() |
342 | found, ra, dec= tools.name2coord(name) | 350 | found, ra, dec= tools.name2coord(name) |
343 | if found==1: | 351 | if found==1: |
@@ -363,26 +371,29 @@ class UniversalPad(): | @@ -363,26 +371,29 @@ class UniversalPad(): | ||
363 | self._themount.radec_goto(ra, dec, side=theside, blocking=False) | 371 | self._themount.radec_goto(ra, dec, side=theside, blocking=False) |
364 | 372 | ||
365 | def pad_cbk_compute_coord(self): | 373 | def pad_cbk_compute_coord(self): |
374 | + # --- do not lock this function !!! | ||
366 | err = self.NO_ERROR | 375 | err = self.NO_ERROR |
367 | - with lock: | ||
368 | - try: | ||
369 | - if self._themount!=None: | 376 | + try: |
377 | + if self._themount!=None: | ||
378 | + with lock: | ||
370 | ha, dec, side = self._themount.hadec_coord() | 379 | ha, dec, side = self._themount.hadec_coord() |
371 | - else: | ||
372 | - ha, dec, side = (0, 0, 0) | ||
373 | - coord = "H.A.="+str(ha)+" Dec="+str(dec)+" "+str(side) | ||
374 | - self.pad_var_coord.set(coord) | ||
375 | - # | ||
376 | - if self._themount!=None: | 380 | + else: |
381 | + ha, dec, side = (0, 0, 0) | ||
382 | + coord = "H.A.="+str(ha)+" Dec="+str(dec)+" "+str(side) | ||
383 | + self.pad_var_coord.set(coord) | ||
384 | + # | ||
385 | + if self._themount!=None: | ||
386 | + with lock: | ||
377 | ra2000, dec2000, side_radec = self._themount.radec_coord(EQUINOX="J2000") | 387 | ra2000, dec2000, side_radec = self._themount.radec_coord(EQUINOX="J2000") |
378 | - else: | ||
379 | - ra2000, dec2000, side_radec = (0, 0, 0) | ||
380 | - coord = "R.A.="+str(ra2000)+" Dec="+str(dec2000)+" "+str(side_radec) | ||
381 | - self.pad_var_radec_coord.set(coord) | ||
382 | - except: | ||
383 | - print("pb coord") | ||
384 | - ha, dec, side = (0,0,0) | ||
385 | - err= self.ERR_UNKNOWN | 388 | + else: |
389 | + ra2000, dec2000, side_radec = (0, 0, 0) | ||
390 | + coord = "R.A.="+str(ra2000)+" Dec="+str(dec2000)+" "+str(side_radec) | ||
391 | + self.pad_var_radec_coord.set(coord) | ||
392 | + print("pad_cbk_compute_coord={}".format(coord)) | ||
393 | + except: | ||
394 | + print("pb coord") | ||
395 | + ha, dec, side = (0,0,0) | ||
396 | + err= self.ERR_UNKNOWN | ||
386 | return err, ha, dec, side | 397 | return err, ha, dec, side |
387 | 398 | ||
388 | def pad_cbk_coord_detailed(self): | 399 | def pad_cbk_coord_detailed(self): |
@@ -450,6 +461,10 @@ class UniversalPad(): | @@ -450,6 +461,10 @@ class UniversalPad(): | ||
450 | self._themount.goto_park() | 461 | self._themount.goto_park() |
451 | 462 | ||
452 | def pad_cbk_quit(self): | 463 | def pad_cbk_quit(self): |
464 | + try: | ||
465 | + self._themount.close_chan() | ||
466 | + except: | ||
467 | + pass | ||
453 | self.pad_gui_delete() | 468 | self.pad_gui_delete() |
454 | 469 | ||
455 | def pad_cbk_console(self, event): | 470 | def pad_cbk_console(self, event): |
@@ -518,6 +533,7 @@ class UniversalPad(): | @@ -518,6 +533,7 @@ class UniversalPad(): | ||
518 | lst_hms = ang.sexagesimal("H0.0") | 533 | lst_hms = ang.sexagesimal("H0.0") |
519 | self.pad_var_date.set("UTC {}".format(dateiso)) | 534 | self.pad_var_date.set("UTC {}".format(dateiso)) |
520 | self.pad_var_lst.set("Local Sideral Time {}".format(lst_hms)) | 535 | self.pad_var_lst.set("Local Sideral Time {}".format(lst_hms)) |
536 | + lock.release() | ||
521 | 537 | ||
522 | def pad_gui_delete(self): | 538 | def pad_gui_delete(self): |
523 | # --- kill the threads | 539 | # --- kill the threads |