def main(): #time.sleep(45) commer = rts2comm() commer.set_rts2_value('SEL', "queue_only", True) commer.set_rts2_value("SEL", "plan_queing", 3) commer.set_rts2_value("BIG61", "pec_state", 1) commer.set_rts2_value("EXEC", "auto_loop", False)
def change_state(state): commer = rts2comm() if state.lower() in ['on', 'off', 'standby']: commer.set_state(state) resp = "state set to {}".format(state) else: resp = "bad state {}".format(state) return resp
def rts2_queue_start(): """Easy way set all the parameters for starting queue observing. """ commer = rts2comm() commer.set_rts2_value("SEL", "plan_queing", 3) commer.set_rts2_value("SEL", "queue_only", True) commer.set_rts2_value("BIG61", "pec_state", 1) commer.set_rts2_value("EXEC", "auto_loop", False)
def doexposure(exptime): commer=rts2comm() try: commer.setValue("C0", "exposure", float(exptime)) ret = commer.executeCommand( "EXEC", "now 2578" ) except Excption as err: ret = err return jsonify({"response":ret})
def get_all_devices(): """Get the rts2 values for all the devices in RTS2 and put them in one big json.""" commer = rts2comm() try: jdata = commer._getall() except Exception as err: jdata = {"error": str(err)} jdata['rts2_status'] = commer.get_state() return json.dumps( jdata )
def lastimg(): commer = rts2comm() fname = commer.getValue("C0", "last_image", True) if fname == "": return redirect(url_for("static", filename="noimg.jpg")) try: img = to_jpg("/tmp/m.fits") except FileNotFoundError as err: return redirect(url_for("static", filename="noimg.jpg")) #img.save(os.path.join(APP_ROOT, "static","latest.jpg")) #return redirect(url_for("static", filename="latest.jpg")) return send_file(img, mimetype="image/jpeg")
def set_rts2_value_post(device, name): if device in ["BIG61", "C0", "EXEC", "SEL"]: commer=rts2comm() data = request.json try: resp=commer.setValue(device, name, data["value"]) except Exception as err: resp = {"error": str(err)} finally: return jsonify(resp) else: return jsonify({"error": "Bad device name: {}".format(device)})
def rts2scripts(): commer=rts2comm() try: target_name = commer.get_rts2_value("EXEC", "current_name").value current_exp_num = commer.get_rts2_value("C0", "script_exp_num").value except Exception as err: return jsonify({"total_num_exps": "???", "script_exp_num":"???" }) if target_name == "": exps=0 else: try: script = load_from_script(target_name) except Exception as err: return jsonify({"total_num_exps": "???", "script_exp_num":"???" }) exps=0 for expset in script["obs_info"]: exps+=int(expset["amount"]) return jsonify({"total_num_exps": exps, "script_exp_num":current_exp_num })
def FocusRunDecider(frame, frame_night): FOCUS_FIELD_IDS = [ 3611, 3612, 3613, 3614, 3615, 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624 ] com = rts2comm() #tar = rts2_targets() focus_field_targets = {} for _id in FOCUS_FIELD_IDS: t = com.get_target(_id) fft = FFTarget(t, frame) secz = fft.altaz.secz if secz > 0.0 and secz < 3: print(secz, fft.name) focus_field_targets[str(secz)] = fft lowest_secz = min(list(focus_field_targets.keys())) focus_field = focus_field_targets[lowest_secz] return_field = queue_obj(focus_field.name, focus_field.ra, focus_field.dec, 0, [ exp_obj(2, 'V', 30, int(focus_field.id)), ], 'Focus', focus_field.id, focus_field.id, queue_obj_constraints( moon_distance_threshold=1, airmass_threshold=float(3.0)), expids=[focus_field.id]) return_field.skycoord = focus_field.skycoord return_field.set_altaz(frame_night, setpeak=True) return return_field
def set_rts2_value(device, name, value): commer=rts2comm() resp = commer.setValue(device, name, value) return jsonify({"response":resp})
def goto_filter(Filter): filts = filter_set() filter_num = filts[Filter] commer = rts2comm() resp = commer.setValue("W0", "filter", filter_num, True ) return jsonify({"response": resp})
def get_device(name=None): commer = rts2comm() return json.dumps( commer.get_device_info() )
def dofocus(): commer=rts2comm() focusid = 2572 #should be in config ret = commer.executeCommand( "EXEC", "now 2572" ) return jsonify({"response":ret})