├── .dir-locals.el ├── .gitignore ├── .gitlab-ci.yml ├── .travis.yml ├── AUTHORS ├── COPYING ├── COPYING.LESSER ├── ChangeLog ├── FAQ ├── INSTALL ├── INSTALL.alta ├── INSTALL.andor ├── INSTALL.arc ├── INSTALL.comedi ├── INSTALL.fli ├── INSTALL.gpib ├── INSTALL.miccd ├── INSTALL.paramount ├── INSTALL.sbig ├── Makefile.am ├── NEWS ├── README.cygwin ├── README.cz ├── README.indi ├── README.md ├── RUN ├── VERSION ├── acinclude.m4 ├── autogen.sh ├── bbhtml ├── index.html ├── schedule.html └── script.js ├── checks ├── Makefile.am ├── altaz_check ├── altaztest.cpp ├── altaztest.h ├── check_altaz.cpp ├── check_crc16.cpp ├── check_dut1.cpp ├── check_expander.cpp ├── check_flats ├── check_gem_hko.cpp ├── check_gem_mlo.cpp ├── check_gpointmodel.cpp ├── check_message.cpp ├── check_pid.cpp ├── check_ppoly.cpp ├── check_python_bsc ├── check_python_gpoint_altaz ├── check_python_gpoint_gem ├── check_python_libnova ├── check_python_mpcephem ├── check_python_rts2 ├── check_rtsapi ├── check_sep.cpp ├── check_sgp4.cpp ├── check_tel_corr.cpp ├── check_timestamp.cpp ├── check_tle.cpp ├── check_utils.h ├── data │ ├── Makefile.am │ ├── finals2000A.daily │ ├── fram.fits │ ├── image.fits │ └── mpecephem_ida ├── flat_multi ├── flat_single ├── gemtest.cpp ├── gemtest.h ├── gpoint_in_altaz ├── gpoint_in_gem ├── gpoint_template └── rts2.ini ├── conf ├── Makefile.am ├── camd_restart ├── centrald ├── constraints ├── constraints.xsd ├── createvalues ├── cronos ├── cronos.xsd ├── devices ├── dome_timeout ├── event.d │ ├── Makefile.am │ ├── dome_closed │ └── dome_opened ├── events ├── events.xsd ├── fitstemplate.ini ├── horizon_flat_19_flip.txt ├── logrotate │ ├── Makefile.am │ ├── logrotate-rts2 │ └── logrotate-rts2.conf.in ├── para_restart ├── rts2.ini ├── rts2.service.in ├── rts2@.service.in ├── rts2pa │ └── rts2pa.cfg ├── rts2saf │ ├── cup.modefile │ ├── f0.modefile │ ├── rts2saf-sex.cfg │ ├── rts2saf-sex.nnw │ └── rts2saf.cfg ├── schedule ├── schedule.xsd ├── sd ├── services ├── templates.rts2 ├── test-example └── ticket.xsd ├── configure.ac ├── configure.scan ├── contrib ├── Makefile.am └── rts2af_fit_focus.C ├── doc ├── Makefile.am ├── database.txt ├── doxyfile.in ├── protocol.bin ├── protocol.txt ├── rts2fits.txt ├── uc │ └── user_authentification.html ├── uidesign.html └── xmlrpc │ └── rts2.user.login.html ├── html ├── Makefile.am ├── engine │ ├── _crap │ │ ├── asynchronous.js │ │ └── rtsui.js │ ├── class.apiLoader.js │ ├── class.slot.js │ ├── class.workbench.js │ ├── config.server.js │ ├── config.site.js │ ├── inc.commons.js │ ├── inc.datetime.js │ ├── lib │ │ ├── JSCompressor.php │ │ ├── JavaScriptPacker.php │ │ ├── cal.html │ │ ├── example-full.html │ │ ├── img │ │ │ ├── aqua_dayDown.gif │ │ │ ├── aqua_dayNormal.gif │ │ │ ├── aqua_dayOver.gif │ │ │ ├── armygreen_dayDown.gif │ │ │ ├── armygreen_dayNormal.gif │ │ │ ├── armygreen_dayOver.gif │ │ │ ├── bananasplit_dayDown.gif │ │ │ ├── bananasplit_dayNormal.gif │ │ │ ├── bananasplit_dayOver.gif │ │ │ ├── beige_dayDown.gif │ │ │ ├── beige_dayNormal.gif │ │ │ ├── beige_dayOver.gif │ │ │ ├── boxBottomLeftCorner.png │ │ │ ├── boxBottomRightCorner.png │ │ │ ├── boxSideWallPx.gif │ │ │ ├── boxSideWallPx.png │ │ │ ├── boxTopLeftCorner.png │ │ │ ├── boxTopPx.gif │ │ │ ├── boxTopPx.png │ │ │ ├── boxTopRightCorner.png │ │ │ ├── closeButton_down.gif │ │ │ ├── closeButton_normal.gif │ │ │ ├── closeButton_over.gif │ │ │ ├── deepblue_dayDown.gif │ │ │ ├── deepblue_dayNormal.gif │ │ │ ├── deepblue_dayOver.gif │ │ │ ├── greenish_dayDown.gif │ │ │ ├── greenish_dayNormal.gif │ │ │ ├── greenish_dayOver.gif │ │ │ ├── lightgreen_dayDown.gif │ │ │ ├── lightgreen_dayNormal.gif │ │ │ ├── lightgreen_dayOver.gif │ │ │ ├── monthBackward_down.gif │ │ │ ├── monthBackward_normal.gif │ │ │ ├── monthBackward_over.gif │ │ │ ├── monthForward_down.gif │ │ │ ├── monthForward_normal.gif │ │ │ ├── monthForward_over.gif │ │ │ ├── ocean_blue_dayDown.gif │ │ │ ├── ocean_blue_dayNormal.gif │ │ │ ├── ocean_blue_dayOver.gif │ │ │ ├── orange_dayDown.gif │ │ │ ├── orange_dayNormal.gif │ │ │ ├── orange_dayOver.gif │ │ │ ├── peppermint_dayDown.gif │ │ │ ├── peppermint_dayNormal.gif │ │ │ ├── peppermint_dayOver.gif │ │ │ ├── pink_dayDown.gif │ │ │ ├── pink_dayNormal.gif │ │ │ ├── pink_dayOver.gif │ │ │ ├── purple_dayDown.gif │ │ │ ├── purple_dayNormal.gif │ │ │ ├── purple_dayOver.gif │ │ │ ├── torqoise_dayDown.gif │ │ │ ├── torqoise_dayNormal.gif │ │ │ ├── torqoise_dayOver.gif │ │ │ ├── yearBackward_down.gif │ │ │ ├── yearBackward_normal.gif │ │ │ ├── yearBackward_over.gif │ │ │ ├── yearForward_down.gif │ │ │ ├── yearForward_normal.gif │ │ │ └── yearForward_over.gif │ │ ├── jsDatePick.css │ │ └── jsDatePick.js │ ├── module.daySelector.js │ ├── module.finFilter.js │ ├── module.finishedList.js │ ├── module.general.js │ ├── module.login.js │ ├── module.nightMap.js │ ├── module.table.js │ ├── module.tarFilter.js │ ├── module.targetList.js │ └── module.targetPreview.js ├── gfx │ ├── ajax-loader.gif │ ├── bg.gif │ ├── bg2.gif │ ├── calendar │ │ ├── aqua_dayDown.gif │ │ ├── aqua_dayNormal.gif │ │ ├── aqua_dayOver.gif │ │ ├── armygreen_dayDown.gif │ │ ├── armygreen_dayNormal.gif │ │ ├── armygreen_dayOver.gif │ │ ├── bananasplit_dayDown.gif │ │ ├── bananasplit_dayNormal.gif │ │ ├── bananasplit_dayOver.gif │ │ ├── beige_dayDown.gif │ │ ├── beige_dayNormal.gif │ │ ├── beige_dayOver.gif │ │ ├── boxBottomLeftCorner.png │ │ ├── boxBottomRightCorner.png │ │ ├── boxSideWallPx.gif │ │ ├── boxSideWallPx.png │ │ ├── boxTopLeftCorner.png │ │ ├── boxTopPx.gif │ │ ├── boxTopPx.png │ │ ├── boxTopRightCorner.png │ │ ├── closeButton_down.gif │ │ ├── closeButton_normal.gif │ │ ├── closeButton_over.gif │ │ ├── deepblue_dayDown.gif │ │ ├── deepblue_dayNormal.gif │ │ ├── deepblue_dayOver.gif │ │ ├── greenish_dayDown.gif │ │ ├── greenish_dayNormal.gif │ │ ├── greenish_dayOver.gif │ │ ├── lightgreen_dayDown.gif │ │ ├── lightgreen_dayNormal.gif │ │ ├── lightgreen_dayOver.gif │ │ ├── monthBackward_down.gif │ │ ├── monthBackward_normal.gif │ │ ├── monthBackward_over.gif │ │ ├── monthForward_down.gif │ │ ├── monthForward_normal.gif │ │ ├── monthForward_over.gif │ │ ├── ocean_blue_dayDown.gif │ │ ├── ocean_blue_dayNormal.gif │ │ ├── ocean_blue_dayOver.gif │ │ ├── orange_dayDown.gif │ │ ├── orange_dayNormal.gif │ │ ├── orange_dayOver.gif │ │ ├── peppermint_dayDown.gif │ │ ├── peppermint_dayNormal.gif │ │ ├── peppermint_dayOver.gif │ │ ├── pink_dayDown.gif │ │ ├── pink_dayNormal.gif │ │ ├── pink_dayOver.gif │ │ ├── purple_dayDown.gif │ │ ├── purple_dayNormal.gif │ │ ├── purple_dayOver.gif │ │ ├── torqoise_dayDown.gif │ │ ├── torqoise_dayNormal.gif │ │ ├── torqoise_dayOver.gif │ │ ├── yearBackward_down.gif │ │ ├── yearBackward_normal.gif │ │ ├── yearBackward_over.gif │ │ ├── yearForward_down.gif │ │ ├── yearForward_normal.gif │ │ └── yearForward_over.gif │ ├── icons │ │ ├── astro.png │ │ ├── calendar.png │ │ ├── close.png │ │ ├── edit.png │ │ ├── editor.png │ │ ├── find.png │ │ ├── finished.png │ │ ├── help.png │ │ ├── images.png │ │ ├── info.png │ │ ├── label.png │ │ ├── list.png │ │ ├── login.png │ │ ├── map.png │ │ ├── plan.png │ │ ├── setup.png │ │ └── solo.png │ └── logo.png ├── style │ ├── jsDatePick.css │ └── style.css └── ui.html ├── include ├── #command.h# ├── Axisd.hpp ├── Makefile.am ├── OakFeatureReports.h ├── OakHidBase.h ├── altaz.h ├── app.h ├── askchoice.h ├── bbstatus.h ├── block.h ├── camd.h ├── catd.h ├── centralstate.h ├── cliapp.h ├── clicupola.h ├── client.h ├── clirotator.h ├── command.h ├── compat │ └── osx │ │ └── compat.h ├── configuration.h ├── connection.h ├── connection │ ├── Makefile.am │ ├── apm.h │ ├── bait.h │ ├── conngpib.h │ ├── conngpibenet.h │ ├── conngpiblinux.h │ ├── conngpibprologix.h │ ├── conngpibserial.h │ ├── connscpi.h │ ├── ethernet.h │ ├── ford.h │ ├── fork.h │ ├── modbus.h │ ├── opentpl.h │ ├── remotes.h │ ├── serial.h │ ├── sitech.h │ ├── tcp.h │ ├── tcsng.h │ ├── tgdrive.h │ ├── thorlabs.h │ └── udp.h ├── connnosend.h ├── connnotify.h ├── connuser.h ├── constsitech.h ├── counted_ptr.h ├── cupola.h ├── daemon.h ├── data.h ├── devclient.h ├── device.h ├── dirsupport.h ├── displayvalue.h ├── dome.h ├── domeford.h ├── door_vermes.h ├── dut1.h ├── error.h ├── event.h ├── expander.h ├── expression.h ├── filterd.h ├── focusd.h ├── fork.h ├── gem.h ├── getaddrinfo.h ├── getopt_own.h ├── gpointmodel.h ├── gtp │ ├── Makefile.am │ ├── Point.hpp │ ├── Vector.h │ └── ppoly.h ├── hoststring.h ├── imgdisplay.h ├── imghdr.h ├── infoval.h ├── iniparser.h ├── json.hpp ├── libnova_cpp.h ├── logstream.h ├── message.h ├── mirror.h ├── multidev.h ├── nan.h ├── networkaddress.h ├── nimotion.h ├── object.h ├── objectcheck.h ├── option.h ├── phot.h ├── pid.h ├── pluto │ ├── Makefile.am │ ├── norad.h │ ├── norad_in.h │ └── observe.h ├── radecparser.h ├── riseset.h ├── rotad.h ├── rts2.h ├── rts2db │ ├── Makefile.am │ ├── account.h │ ├── accountset.h │ ├── appdb.h │ ├── camlist.h │ ├── constraints.h │ ├── devicedb.h │ ├── imageset.h │ ├── imagesetstat.h │ ├── labellist.h │ ├── labels.h │ ├── messagedb.h │ ├── mpectarget.h │ ├── observation.h │ ├── observationset.h │ ├── plan.h │ ├── planset.h │ ├── queues.h │ ├── records.h │ ├── recordsavg.h │ ├── recvals.h │ ├── rts2count.h │ ├── schedule.h │ ├── scriptcommands.h │ ├── simbadtargetdb.h │ ├── sqlcolumn.h │ ├── sqlerror.h │ ├── target.h │ ├── target_auger.h │ ├── targetell.h │ ├── targetgrb.h │ ├── targetres.h │ ├── targetset.h │ ├── taruser.h │ ├── timelog.h │ ├── tletarget.h │ ├── user.h │ └── userset.h ├── rts2fits │ ├── Makefile.am │ ├── appdbimage.h │ ├── appimage.h │ ├── cameraimage.h │ ├── channel.h │ ├── dbfilters.h │ ├── devclifoc.h │ ├── devcliimg.h │ ├── fitsfile.h │ ├── image.h │ └── imagedb.h ├── rts2format.h ├── rts2json │ ├── Makefile.am │ ├── addtargetreq.h │ ├── altaz.h │ ├── altplot.h │ ├── asyncapi.h │ ├── bsc.h │ ├── directory.h │ ├── expandstrings.h │ ├── httpreq.h │ ├── httpserver.h │ ├── images.h │ ├── imgpreview.h │ ├── jsondb.h │ ├── jsonvalue.h │ ├── libcss.h │ ├── libjavascript.h │ ├── nightdur.h │ ├── nightreq.h │ ├── obsreq.h │ ├── plot.h │ └── targetreq.h ├── rts2lx200 │ ├── Makefile.am │ ├── hms.h │ ├── pier-collision.h │ ├── tellx200.h │ └── tellx200gps.h ├── rts2scheduler │ ├── Makefile.am │ ├── schedbag.h │ ├── schedobs.h │ ├── schedule.h │ ├── ticket.h │ ├── ticketset.h │ └── utils.h ├── rts2script │ ├── Makefile.am │ ├── connexe.h │ ├── connimgprocess.h │ ├── connselector.h │ ├── devscript.h │ ├── element.h │ ├── elementacquire.h │ ├── elementblock.h │ ├── elementtarget.h │ ├── execcli.h │ ├── execclidb.h │ ├── executorque.h │ ├── operands.h │ ├── printtarget.h │ ├── rts2spiral.h │ ├── script.h │ ├── scriptinterface.h │ ├── scripttarget.h │ └── simulque.h ├── rts2target.h ├── scriptdevice.h ├── sensord.h ├── sensorgpib.h ├── sep │ ├── Makefile.am │ ├── extract.h │ ├── overlap.h │ ├── sep.h │ └── sepcore.h ├── serverstate.h ├── sgp4.h ├── simbadtarget.h ├── slitazimuth.h ├── status.h ├── strtk.hpp ├── strtok.h ├── teld.h ├── telmodel.h ├── timestamp.h ├── tpointmodel.h ├── tpointmodelterm.h ├── tsqueue.h ├── ucac5 │ ├── Makefile.am │ ├── UCAC5Bands.hpp │ ├── UCAC5Idx.hpp │ └── UCAC5Record.hpp ├── userlogins.h ├── userpermissions.h ├── utilsfunc.h ├── value.h ├── valuearray.h ├── valuelist.h ├── valueminmax.h ├── valuerectangle.h ├── valuestat.h ├── vermes.h ├── vermes │ ├── Makefile.am │ ├── barcodereader.h │ ├── bisync.h │ ├── move_door.h │ ├── move_to_target_az.h │ ├── oak_comm.h │ ├── serial.h │ ├── ssd650v_comm.h │ └── util.h ├── xmlerror.h └── xmlrpc++ │ ├── Makefile.am │ ├── XmlRpc.h │ ├── XmlRpcClient.h │ ├── XmlRpcDispatch.h │ ├── XmlRpcException.h │ ├── XmlRpcServer.h │ ├── XmlRpcServerConnection.h │ ├── XmlRpcServerGetRequest.h │ ├── XmlRpcServerMethod.h │ ├── XmlRpcSocket.h │ ├── XmlRpcSocketSSL.h │ ├── XmlRpcSource.h │ ├── XmlRpcUtil.h │ ├── XmlRpcValue.h │ ├── base64.h │ └── urlencoding.h ├── install-sh ├── java ├── bin │ └── rts2-jjson ├── pom.xml └── src │ ├── main │ └── java │ │ └── org │ │ └── rts2 │ │ ├── App.java │ │ ├── JSON.java │ │ └── package-info.java │ └── test │ └── java │ └── org │ └── rts2 │ └── AppTest.java ├── lib ├── Makefile.am ├── gtp │ ├── Makefile.am │ └── ppoly.cpp ├── libindi │ ├── Makefile.am │ ├── base64.c │ ├── base64.h │ ├── indiapi.h │ ├── indicom.c │ ├── indicom.h │ ├── indidevapi.h │ ├── lilxml.c │ ├── lilxml.h │ ├── rts2toindi.c │ └── rts2toindi.h ├── pluto │ ├── Makefile.am │ ├── basics.cpp │ ├── common.cpp │ ├── deep.cpp │ ├── dynamic.cpp │ ├── get_el.cpp │ ├── observe.cpp │ ├── satellit.cpp │ ├── sdp4.cpp │ ├── sdp8.cpp │ ├── sgp.cpp │ ├── sgp4.cpp │ ├── sgp8.cpp │ └── tle_out.cpp ├── rts2 │ ├── Axisd.cpp │ ├── Makefile.am │ ├── OakFeatureReports.c │ ├── OakHidBase.c │ ├── app.cpp │ ├── askchoice.cpp │ ├── block.cpp │ ├── camd.cpp │ ├── catd.cpp │ ├── centralstate.cpp │ ├── cliapp.cpp │ ├── clicupola.cpp │ ├── client.cpp │ ├── clifocuser.cpp │ ├── clifocuser.h │ ├── clirotator.cpp │ ├── cliwheel.cpp │ ├── cliwheel.h │ ├── command.cpp │ ├── configuration.cpp │ ├── connapm.cpp │ ├── connbait.cpp │ ├── connection.cpp │ ├── connepics.cpp │ ├── connepics.h │ ├── connethernet.cpp │ ├── connford.cpp │ ├── connfork.cpp │ ├── conngpib.cpp │ ├── conngpibenet.cpp │ ├── conngpiblinux.cpp │ ├── conngpibprologix.cpp │ ├── conngpibserial.cpp │ ├── connmodbus.cpp │ ├── connnosend.cpp │ ├── connnotify.cpp │ ├── connopentpl.cpp │ ├── connremotes.cpp │ ├── connscpi.cpp │ ├── connserial.cpp │ ├── connsitech.cpp │ ├── conntcp.cpp │ ├── conntcsng.cpp │ ├── connthorlabs.cpp │ ├── connudp.cpp │ ├── connuser.cpp │ ├── cupola.cpp │ ├── daemon.cpp │ ├── data.cpp │ ├── devclient.cpp │ ├── device.cpp │ ├── dirsupport.cpp │ ├── displayvalue.cpp │ ├── dome.cpp │ ├── domeford.cpp │ ├── dut1.cpp │ ├── expander.cpp │ ├── expression.cpp │ ├── filterd.cpp │ ├── focusd.cpp │ ├── getaddrinfo.c │ ├── getopt_own.c │ ├── hoststring.cpp │ ├── iniparser.cpp │ ├── libnova_cpp.cpp │ ├── logstream.cpp │ ├── message.cpp │ ├── mirror.cpp │ ├── multidev.cpp │ ├── nan.c │ ├── networkaddress.cpp │ ├── nimotion.c │ ├── objectcheck.cpp │ ├── option.cpp │ ├── phot.cpp │ ├── pid.cpp │ ├── radecparser.cpp │ ├── riseset.cpp │ ├── rotad.cpp │ ├── rts2format.cpp │ ├── rts2target.cpp │ ├── scriptdevice.cpp │ ├── sensord.cpp │ ├── sensorgpib.cpp │ ├── simbadtarget.cpp │ ├── slitazimuth.c │ ├── test.ini │ ├── tgdrive.cpp │ ├── timestamp.cpp │ ├── userlogins.cpp │ ├── userpermissions.cpp │ ├── utilsfunc.cpp │ ├── value.cpp │ ├── valuearray.cpp │ ├── valueminmax.cpp │ ├── valuerectangle.cpp │ ├── valuestat.cpp │ └── vermes │ │ ├── Makefile.am │ │ ├── barcodereader.c │ │ ├── bisync.c │ │ ├── move_door.c │ │ ├── move_to_target_az.c │ │ ├── oak_comm.c │ │ ├── serial.c │ │ ├── ssd650v_comm.c │ │ └── util.c ├── rts2db │ ├── Makefile.am │ ├── account.ec │ ├── accountset.ec │ ├── appdb.ec │ ├── augerset.ec │ ├── augerset.h │ ├── camlist.ec │ ├── constraints.cpp │ ├── devicedb.ec │ ├── imageset.ec │ ├── imagesetstat.cpp │ ├── labellist.ec │ ├── labels.ec │ ├── messagedb.ec │ ├── mpectarget.cpp │ ├── observation.ec │ ├── observationset.ec │ ├── plan.ec │ ├── planset.ec │ ├── queues.ec │ ├── records.ec │ ├── recordsavg.ec │ ├── recvals.ec │ ├── rts2count.ec │ ├── rts2prop.ec │ ├── rts2prop.h │ ├── rts2targetplanet.cpp │ ├── rts2targetplanet.h │ ├── schedule.ec │ ├── simbadtargetdb.cpp │ ├── sqlcolumn.ec │ ├── sqlerror.ec │ ├── sub_targets.ec │ ├── target.ec │ ├── target_auger.ec │ ├── targetell.cpp │ ├── targetgrb.ec │ ├── targetres.cpp │ ├── targetset.ec │ ├── taruser.ec │ ├── tletarget.cpp │ ├── user.ec │ └── userset.ec ├── rts2fits │ ├── Makefile.am │ ├── cameraimage.cpp │ ├── channel.cpp │ ├── dbfilters.ec │ ├── devclifoc.cpp │ ├── devcliimg.cpp │ ├── fitsfile.cpp │ ├── image.cpp │ ├── imageastrometry.cpp │ ├── imagedb.ec │ ├── imageprocess.cpp │ └── median_filter.c ├── rts2json │ ├── Makefile.am │ ├── addtargetreq.cpp │ ├── altaz.cpp │ ├── altplot.cpp │ ├── asyncapi.cpp │ ├── directory.cpp │ ├── expandstrings.cpp │ ├── httpreq.cpp │ ├── httpserver.cpp │ ├── images.cpp │ ├── images_convert │ ├── imgpreview.cpp │ ├── jsondb.cpp │ ├── jsonvalue.cpp │ ├── libcss.cpp │ ├── libjavascript.cpp │ ├── nightdur.cpp │ ├── nightreq.cpp │ ├── obsreq.cpp │ ├── plot.cpp │ └── targetreq.cpp ├── rts2lx200 │ ├── Makefile.am │ ├── hms.c │ ├── pier-collision.cpp │ ├── tellx200.cpp │ └── tellx200gps.cpp ├── rts2scheduler │ ├── Makefile.am │ ├── schedbag.cpp │ ├── schedobs.ec │ ├── schedule.cpp │ ├── ticket.ec │ ├── ticketset.ec │ └── utils.cpp ├── rts2script │ ├── Makefile.am │ ├── connexe.cpp │ ├── connimgprocess.cpp │ ├── connselector.cpp │ ├── devscript.cpp │ ├── element.cpp │ ├── elementacquire.cpp │ ├── elementblock.cpp │ ├── elementexe.cpp │ ├── elementexe.h │ ├── elementhex.cpp │ ├── elementhex.h │ ├── elementtarget.cpp │ ├── elementwaitfor.cpp │ ├── elementwaitfor.h │ ├── execcli.cpp │ ├── execclidb.cpp │ ├── executorque.cpp │ ├── operands.cpp │ ├── printtarget.cpp │ ├── rts2spiral.cpp │ ├── script.cpp │ ├── scriptinterface.cpp │ ├── scripttarget.cpp │ └── simulque.cpp ├── rts2tel │ ├── Makefile.am │ ├── altaz.cpp │ ├── fork.cpp │ ├── gem.cpp │ ├── gpointmodel.cpp │ ├── teld.cpp │ ├── tpointmodel.cpp │ └── tpointmodelterm.cpp ├── sep │ ├── Makefile.am │ ├── analyse.c │ ├── aperture.c │ ├── aperture.i │ ├── background.c │ ├── convolve.c │ ├── deblend.c │ ├── extract.c │ ├── lutz.c │ └── util.c ├── sgp4 │ ├── Makefile.am │ ├── sgp4.cpp │ ├── sgp4unit.cpp │ └── sgp4unit.h ├── ucac5 │ ├── Makefile.am │ ├── UCAC5Bands.cpp │ ├── UCAC5Idx.cpp │ └── UCAC5Record.cpp └── xmlrpc++ │ ├── Makefile.am │ ├── XmlRpcClient.cpp │ ├── XmlRpcDispatch.cpp │ ├── XmlRpcServer.cpp │ ├── XmlRpcServerConnection.cpp │ ├── XmlRpcServerGetRequest.cpp │ ├── XmlRpcServerMethod.cpp │ ├── XmlRpcSocket.cpp │ ├── XmlRpcSocketSSL.cpp │ ├── XmlRpcSource.cpp │ ├── XmlRpcUtil.cpp │ ├── XmlRpcValue.cpp │ └── urlencoding.cpp ├── make_install.out ├── man ├── Makefile.am ├── asciidoc.conf ├── gpoint.txt ├── rts2-bb.xml ├── rts2-camd-reflex.xml ├── rts2-camd.txt ├── rts2-centrald.xml ├── rts2-device.xml ├── rts2-dome.xml ├── rts2-executor.xml ├── rts2-focusc.xml ├── rts2-focusd.xml ├── rts2-grbd.xml ├── rts2-horizon.xml ├── rts2-httpd.txt ├── rts2-image.xml ├── rts2-imgproc.xml ├── rts2-logd.xml ├── rts2-logger.xml ├── rts2-mon.xml ├── rts2-moodd.xml ├── rts2-newtarget.xml ├── rts2-nightreport.xml ├── rts2-plan.xml ├── rts2-queue.xml ├── rts2-rotad.txt ├── rts2-scriptexec.txt ├── rts2-scriptor.xml ├── rts2-selector.xml ├── rts2-seltest.xml ├── rts2-sensor-aag.xml ├── rts2-sensor-apcups.xml ├── rts2-sensor-mrakomer.xml ├── rts2-sensor-system.xml ├── rts2-simbadinfo.xml ├── rts2-talker.xml ├── rts2-target.xml ├── rts2-targetinfo.xml ├── rts2-targetlist.xml ├── rts2-teld-sitech-gem.xml ├── rts2-teld.xml ├── rts2-telescope-model.xml ├── rts2-telmodeltest.xml ├── rts2-test.txt ├── rts2-tpm.xml ├── rts2-user.xml ├── rts2-xfocusc.xml ├── rts2-xmlrpcclient.xml ├── rts2.adoc ├── rts2.conf ├── rts2.devices.xml ├── rts2.dict ├── rts2.ent.in ├── rts2.fitskeys.xml ├── rts2.fitstemplate.xml ├── rts2.ini.xml ├── rts2.queue.xml ├── rts2.script.txt ├── rts2.target.txt ├── rts2.txt ├── rts2.valuefile.xml └── rts2pa_measurement.py.xml ├── mkinstalldirs ├── python ├── Makefile.am ├── rts2 │ ├── Makefile.am │ ├── __init__.py │ ├── altazpath.py │ ├── astrometry.py │ ├── brights.py │ ├── bsc.py │ ├── centering.py │ ├── db │ │ ├── Makefile.am │ │ ├── __init__.py │ │ ├── grb.py │ │ └── targets.py │ ├── dms.py │ ├── fits2model.py │ ├── flats.py │ ├── focusing.py │ ├── gpoint.py │ ├── imgprocess.py │ ├── iso8601.py │ ├── kmparse.py │ ├── libnova.py │ ├── logger.py │ ├── mpcephem.py │ ├── progressbar.py │ ├── queue.py │ ├── queues.py │ ├── radec.py │ ├── rtsapi.py │ ├── sat.py │ ├── scat.py │ ├── scriptcomm.py │ ├── sextractor.py │ ├── spiral.py │ ├── target.py │ └── tpvp.py ├── testalchemy.py ├── testqueues.py └── testsextractor.py ├── python3 ├── MANIFEST.in ├── README.md ├── rts2 │ ├── __init__.py │ └── scriptcomm.py └── setup.py ├── rts.dox ├── rts2-init.in ├── rts2.initd.in ├── rts2.logrotate ├── scripts ├── Makefile.am ├── acquire.py ├── atv.py ├── build-model.py ├── calib.py ├── center.py ├── dataplot.py ├── dome_target_az.py ├── dump-sitech ├── expose.py ├── flat.py ├── flwo_cat.py ├── flwo_tcs.xsl ├── fwhm.py ├── gcal.py ├── gpoint ├── guide-altaz.py ├── guide.py ├── imgp_analysis.py ├── kuiper_focus.py ├── masterflat.py ├── match.py ├── median.py ├── mosaic-combine ├── move.py ├── newtarget.py ├── plot-model.py ├── requeue.py ├── rts2-astrometry.net ├── rts2-bb-json ├── rts2-bsc-wcs ├── rts2-build-model-tool ├── rts2-build-model-verify ├── rts2-cube ├── rts2-f │ ├── astrometry.py │ ├── doauto │ ├── flats │ ├── fwhm.py │ ├── img_process │ ├── join-filter.py │ ├── rts2.defocus │ ├── rts2.findfwhm │ ├── rts2.findstar │ ├── rts2.matchwcs │ ├── rts2.tempfocus │ ├── rts2_tele_filter │ ├── run_obs │ └── systemtest.py ├── rts2-fits2gpoint ├── rts2-focusing ├── rts2-guide ├── rts2-install ├── rts2-json ├── rts2-log ├── rts2-mpec-ephems ├── rts2-parse-bsc ├── rts2-queue ├── rts2-scat ├── rts2-sextractor ├── rts2-start.in ├── rts2-stop.in ├── rts2-test ├── rts2-verify-tracking ├── rts2pa │ ├── README │ ├── rts2pa.py │ ├── rts2pa_measurement.py │ └── test │ │ ├── images │ │ └── README │ │ └── run_rts2pa_measurement.sh ├── rts2saf │ ├── Makefile.am │ ├── README │ ├── configs │ │ ├── dummy-bootes-2-autonomous │ │ │ ├── devices │ │ │ └── rts2saf.cfg │ │ ├── dummy-bootes-2 │ │ │ ├── devices │ │ │ └── rts2saf.cfg │ │ ├── hands_on │ │ │ ├── rts2saf-sex.cfg │ │ │ ├── rts2saf-sex.nnw │ │ │ └── rts2saf.cfg │ │ ├── no-filter-wheel │ │ │ ├── devices │ │ │ └── rts2saf.cfg │ │ ├── one-filter-wheel-autonomous │ │ │ ├── devices │ │ │ └── rts2saf.cfg │ │ └── one-filter-wheel │ │ │ ├── devices │ │ │ └── rts2saf.cfg │ ├── imgp │ │ └── README │ ├── rts2saf │ │ ├── Makefile.am │ │ ├── __init__.py │ │ ├── acquire.py │ │ ├── analyze.py │ │ ├── analyzeruns.py │ │ ├── checkdevices.py │ │ ├── config.py │ │ ├── createdevices.py │ │ ├── criteria_radius.py │ │ ├── data.py │ │ ├── datarun.py │ │ ├── devices.py │ │ ├── ds9region.py │ │ ├── environ.py │ │ ├── fitdisplay.py │ │ ├── fitfunction.py │ │ ├── focus.py │ │ ├── log.py │ │ ├── rts2exec.py │ │ ├── sextract.py │ │ ├── sextractor.py │ │ ├── temperaturemodel.py │ │ └── timeout.py │ ├── rts2saf_analyze.py │ ├── rts2saf_coverage.sh │ ├── rts2saf_exclusive.py │ ├── rts2saf_focus.py │ ├── rts2saf_frosted.py │ ├── rts2saf_fwhm.py │ ├── rts2saf_hands_on_examples.sh │ ├── rts2saf_imgp.py │ ├── rts2saf_reenable_exec.py │ ├── rts2saf_start.py │ ├── rts2saf_stop.py │ ├── rts2saf_unittest.py │ ├── samples │ │ └── README │ ├── samples_bootes2 │ │ └── README │ ├── sphinx │ │ ├── Makefile.sphinx │ │ ├── cmdline.rst │ │ ├── conf.py │ │ ├── configuration.rst │ │ ├── dummytesting.rst │ │ ├── execution.rst │ │ ├── index.rst │ │ ├── installation.rst │ │ ├── introduction.rst │ │ ├── moduleindex.rst │ │ ├── modules.rst │ │ ├── offline.rst │ │ └── unittest.rst │ └── unittest │ │ ├── f0.modefile │ │ ├── rts2-unittest.ini │ │ ├── rts2_environment.py │ │ ├── rts2saf │ │ ├── rts2saf-bootes-2-autonomous.cfg │ │ ├── rts2saf-bootes-2.cfg │ │ ├── rts2saf-flux.cfg │ │ ├── rts2saf-no-filter-wheel.cfg │ │ ├── rts2saf-one-filter-wheel.cfg │ │ ├── test_analyze.py │ │ ├── test_analyzeruns.py │ │ ├── test_config.py │ │ ├── test_db.py │ │ ├── test_devices.py │ │ ├── test_ds9region.py │ │ ├── test_environ.py │ │ ├── test_executables.py │ │ ├── test_fitdisplay.py │ │ ├── test_fitfunction.py │ │ ├── test_focus.py │ │ ├── test_logging.py │ │ ├── test_sextractor.py │ │ └── test_temperaturemodel.py ├── satvis ├── shiftfoc.py ├── shiftstore.py ├── subtract.py ├── systemtest.py ├── telmodel.py ├── test_focusing.py ├── u_point │ ├── README │ ├── README_demo │ ├── demo │ │ ├── sim_daytime.sh │ │ ├── sim_daytime_bright_stars.sh │ │ ├── sim_settings.sh │ │ ├── sim_settings_above_sun.sh │ │ └── sim_settings_below_sun.sh │ ├── do_it_all_dss.sh │ ├── meteo │ │ ├── meteo.py │ │ └── meteo_dome_c.py │ ├── model │ │ ├── model_base.py │ │ ├── u_altaz.py │ │ ├── u_buie.py │ │ └── u_upoint.py │ ├── rts2_script │ │ ├── sim_u_acquire_no_fetch_dss_continuous.sh │ │ ├── sim_u_acquire_plot.sh │ │ ├── u_acquire.sh │ │ ├── u_acquire_fetch_dss_continuous.sh │ │ ├── u_acquire_plot.sh │ │ └── u_acquire_settings.sh │ ├── test_coordinates.py │ ├── transform │ │ ├── u_astropy.py │ │ ├── u_libnova.py │ │ ├── u_pyephem.py │ │ ├── u_skyfield.py │ │ ├── u_sofa.py │ │ └── u_taki_san.py │ ├── u_acquire.py │ ├── u_analyze.py │ ├── u_httpd_connection.py │ ├── u_model.py │ ├── u_point │ │ ├── astrometry_3.py │ │ ├── callback.py │ │ ├── devices.py │ │ ├── httpd_connection.py │ │ ├── json_3.py │ │ ├── notify.py │ │ ├── quick_analysis.py │ │ ├── refraction.py │ │ ├── script.py │ │ ├── scriptcomm_3.py │ │ ├── sextractor_3.py │ │ ├── solver.py │ │ ├── structures.py │ │ ├── timeout.py │ │ ├── user_control.py │ │ └── worker.py │ ├── u_point_unittest.py │ ├── u_select.py │ ├── u_simulate.py │ ├── u_test_altaz.py │ └── unittest │ │ ├── f0.modefile │ │ ├── meteo │ │ ├── model │ │ ├── ref_index │ │ ├── rts2-unittest.ini │ │ ├── rts2_environment.py │ │ ├── t0.modefile │ │ ├── test_db.py │ │ ├── test_executables.py │ │ ├── transform │ │ ├── u_acquire_fetch_dss_continuous.sh │ │ ├── u_acquire_settings.sh │ │ └── u_point ├── upoint2gpoint └── xy2wcs.py ├── src ├── Makefile.am ├── README ├── axisd │ ├── Makefile.am │ └── servodrive-r272.cpp ├── bb │ ├── Makefile.am │ ├── bb.cpp │ ├── bb.h │ ├── bbapi.cpp │ ├── bbapi.h │ ├── bbconn.cpp │ ├── bbconn.h │ ├── bbdb.ec │ ├── bbdb.h │ ├── bbtasks.cpp │ ├── bbtasks.h │ ├── python │ │ ├── bb-server │ │ └── tests │ ├── schedreq.cpp │ ├── schedreq.h │ └── schedule_target.py ├── bckimages │ ├── Makefile.am │ ├── bckimages.ec │ ├── deleteimage.ec │ └── flatprocess.cpp ├── camd │ ├── Makefile.am │ ├── alta.cpp │ ├── andor.cpp │ ├── apogee.cpp │ ├── apogee │ │ ├── Apogee.h │ │ ├── ApogeeLinux.h │ │ ├── CameraIO_Linux.h │ │ ├── CameraIO_LinuxPCI.cpp │ │ └── Makefile.am │ ├── arc.cpp │ ├── asi.cpp │ ├── azcam3.cpp │ ├── ccd_msg.h │ ├── dummy.cpp │ ├── edtsao.cpp │ ├── edtsao │ │ ├── Makefile.am │ │ ├── ccdpdv.c │ │ ├── edtreg.h │ │ ├── edtswap.c │ │ ├── edtswap.h │ │ ├── interface.h │ │ ├── saoprintblk.c │ │ ├── sdv_libpdv.h │ │ ├── sdvlib.h │ │ ├── sdvpci.c │ │ ├── sdvpci.h │ │ ├── sdvsao.c │ │ ├── sleep.c │ │ └── xos.h │ ├── fli.cpp │ ├── gxccd.cpp │ ├── miccd.cpp │ ├── miniccd.cpp │ ├── miniccd_il.cpp │ ├── pi.cpp │ ├── reflex.cpp │ ├── reflex.h │ ├── reflex.rcf │ ├── sbig.cpp │ ├── si3097.cpp │ ├── si8821.cpp │ ├── si8821 │ │ ├── Makefile.am │ │ ├── si8821.h │ │ └── si_app.h │ ├── sidecar.cpp │ ├── sx.cpp │ ├── sxccd │ │ ├── Makefile.am │ │ ├── sxccdusb.cpp │ │ └── sxccdusb.h │ ├── urvc2.cpp │ ├── urvc2 │ │ ├── Makefile.am │ │ ├── camera.c │ │ ├── ccd.c │ │ ├── io.c │ │ ├── main.c │ │ ├── micro.c │ │ ├── sexif.c │ │ ├── st237.c │ │ ├── st7.c │ │ ├── tools.c │ │ ├── trk.c │ │ └── urvc.h │ └── v4l.cpp ├── catd │ ├── Makefile.am │ └── gsc.cpp ├── centrald │ ├── Makefile.am │ ├── centrald.cpp │ ├── centrald.h │ ├── moodd.cpp │ ├── stateapp.cpp │ └── test.c ├── db │ ├── Makefile.am │ ├── airmasscale.ec │ ├── appimagemanip.cpp │ ├── horizonapp.cpp │ ├── newtarget.cpp │ ├── nightreport.cpp │ ├── obsinfo.cpp │ ├── plan.txt │ ├── planapp.cpp │ ├── rts2-imageinfo │ ├── rts2targetapp.cpp │ ├── rts2targetapp.h │ ├── simbadinfo.cpp │ ├── skybot │ │ ├── Makefile.am │ │ ├── rts2skybottarget.cpp │ │ ├── rts2skybottarget.h │ │ ├── skybot.wsdl │ │ └── typemap.dat │ ├── target.cpp │ ├── targetinfo.cpp │ ├── targetlist.cpp │ ├── tpm.cpp │ ├── typemap.dat │ ├── user.cpp │ └── usernondb.cpp ├── dome │ ├── Makefile.am │ ├── ahe.cpp │ ├── ahe.h │ ├── apm.cpp │ ├── bart.cpp │ ├── bootes1a.cpp │ ├── bootes1b.cpp │ ├── bootes2.cpp │ ├── d50.cpp │ ├── dcm.cpp │ ├── ddw.cpp │ ├── door_vermes.cpp │ ├── dummy_cup.cpp │ ├── fram.cpp │ ├── ieec.cpp │ ├── mark.cpp │ ├── maxdomeii.cpp │ ├── opentpl.cpp │ ├── rts2connbufweather.cpp │ ├── rts2connbufweather.h │ ├── saao.cpp │ ├── tcsng_slit.cpp │ ├── vermes.cpp │ ├── watcher.cpp │ ├── zelio.cpp │ └── zelio │ │ ├── Makefile.am │ │ ├── fram.oregano │ │ ├── roof.desc │ │ ├── roof.zm2 │ │ ├── roof_b1a.zm2 │ │ ├── roof_b1b.zm2 │ │ ├── roof_b2.zm2 │ │ ├── roof_chase.zm2 │ │ ├── roof_fram.zm2 │ │ ├── roof_galicie2.zm2 │ │ ├── roof_simple.zm2 │ │ └── roof_watcher.zm2 ├── filterd │ ├── #fliindi.cpp# │ ├── Makefile.am │ ├── alta.cpp │ ├── apm.cpp │ ├── apm.h │ ├── dummy.cpp │ ├── fli.cpp │ ├── fliindi.cpp │ ├── fliindi_client.py │ ├── fw102c.cpp │ ├── galil.cpp │ ├── ifw.cpp │ ├── mdm.cpp │ └── mi.cpp ├── focusc │ ├── Makefile.am │ ├── foctest.cpp │ ├── focusc.cpp │ ├── focusclient.cpp │ ├── focusclient.h │ ├── xfitsimage.cpp │ ├── xfitsimage.h │ ├── xfocusc.cpp │ └── xfocusc.h ├── focusd │ ├── Makefile.am │ ├── aaf.cpp │ ├── apm.cpp │ ├── atc2.cpp │ ├── dummy.cpp │ ├── fli.cpp │ ├── flitc.cpp │ ├── mdm.cpp │ ├── mdm_bait.cpp │ ├── microfocuser.cpp │ ├── ng.cpp │ ├── nstep.cpp │ ├── opentpl.cpp │ ├── optec.cpp │ ├── planewave.cpp │ ├── pwiirf90.cpp │ ├── pwiirf90.cpp~ │ ├── robofocus.cpp │ └── tefo.cpp ├── grb │ ├── Makefile.am │ ├── augershooter.cpp │ ├── augershooter.h │ ├── conngrb.ec │ ├── conngrb.h │ ├── connshooter.ec │ ├── connshooter.h │ ├── forward.cpp │ ├── grbconst.h │ ├── grbd.cpp │ ├── grbd.h │ ├── rts2grbfw.cpp │ ├── rts2grbfw.h │ └── socket_demo.c ├── httpd │ ├── Makefile.am │ ├── api.cpp │ ├── api.h │ ├── augerreq.cpp │ ├── augerreq.h │ ├── bbapi.cpp │ ├── bbapi.h │ ├── bbapidb.h │ ├── bbserver.cpp │ ├── bbserver.h │ ├── devicesreq.cpp │ ├── devicesreq.h │ ├── emailaction.cpp │ ├── emailaction.h │ ├── events.cpp │ ├── events.h │ ├── graphreq.cpp │ ├── graphreq.h │ ├── hd.py │ ├── httpd.cpp │ ├── httpd.h │ ├── jsonclient.cpp │ ├── messageevents.cpp │ ├── messageevents.h │ ├── planreq.cpp │ ├── planreq.h │ ├── r2x.h │ ├── session.cpp │ ├── session.h │ ├── stateevents.cpp │ ├── stateevents.h │ ├── stateeventsdb.ec │ ├── switchstatereq.cpp │ ├── switchstatereq.h │ ├── valueevents.cpp │ ├── valueevents.h │ ├── valueeventsdb.ec │ ├── valueplot.cpp │ ├── valueplot.h │ ├── xmlapi.cpp │ ├── xmlapi.h │ ├── xmlrpcclient.cpp │ └── xmlstream.h ├── logger │ ├── Makefile.am │ ├── logd.cpp │ ├── logger.cpp │ ├── loggerbase.cpp │ ├── loggerbase.h │ └── test.log ├── mirror │ ├── Makefile.am │ ├── dummy.cpp │ └── fram.cpp ├── monitor │ ├── Makefile.am │ ├── cmonitor.cpp │ ├── daemonwindow.cpp │ ├── daemonwindow.h │ ├── ncomwin.cpp │ ├── ncomwin.h │ ├── ndevicewindow.cpp │ ├── ndevicewindow.h │ ├── nlayout.cpp │ ├── nlayout.h │ ├── nmenu.cpp │ ├── nmenu.h │ ├── nmonitor.cpp │ ├── nmonitor.h │ ├── nmsgbox.cpp │ ├── nmsgbox.h │ ├── nmsgwindow.cpp │ ├── nmsgwindow.h │ ├── nstatuswindow.cpp │ ├── nstatuswindow.h │ ├── nvaluebox.cpp │ ├── nvaluebox.h │ ├── nwindow.cpp │ ├── nwindow.h │ ├── nwindowedit.cpp │ ├── nwindowedit.h │ ├── talker.cpp │ └── utf8chars.h ├── multidevd │ ├── Makefile.am │ ├── apm-aux.cpp │ ├── apm-aux.h │ ├── apm-filter.cpp │ ├── apm-filter.h │ ├── apm-multidev.cpp │ ├── apm-multidev.h │ ├── sitech-focuser.cpp │ ├── sitech-focuser.h │ ├── sitech-mirror.cpp │ ├── sitech-mirror.h │ ├── sitech-multidev.cpp │ └── sitech-multidev.h ├── pgsql │ ├── Makefile.am │ ├── pg_astrolib.c │ ├── pg_wcs.c │ ├── pg_wcs2.c │ └── test.c ├── phot │ ├── Makefile.am │ ├── dummy.cpp │ ├── kernel │ │ ├── Makefile │ │ ├── phot.c │ │ └── phot.h │ ├── phot_optec.cpp │ └── ssp5.cpp ├── plan │ ├── Makefile.am │ ├── convert_pfile │ ├── executor.cpp │ ├── imgproc.cpp │ ├── marchive.cpp │ ├── process_mpc.pl │ ├── request_mpc.pl │ ├── rts2-mkdirs │ ├── rts2devcliphot.ec │ ├── rts2devcliphot.h │ ├── scriptexec.cpp │ ├── scriptexec.h │ ├── scriptor.cpp │ ├── selector.ec │ ├── selector.h │ ├── selectordev.cpp │ ├── seltest.cpp │ ├── spiraltest.cpp │ └── test_gps.sql ├── pluto │ ├── Makefile.am │ ├── obs_test.cpp │ ├── obs_test.txt │ ├── obs_test2.cpp │ ├── out_comp.cpp │ ├── sat_id.cpp │ ├── test2.cpp │ ├── test3.cpp │ ├── test_out.cpp │ └── test_sat.cpp ├── redis │ ├── Makefile.am │ ├── redis.cpp │ └── redis.h ├── rotad │ ├── #pyxis.cpp# │ ├── Makefile.am │ ├── dummy.cpp │ ├── pwiirf90r.cpp │ ├── pwiirf90r.cpp~ │ ├── pyxis.cpp │ ├── sitech-multi.cpp │ ├── sitech-multi.h │ ├── sitech-rotator.cpp │ └── sitech-rotator.h ├── scheduler │ ├── Makefile.am │ └── scheduler.cpp ├── sensord │ ├── Makefile.am │ ├── a3200.cpp │ ├── aag.cpp │ ├── aag.h │ ├── afg.cpp │ ├── agilent-e3631a.cpp │ ├── allnet.cpp │ ├── apc.cpp │ ├── apcups.cpp │ ├── arduino.cpp │ ├── aws-mlab.cpp │ ├── bart-rain.cpp │ ├── bigelow.cpp │ ├── bigng.cpp │ ├── binder.cpp │ ├── boltwood.cpp │ ├── bootes1.cpp │ ├── bootes2.cpp │ ├── brooks-356.cpp │ ├── clarity.cpp │ ├── cloud2.cpp │ ├── cloud4.cpp │ ├── colamp.cpp │ ├── colores.cpp │ ├── cpx400.cpp │ ├── cryocon.cpp │ ├── d50-wfunit.cpp │ ├── davis.cpp │ ├── davis.h │ ├── davisudp.cpp │ ├── davisudp.h │ ├── davisudpmain.cpp │ ├── ds21.cpp │ ├── dummy.cpp │ ├── dws_t5.cpp │ ├── external.cpp │ ├── flwo-me.cpp │ ├── flwo-weather.cpp │ ├── fows.cpp │ ├── fram-weather.cpp │ ├── fram-weather.h │ ├── fram.cpp │ ├── framudp.cpp │ ├── framudp.h │ ├── hygrowin.cpp │ ├── keithley-487.cpp │ ├── keithley-scpi.cpp │ ├── l150.cpp │ ├── lakeshore-325.cpp │ ├── lakeshore-330.cpp │ ├── lakeshore-340.cpp │ ├── lpnhe.cpp │ ├── mdm_bait.cpp │ ├── micropirani-925.cpp │ ├── mm2500.cpp │ ├── mrakomer.cpp │ ├── ms257.cpp │ ├── ms260.cpp │ ├── multi.cpp │ ├── newport-lamp.cpp │ ├── niratir.cpp │ ├── nut.cpp │ ├── osn.cpp │ ├── phytron.cpp │ ├── pixy.cpp │ ├── pwc-ioctl.h │ ├── pwc.cpp │ ├── reinhardt.cpp │ ├── saao.cpp │ ├── serduino │ │ └── serduino.pde │ ├── system.cpp │ ├── tbt.cpp │ ├── thermocube.cpp │ ├── thorlabs-PM100D.cpp │ ├── thorlaser.cpp │ ├── tps534-oak.c │ ├── tps534-oak.h │ ├── tps534.cpp │ └── triax.cpp ├── sql │ ├── Makefile.am │ ├── README │ ├── auger │ │ ├── Makefile.am │ │ ├── rel_0_6_0.sql │ │ ├── rel_0_6_2.sql │ │ ├── rel_0_8_0.sql │ │ ├── rel_0_8_1.sql │ │ └── stat.sql │ ├── bb │ │ ├── Makefile.am │ │ ├── create.sql │ │ └── grant.sql │ ├── blanks │ │ ├── README │ │ ├── flats │ │ └── trans.pl │ ├── create │ │ ├── Makefile.am │ │ ├── functions.sql │ │ ├── language.sql │ │ ├── tables.sql │ │ ├── typ_wcs.sql │ │ ├── typ_wcs2.sql │ │ └── views.sql │ ├── data │ │ ├── Makefile.am │ │ ├── dummy.sql │ │ ├── flats_iac.sql │ │ ├── init.sql │ │ ├── landolt.sql │ │ ├── planets.sql │ │ └── targets.sql │ ├── drop │ │ ├── Makefile.am │ │ ├── functions.sql │ │ ├── tables.sql │ │ ├── typ_wcs.sql │ │ ├── typ_wcs2.sql │ │ └── views.sql │ ├── fram │ │ └── landolts.sql │ ├── grant.sql │ ├── init_test.sql │ ├── phot │ │ ├── Makefile.am │ │ ├── phot.sql │ │ └── rts2phot.py │ ├── rts2-bbbuilddb │ ├── rts2-builddb │ ├── rts2-configdb │ ├── telma │ │ ├── Makefile.am │ │ └── users.sql │ └── update │ │ ├── Makefile.am │ │ ├── rel_0_5_1.sql │ │ ├── rel_0_5_2.sql │ │ ├── rel_0_6_0.sql │ │ ├── rel_0_6_1.sql │ │ ├── rel_0_6_2.sql │ │ ├── rel_0_7_0.sql │ │ ├── rel_0_7_1.sql │ │ ├── rel_0_7_4.sql │ │ ├── rel_0_7_5.sql │ │ ├── rel_0_8_0.sql │ │ ├── rel_0_8_1.sql │ │ ├── rel_0_9_3.sql │ │ ├── rel_0_9_5.sql │ │ ├── rel_0_9_6.sql │ │ ├── rel_1_0_0.sql │ │ ├── rel_1_0_1.sql │ │ └── wcs2.sql ├── teld │ ├── Makefile.am │ ├── apgto.cpp │ ├── apgto_pk.cpp │ ├── bait.cpp │ ├── d50.cpp │ ├── dummy.cpp │ ├── gemini.cpp │ ├── hlohovec.cpp │ ├── indibridge.cpp │ ├── irait.cpp │ ├── irait │ │ ├── Makefile.am │ │ ├── galil.cpp │ │ ├── galil.h │ │ ├── iraitenc.cpp │ │ └── iraitenc.h │ ├── kolonica.cpp │ ├── lx200.cpp │ ├── lx200focgps.cpp │ ├── lx200gps.cpp │ ├── lx200test.cpp │ ├── mdm.cpp │ ├── meade.cpp │ ├── mm2.cpp │ ├── model.test │ ├── nexstar.cpp │ ├── opentpl-errors.cpp │ ├── opentpl.cpp │ ├── paramount.cpp │ ├── planewave.cpp │ ├── sitech-altaz.cpp │ ├── sitech-gem.cpp │ ├── tcsng.cpp │ ├── telmodeltest.cpp │ └── trencin.cpp ├── thrift │ ├── Makefile.am │ ├── rts2.thrift │ ├── thrift.cpp │ └── thriftd.cpp ├── ucac5 │ ├── Makefile.am │ ├── idx.cpp │ ├── search.cpp │ └── ucac5-download └── wsd │ ├── Makefile.am │ ├── http.c │ ├── wsd.cpp │ └── wsd.h ├── stamp-h.in └── tests ├── Makefile.am ├── modelin-altaz ├── modelin-gem ├── random_pointing.py └── random_pointing.sh /.gitlab-ci.yml: -------------------------------------------------------------------------------- 1 | image: pkubanek/rts2 2 | 3 | stages: 4 | - build 5 | - test 6 | 7 | build: 8 | stage: build 9 | script: 10 | - ./autogen.sh 11 | - ./configure 12 | - make 13 | 14 | test: 15 | stage: test 16 | script: 17 | - apt install -y check 18 | - ./autogen.sh 19 | - ./configure 20 | - make check || (cat ./test-suite.log; false) 21 | -------------------------------------------------------------------------------- /AUTHORS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/AUTHORS -------------------------------------------------------------------------------- /INSTALL.alta: -------------------------------------------------------------------------------- 1 | Instructions to install Alta Apogee devices 2 | =========================================== 3 | 4 | For Apogee ALTA CCDs and filter wheels, you will need to install Apogee SDK. 5 | You can download one from Random Factory (http://www.randomfactory.com), or 6 | from RTS2 SVN. Getting drivers from RTS2 SVN is highly recomended, as those are 7 | patched for few know problems and runs on 64bit platforms. 8 | 9 | To get SVN version, run: 10 | 11 | user@host:~$ svn co https://rts-2.svn.sf.net/svnroot/rts-2/apogee 12 | 13 | Apogee drivers are a bit hairy. But do not worry, you need only apogee_USB.so 14 | and apogee_NET.so libraries. For this build, you will need libusb-dev package 15 | (apt-get install libusb-dev). After installing libusb-dev, run following 16 | commands: 17 | 18 | user@host:~$ cd apogee 19 | user@host:~/apogee$ make apogee_USB.so apogee_NET.so 20 | 21 | Then you will need to run ./configure from rts2 with --with-alta option: 22 | 23 | user@host:~/apogee$ cd ~/rts2 24 | user@host:~/rts2$ ./configure --without-wcs --with-alta=$HOME/apogee 25 | 26 | Then run make and (as root) make install. Please see RUN file for details on 27 | that. 28 | -------------------------------------------------------------------------------- /INSTALL.comedi: -------------------------------------------------------------------------------- 1 | Instructions for Comedi devices 2 | =============================== 3 | 4 | 5 | Comedi is a project to provide drivers for various measurement cards. It can be 6 | downloaded from http://www.comedi.org, but easier is to apt-get install 7 | comedi-sources libcomedi-dev. 8 | 9 | To compile modules: 10 | 11 | cd /usr/src/ 12 | tar xjf comedi.tar.bz2 13 | cd modules/comedi 14 | ./configure 15 | make 16 | 17 | If you hit any problems, let me know (petr [at] kubanek [dot] net). There is a 18 | know issue with kernels above 2.6.26, I have patch for those. 19 | 20 | Once you will have comedi installed, just rerun ./configure, it will detect 21 | that libcomedi is installed and will build all devices which depends on it. 22 | After ./configure reports yes for Comedi driver, just rerun make to build all 23 | comedi dependend devices. 24 | 25 | Currently only weather sensor for Bootes 2 dome depends on Comedi library - its 26 | source is located in src/sensord/bootes2.cpp. You can check this for example how 27 | to use Comedi device in your application. 28 | 29 | Then run make and (as root) make install. Please see RUN file for details on 30 | that. 31 | -------------------------------------------------------------------------------- /INSTALL.miccd: -------------------------------------------------------------------------------- 1 | Instructions to install MI CCD driver 2 | ===================================== 3 | 4 | For Moravian Instruments CCDs (http://ccd.mii.cz) you will need to obtain Linux 5 | library. This is distributed on request. Please contact Petr Kubanek 6 | or Pavel Cagas to obtain the tar.gz source file 7 | and compile it. 8 | 9 | Then you will need to run ./configure from rts2 with --with-miccd option: 10 | 11 | user@host:~/apogee$ cd ~/rts2 12 | user@host:~/rts2$ ./configure --without-wcs --with-miccd=$HOME/miccd 13 | 14 | asuming that MI CCD Linux library was installed in %HOME/miccd directory. 15 | 16 | Then run make and (as root) make install. Please see RUN file for details on 17 | that. 18 | -------------------------------------------------------------------------------- /INSTALL.paramount: -------------------------------------------------------------------------------- 1 | Instructions to install Software Bisque Paramount driver 2 | ======================================================== 3 | 4 | You need to obtain libmks3.h and libmks3.o files. Please ask petr@kubanek.net 5 | for details how to get them. 6 | 7 | Download them to $HOME/paracl directory. 8 | 9 | Then run from RTS2 code (see generic instructions in INSTALL file): 10 | 11 | user@host:~/rts2$ ./configure --without-wcs --with-paralib=$HOME/paracl 12 | 13 | This will tell build system to build with paramount libraries. 14 | 15 | Then run make and (as root) make install. Please see RUN file for details on 16 | that. 17 | -------------------------------------------------------------------------------- /Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = include \ 2 | lib \ 3 | src \ 4 | doc \ 5 | man \ 6 | contrib \ 7 | python \ 8 | scripts \ 9 | conf \ 10 | checks 11 | 12 | EXTRA_DIST = autogen.sh RUN rts2.initd.in \ 13 | INSTALL INSTALL.alta INSTALL.fli INSTALL.paramount INSTALL.andor \ 14 | INSTALL.comedi INSTALL.miccd INSTALL.sbig INSTALL.gpib rts2-init.in \ 15 | README.md 16 | 17 | README: README.md 18 | ln -s $< $@ 19 | 20 | noinst_HEADERS = config.h 21 | 22 | ACLOCAL_AMFLAGS = -I m4 23 | 24 | spellcheck: 25 | cd man && make $@ 26 | -------------------------------------------------------------------------------- /NEWS: -------------------------------------------------------------------------------- 1 | 0.8.0 2 | rts2-centrald Logic for detecting missing devices. 3 | 4 | Mailing 5 | 6 | sendMailMessage 7 | 8 | RTS2 scripting 9 | 10 | C, HEX commands needs for proper functionality name of the device 11 | 12 | rts2-xmlrpcclient 13 | 14 | It is now possible to set RTS2 variable by XML-RPC call. Either use some 15 | custom XML-RPC library and call rts2.values.set with device, var and value 16 | filled in (look to src/xmlrpc/xmlrpcclient.cpp for an example) or use 17 | rts2-xmlrpcclient with -s option (see rts2-xmlrpcclient for small help). 18 | 19 | rts2-image 20 | 21 | -l option to create softlinks 22 | 23 | rts2-sensor-pixy (lightening sensor) 24 | 25 | rts2-sensor-mrakomer (cloud sensor) 26 | 27 | rts2-user binary (see man rts2-user for details) 28 | 29 | -N option (do not pretty print) for rts2-nightreport, rts2-target, rts2-targetlist, rts2-targetinfo and rts2-telmodeltest 30 | 31 | rts2-logd check for expansion pattern changes 32 | 33 | Scheduler support - uses new tables "tickets", "accounts", etc.. 34 | -------------------------------------------------------------------------------- /README.cygwin: -------------------------------------------------------------------------------- 1 | Installation of RTS2 on Cygwin 2 | 3 | RTS2 can run on Microsoft Windows (R)(TM), using Cygwin enviroment. You can get Cygwin from http://www.cygwin.com. 4 | 5 | RTS2 takes benefits from Cygwin Unix emulation, which includes select() call 6 | etc. It can be linked with Windows libraries. That enables you to quickly add devices, for which you get only binary 7 | Windows driver, to RTS2. 8 | 9 | Petr Kubanek 10 | -------------------------------------------------------------------------------- /VERSION: -------------------------------------------------------------------------------- 1 | 0.9.4 2 | -------------------------------------------------------------------------------- /autogen.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | rm -f aclocal.m4 4 | 5 | #AC_VERSION=-1.7 6 | AC_VERSION="" 7 | 8 | if [ `uname` = 'Darwin' ]; then 9 | aclocal$AC_VERSION && glibtoolize && autoheader && automake$AC_VERSION --add-missing && autoconf 10 | else 11 | aclocal$AC_VERSION && libtoolize && autoheader && automake$AC_VERSION --add-missing && autoconf 12 | fi 13 | -------------------------------------------------------------------------------- /bbhtml/script.js: -------------------------------------------------------------------------------- 1 | // script window for Schedule UI 2 | $(function() { 3 | $("#script-form").dialog({ 4 | autoOpen: false, 5 | modal: true, 6 | width: 300, 7 | height: 400, 8 | buttons: { 9 | 'Save': function() { 10 | $(this).dialog('close'); 11 | }, 12 | 'Cancel': function() { 13 | $(this).dialog('close'); 14 | } 15 | } 16 | }); 17 | 18 | $("#script_add_add").click(function() { 19 | alert('Trying to add. Exposure ' + $('#script.add.exposure').value); 20 | }) 21 | }); 22 | -------------------------------------------------------------------------------- /checks/check_python_mpcephem: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | sys.path.append('../python/rts2') 5 | 6 | import mpcephem 7 | import unittest 8 | import numpy 9 | 10 | 11 | class MPCTest(unittest.TestCase): 12 | 13 | def __check_point(self, radec, ra, dec, ra_motion, dec_motion, V): 14 | self.assertAlmostEqual(radec[0], ra, 4) 15 | self.assertAlmostEqual(radec[1], dec, 4) 16 | self.assertAlmostEqual(radec[2], ra_motion, 2) 17 | self.assertAlmostEqual(radec[3], dec_motion, 2) 18 | self.assertAlmostEqual(radec[4], V, 1) 19 | 20 | def testLoad(self): 21 | a = mpcephem.MPCEphem('data/mpecephem_ida') 22 | 23 | date = numpy.datetime64('2017-09-20T10:25:31.4') 24 | 25 | pos = a.interpolate(date) 26 | self.__check_point(pos, 12.96583, -5.88810, 0.89, -0.38, 15.7) 27 | 28 | date = numpy.datetime64('2017-10-02T10:25:31.4') 29 | pos = a.interpolate(date) 30 | self.assertEqual(pos[0], None) 31 | 32 | 33 | unittest.main() 34 | -------------------------------------------------------------------------------- /checks/check_python_rts2: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | sys.path.append('../python/rts2') 5 | 6 | import kmparse 7 | import unittest 8 | 9 | class ParserTest(unittest.TestCase): 10 | def testParse(self): 11 | self.assertAlmostEqual(kmparse.kmparse('10k'), 10000) 12 | self.assertAlmostEqual(kmparse.kmparse('10M'), 10e+6) 13 | self.assertAlmostEqual(kmparse.kmparse('1234.123M'), 1234.123e+6) 14 | self.assertAlmostEqual(kmparse.kmparse('1234.123'), 1234.123) 15 | self.assertAlmostEqual(kmparse.kmparse('1234.123k'), 1234.123e+3) 16 | self.assertAlmostEqual(kmparse.kmparse('3.123K'), 3.123e+3) 17 | 18 | unittest.main() 19 | -------------------------------------------------------------------------------- /checks/check_utils.h: -------------------------------------------------------------------------------- 1 | #ifndef __CHECK_UTILS__ 2 | #define __CHECK_UTILS__ 3 | 4 | #include 5 | #include 6 | 7 | #include 8 | 9 | #define ck_assert_dbl_eq(v1,v2,alow) ck_assert_msg(fabs((v1)-(v2)) < (alow), "difference between %.10f and %.10f > %.10f", (double)(v1), (double)(v2), (double)(alow)); 10 | //to find out errors.. 11 | //#define ck_assert_dbl_eq(v1,v2,alow) if (fabs((v1)-(v2)) >= (alow)) { printf ("%s:%d: difference between %.4f and %.10f > %.10f\n", __FILE__, __LINE__, (double)(v1), (double)(v2), (double)(alow)); } 12 | #define ck_assert_lng_dbl_eq(v1,v2,alow) ck_assert_msg(fabs((v1)-(v2)) < (alow), "difference between %.10Lf and %.10Lf > %.10Lf", (long double)(v1), (long double)(v2), (long double)(alow)); 13 | 14 | inline void ck_assert_string_eq (const char *chr, std::string oo) 15 | { 16 | ck_assert_str_eq (chr, oo.c_str ()); 17 | } 18 | 19 | #endif //!__CHECK_UTILS__ 20 | -------------------------------------------------------------------------------- /checks/data/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = finals2000A.daily fram.fits image.fits 2 | -------------------------------------------------------------------------------- /checks/data/fram.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/checks/data/fram.fits -------------------------------------------------------------------------------- /checks/data/image.fits: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/checks/data/image.fits -------------------------------------------------------------------------------- /checks/gpoint_template: -------------------------------------------------------------------------------- 1 | # test file for report generation 2 | Pointing model for a virtual telescope. Used for testing of the GPoint reporting. 3 | The base of telescope pointing modelling is as follows: 4 | 5 | * record target and actual telescope poitings (where the telescope was commanded to point, and where it actually pointed). 6 | 7 | * compute error (alt-az for alt-az mounts, ha-dec for equatorial mounts,..) 8 | 9 | * produce a function which from the target coordinates (where the telescope was commanded to point) estimates errors 10 | 11 | * add those errors to target coordinates next time you will be observing with the telescope 12 | 13 | For telescopes with reasonable error control, pointing error residuals RMS below 10" (arcseconds) is not unusuall. The best telescopes can easily achieve poitings with 1-2 arcseconds RMS. 14 | ! 15 | Vector plots of the errors. The beginning of each vector is unmodelled error, end is residual error (error after appliing model corrections). 16 | # now finally some plots 17 | @vect:az-corr-err:alt-err:az-corr-merr:alt-merr@c10@x 18 | @az:az-corr-err 19 | @az:alt-err 20 | @alt:az-corr-err 21 | @alt:alt-err 22 | -------------------------------------------------------------------------------- /conf/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = event.d 2 | 3 | configdir = $(datarootdir)/doc/@PACKAGE@/config 4 | config_DATA = rts2.ini centrald devices services events events.xsd \ 5 | schedule.xsd schedule sd test-example 6 | 7 | EXTRA_DIST = rts2\@.service.in rts2.service.in para_restart camd_restart dome_timeout 8 | -------------------------------------------------------------------------------- /conf/camd_restart: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # restarts camera on FRAM 3 | 4 | import rts2.scriptcomm 5 | import os 6 | import time 7 | import sys 8 | 9 | c=rts2.scriptcomm.Rts2Comm() 10 | 11 | fe1 = 0 12 | fe2 = 0 13 | 14 | try: 15 | fe1 = c.getValueInteger('filter_err','NF3') 16 | except Exception: 17 | c.log('I','NF3 fe1 set to 0') 18 | 19 | try: 20 | fe2 = c.getValueInteger('filter_err','WF6') 21 | except Exception: 22 | c.log('I','WF6 fe1 set to 0') 23 | 24 | if fe1 == 0 and fe2 == 0: 25 | c.log('I','filter_err NF3 {0} WF6 {1}'.format(fe1,fe2)) 26 | sys.exit(0) 27 | 28 | os.system('/usr/local/bin/rts2-stop F0') 29 | os.system('/usr/local/bin/rts2-stop WF6') 30 | os.system('/usr/local/bin/rts2-stop NF3') 31 | 32 | os.system('/usr/local/bin/rts2-stop WF6') 33 | os.system('/usr/local/bin/rts2-stop NF3') 34 | 35 | time.sleep(2) 36 | 37 | c.setValue('CCD_switch',0,'DOME') 38 | time.sleep(2) 39 | c.setValue('CCD_switch',1,'DOME') 40 | time.sleep(30) 41 | 42 | os.system('/usr/local/bin/rts2-start F0') 43 | os.system('/usr/local/bin/rts2-start WF6') 44 | os.system('/usr/local/bin/rts2-start NF3') 45 | 46 | c.log('I', 'camera restarted') 47 | -------------------------------------------------------------------------------- /conf/centrald: -------------------------------------------------------------------------------- 1 | # put to that file line: 2 | # centrald [centrald-options] to start centrald on our host 3 | # -[devices-options] to pass centrald-specific options to devices (-s -q ..) 4 | centrald 5 | --server localhost 6 | -------------------------------------------------------------------------------- /conf/constraints: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 13 | 14 | 15 | 2.0 16 | 17 | 18 | 19 | 20 | -2 21 | 2 22 | 23 | 24 | 25 | 26 | -30 27 | 90 28 | 29 | 30 | 10 31 | 32 | -------------------------------------------------------------------------------- /conf/createvalues: -------------------------------------------------------------------------------- 1 | ; file demonstrating how to create arbitary values 2 | ; load to any RTS2 component with --valuefile option 3 | ; .s creates autosave values 4 | 5 | test1.d = -12.3 ; test double value 6 | test2.das = "1.2 3.4 -5.6";test array 7 | test3.i = 98 ; test integer 8 | test4.ias ="1 3 -5";test integer array 9 | test5 = "string aa" ; test string 10 | test6s = only_test 11 | test7.s = "test string" 12 | -------------------------------------------------------------------------------- /conf/cronos: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 1027 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /conf/devices: -------------------------------------------------------------------------------- 1 | #RTS2 devices configuration 2 | #device type device_name options 3 | #example: 4 | camd dummy C0 --wheeldev W0 --focdev F0 --width 400 --height 500 --frame-transfer --localhost localhost 5 | teld dummy T0 --localhost localhost 6 | filterd dummy W0 -F "AA:B:C:D:E" -s 10 --localhost localhost 7 | focusd dummy F0 8 | cupola dummy CUP 9 | sensor dummy SD --modefile /etc/rts2/sd --localhost localhost 10 | -------------------------------------------------------------------------------- /conf/dome_timeout: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | # vim: set fileencoding=utf-8 : 3 | 4 | import rts2.scriptcomm 5 | import os 6 | import time 7 | import sys 8 | import smtplib 9 | from email.mime.text import MIMEText 10 | 11 | c=rts2.scriptcomm.Rts2Comm() 12 | 13 | to = 0 14 | 15 | try: 16 | to = c.getValueInteger('timeout_occured','DOME') 17 | except Exception: 18 | c.log('E','DOME cannout get timeout_occured') 19 | sys.exit(1) 20 | 21 | if to > 0: 22 | msg = MIMEText("Problem closing FRAM dome") 23 | msg['Subject'] = 'KRYTICKÁ CHYBA: nezavřel se barák' 24 | 25 | to = ['petr@kubanek.net'] 26 | 27 | msg['From'] = 'petr@kubanek.net' 28 | msg['To'] = ','.join(to) 29 | 30 | s = smtplib.SMTP('localhost') 31 | s.sendmail('petr@kubanek.net', to, msg.as_string()) 32 | s.quit() 33 | -------------------------------------------------------------------------------- /conf/event.d/Makefile.am: -------------------------------------------------------------------------------- 1 | eventdir = $(datarootdir)/doc/@PACKAGE@/config/event.d 2 | event_DATA = dome_closed dome_opened 3 | -------------------------------------------------------------------------------- /conf/event.d/dome_closed: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Example script which reports dome operations. 4 | 5 | echo "Hi, 6 | 7 | telescope dome was just closed. 8 | 9 | Important variables have following values: 10 | 11 | Dome switches: $DOME_sw_open_left $DOME_sw_close_left $DOME_sw_close_right $DOME_sw_open_right 12 | (expected): false true true false 13 | 14 | Cloud sensor value: $cloud_TEMP_DIFF ($cloud_TEMP_IN - $cloud_TEMP_OUT) 15 | Trip points are at: $cloud_TRIGBAD $cloud_TRIGGOOD 16 | 17 | Windspeeds: $METEO_AVGWIND $DAVIS_PEEKWIND 18 | Davis rain: $METEO_RAIN 19 | 20 | For you convenience, last GRB was recorded on $GRBD_last_target_time ($GRBD_last_target) 21 | Last GCN packet was processed on $GRBD_last_packet." | mail -s 'dome CLOSED' example@example.com 22 | -------------------------------------------------------------------------------- /conf/event.d/dome_opened: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # Example script which reports dome operations. 4 | 5 | echo "Hi, 6 | 7 | telescope dome was just opened. 8 | 9 | Important variables have following values: 10 | 11 | Dome switches: $DOME_sw_open_left $DOME_sw_close_left $DOME_sw_close_right $DOME_sw_open_right 12 | (expected): true false false true 13 | 14 | Cloud sensor value: $cloud_TEMP_DIFF ($cloud_TEMP_IN - $cloud_TEMP_OUT) 15 | Trip points are at: $cloud_TRIGBAD $cloud_TRIGGOOD 16 | 17 | Windspeeds: $METEO_AVGWIND $DAVIS_PEEKWIND 18 | Davis rain: $METEO_RAIN 19 | 20 | For you convenience, last GRB was recorded on $GRBD_last_target_time ($GRBD_last_target) 21 | Last GCN packet was processed on $GRBD_last_packet." | mail -s 'dome OPENED' example@example.com 22 | -------------------------------------------------------------------------------- /conf/fitstemplate.ini: -------------------------------------------------------------------------------- 1 | ; sample FITS template 2 | 3 | [PRIMARY] 4 | 5 | DATE-OBS = @infotime@ 6 | OBSERVER = rts2 / observer name 7 | EXP.d = @C0.exposure / system @centrald.sun_alt 8 | TESTK = @C0.CCD_TYPE @CCD_SER 9 | JD_NEW.d = %J / exposure start Julian date 10 | LT1.d = -1 11 | UTSTART.s = %A 12 | RA.d = @T0.TEL:RA 13 | DEC.d = @T0.TEL:dec 14 | 15 | RAH.hms = @T0.TEL:RA 16 | DECD.dms = @T0.TEL:dec 17 | 18 | RAT.tra = @T0.TEL:RA 19 | DECT.tdec = @T0.TEL:dec 20 | 21 | DRARA.arcsecm = @T0.DRATE:RA 22 | DRADEC.arcsecm = @T0.DRATE:dec 23 | 24 | [CHANNEL1] 25 | TESTK = testkey / system name 26 | 27 | ; DETECTOR 28 | DETSEC = [0:2000,0:2000] 29 | CCDSEC = [0:2000,0:2000] 30 | 31 | DTM1_1.d = -1 32 | DTM2_2.d = -1 33 | DTV1.d = 0 34 | DTV2.d = 0 35 | 36 | [CHANNEL2] 37 | 38 | DETSEC = [2000:4000,2000:4000] 39 | CCDSEC = [2000:4000,2000:4000] 40 | 41 | DTM1_1.d = 1 42 | DTM2_2.d = 1 43 | DTV1.d = 3000 44 | DTV2.d = 3000 45 | -------------------------------------------------------------------------------- /conf/horizon_flat_19_flip.txt: -------------------------------------------------------------------------------- 1 | AZ-ALT 2 | 1:00 +19:00 3 | 90:00 +19:00 4 | 120:00 +19:00 5 | 151:00 +14:00 6 | 209:00 +14:00 7 | 240:00 +19:00 8 | 270:00 +19:00 9 | 359:00 +19:00 10 | -------------------------------------------------------------------------------- /conf/logrotate/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = logrotate-rts2 logrotate-rts2.conf.in 2 | -------------------------------------------------------------------------------- /conf/logrotate/logrotate-rts2: -------------------------------------------------------------------------------- 1 | # 2 | # 3 | # cron configuration for RTS2 log file rotation 4 | # 2012, Markus Wildi, wildi.markus@bluewin.ch 5 | # 6 | # RTS2 log files are rotated every day at noon. 7 | # cron.daily (on e.g. Ubuntu systems) are excuted 8 | # at 6:25 local time, that is not suitable. 9 | # 10 | # Installation: 11 | # sudo cp logrotate-rts2 /etc/cron.d 12 | # 13 | # 14 | # 15 | SHELL=/bin/sh 16 | PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 17 | # 18 | 15 12 * * * root test -x /usr/sbin/logrotate && /usr/sbin/logrotate /etc/rts2/logrotate-rts2.conf 19 | 20 | -------------------------------------------------------------------------------- /conf/logrotate/logrotate-rts2.conf.in: -------------------------------------------------------------------------------- 1 | # 2 | # logrotate configuration for RTS2 log files 3 | # 2012, Markus Wildi, wildi.markus@bluewin.ch 4 | # 5 | # Installation: 6 | # sudo cp logrotate-rts2.conf /etc/rts2 7 | # 8 | # Files are rotated every day at noon. Uncomment or add 9 | # log file entries above line containing /var/log/rts2-debug 10 | # 11 | # 12 | #/var/log/rts2-data.log 13 | #/var/log/rts2-exec.log 14 | #/var/log/rts2-foc.log 15 | @LOG_FILE@{ 16 | size 1k 17 | daily 18 | missingok 19 | rotate 360 20 | dateext 21 | compress 22 | delaycompress 23 | notifempty 24 | create 640 root root 25 | copytruncate 26 | postrotate 27 | /usr/bin/killall -HUP rts2-centrald 28 | endscript 29 | } 30 | 31 | -------------------------------------------------------------------------------- /conf/rts2.service.in: -------------------------------------------------------------------------------- 1 | # systemctl config to start all services 2 | # 3 | [Unit] 4 | Description=RTS2 5 | Documentation=man:rts2(8) 6 | After=postgresql.service 7 | 8 | [Service] 9 | Type=forking 10 | ExecStart=@prefix@/bin/rts2-start all 11 | ExecStop=@prefix@/bin/rts2-stop all 12 | 13 | [Install] 14 | WantedBy=multi-user.target 15 | -------------------------------------------------------------------------------- /conf/rts2@.service.in: -------------------------------------------------------------------------------- 1 | # Systemctl config to start single RTS2 service/daemon 2 | # 3 | [Unit] 4 | Description=RTS2 %I 5 | Documentation=man:rts2(8) 6 | After=postgresql.service 7 | 8 | [Service] 9 | Type=forking 10 | ExecStart=@prefix@/bin/rts2-start %I 11 | ExecStop=@prefix@/bin/rts2-stop %I 12 | PIDFile=@LOCK_PREFIX@%i 13 | 14 | [Install] 15 | WantedBy=multi-user.target 16 | -------------------------------------------------------------------------------- /conf/rts2pa/rts2pa.cfg: -------------------------------------------------------------------------------- 1 | # 2012-07-27, Markus Wildi 2 | # default configuration for rts2pa.py 3 | # 4 | # 5 | [basic] 6 | configuration_file = /etc/rts2/rts2pa/rts2pa.cfg 7 | base_directory = /tmp/rts2pa 8 | temp_directory = /tmp/ 9 | test = True 10 | test_fields = ./images/CNP-02-10-00-89-00-00.fits,./images/CNP-02-10-30-89-00-20.fits 11 | 12 | [data_taking] 13 | exposure_time = 10.0 14 | duration = 1800.0 15 | sleep = 1800.0 16 | 17 | [astrometry] 18 | radius = 5.0 19 | replace = False 20 | verbose = False 21 | 22 | [mode] 23 | mode = KingA 24 | 25 | [coordinates] 26 | ha = 7.5 27 | pd = 1.0 28 | 29 | [ccd] 30 | arcsec_per_pix = 2.0 31 | 32 | [fits-header] 33 | jd = JD 34 | date-obs = DATE-OBS 35 | orira = ORIRA 36 | oridec = ORIDEC 37 | site-lon = SITE-LON 38 | site-lat = SITE-LAT 39 | 40 | -------------------------------------------------------------------------------- /conf/rts2saf/cup.modefile: -------------------------------------------------------------------------------- 1 | [default] 2 | 3 | moveCountTop=10 4 | -------------------------------------------------------------------------------- /conf/rts2saf/f0.modefile: -------------------------------------------------------------------------------- 1 | [default] 2 | 3 | foc_min = -1111. 4 | foc_max = 9999. 5 | focstep= 1000 -------------------------------------------------------------------------------- /conf/schedule: -------------------------------------------------------------------------------- 1 | 5 | 6 | NGC457 7 | 8 | 9 | 20.340-30.234 10 | 11 | 12 | 13 | 14 | 15 | 2.0 16 | -44 17 | 18 | 19 | 20 | 21 | R 22 | 20 23 | 24 | 25 | B 26 | 40 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /conf/sd: -------------------------------------------------------------------------------- 1 | ; this is modefile for dummy sensor from example configuration 2 | 3 | [500 kpix/sec] 4 | 5 | timer_count = 50 6 | 7 | [250 kpix/sec] 8 | 9 | timer_count = 60 10 | -------------------------------------------------------------------------------- /conf/services: -------------------------------------------------------------------------------- 1 | #service service_name options 2 | imgproc IMGP 3 | grbd GRBD 4 | executor EXEC 5 | selector SEL --add-queue manual --add-queue plan 6 | #specify HTTPD user, if you wish so 7 | #httpd HTTPD --run-as user 8 | httpd HTTPD 9 | -------------------------------------------------------------------------------- /conf/test-example: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /contrib/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = 2 | 3 | if CERN_ROOT 4 | bin_PROGRAMS += rts2af-fit-focus 5 | 6 | rts2af_fit_focus_SOURCES = rts2af_fit_focus.C 7 | rts2af_fit_focus_LDFLAGS = @LIB_ROOT@ 8 | rts2af_fit_focus_CXXFLAGS = @ROOT_CXXFLAGS@ 9 | 10 | endif 11 | -------------------------------------------------------------------------------- /doc/Makefile.am: -------------------------------------------------------------------------------- 1 | doc: doxyfile 2 | -doxygen doxyfile 3 | 4 | CLEANFILES = html man 5 | 6 | EXTRA_DIST = doxyfile.in 7 | 8 | # copy to SF project pages 9 | copy_to_sf: 10 | rsync -av --rsh=ssh html web.sf.net:/home/project-web/rts-2/htdocs/doc/ 11 | rsync -av --rsh=ssh latex/refman.pdf web.sf.net:/home/project-web/rts-2/htdocs/doc/ 12 | -------------------------------------------------------------------------------- /doc/uc/user_authentification.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | User authentification 5 | 6 | 7 | 8 | 9 |

User authentification

10 | 11 |

Input screen

12 | 13 |

Contains boxes with:

14 | 15 |
    16 |
  • user login name/email
  • 17 |
  • password
  • 18 |
19 | 20 |

GWT RPC calls involed

21 | 22 | org.rts2.client.Rts2Services.login 23 | 24 |

XML-RPC calls involed

25 | 26 | rts2.user.login 27 | 28 |

Output

29 | 30 |

Either homepage of the user, or password wrong/retry

31 | 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /doc/xmlrpc/rts2.user.login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | rts2.user.login XML-RPC call 5 | 6 | 7 | 8 | 9 |

rts2.user.login XML-RPC call

10 | 11 |

Input parameters

12 | 13 |
    14 |
  • string[2] array
  • 15 |
16 | 17 |

Input parameters holds login name and password (in this order).

18 | 19 |

Output

20 | 21 |

Boolean. True if login succed, false otherwise

22 | 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /html/Makefile.am: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | 3 | htmldatadir = ${datadir}/doc/@PACKAGE@/html 4 | 5 | dist_htmldata_DATA = bartdb_months.php \ 6 | chart.php \ 7 | days.php \ 8 | display.php \ 9 | download.php \ 10 | fitsdb.php \ 11 | images.php \ 12 | index.php \ 13 | infos.php \ 14 | login.php \ 15 | logout.php \ 16 | medias.php \ 17 | menu.php \ 18 | night.php \ 19 | observations.php \ 20 | plan.php \ 21 | preview.php \ 22 | radec.php \ 23 | settings.php \ 24 | statistics_gen.php \ 25 | targets.php \ 26 | types.php 27 | -------------------------------------------------------------------------------- /html/engine/config.site.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Site configuration 3 | */ 4 | 5 | var _TIMEZONE = "0"; 6 | var _LATITUDE = 50; // positive north 7 | var _LONGITUDE = 15; // positive east 8 | 9 | -------------------------------------------------------------------------------- /html/engine/lib/img/aqua_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/aqua_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/aqua_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/aqua_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/aqua_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/aqua_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/armygreen_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/armygreen_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/armygreen_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/armygreen_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/armygreen_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/armygreen_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/bananasplit_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/bananasplit_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/bananasplit_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/bananasplit_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/bananasplit_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/bananasplit_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/beige_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/beige_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/beige_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/beige_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/beige_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/beige_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/boxBottomLeftCorner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/boxBottomLeftCorner.png -------------------------------------------------------------------------------- /html/engine/lib/img/boxBottomRightCorner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/boxBottomRightCorner.png -------------------------------------------------------------------------------- /html/engine/lib/img/boxSideWallPx.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/boxSideWallPx.gif -------------------------------------------------------------------------------- /html/engine/lib/img/boxSideWallPx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/boxSideWallPx.png -------------------------------------------------------------------------------- /html/engine/lib/img/boxTopLeftCorner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/boxTopLeftCorner.png -------------------------------------------------------------------------------- /html/engine/lib/img/boxTopPx.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/boxTopPx.gif -------------------------------------------------------------------------------- /html/engine/lib/img/boxTopPx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/boxTopPx.png -------------------------------------------------------------------------------- /html/engine/lib/img/boxTopRightCorner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/boxTopRightCorner.png -------------------------------------------------------------------------------- /html/engine/lib/img/closeButton_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/closeButton_down.gif -------------------------------------------------------------------------------- /html/engine/lib/img/closeButton_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/closeButton_normal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/closeButton_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/closeButton_over.gif -------------------------------------------------------------------------------- /html/engine/lib/img/deepblue_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/deepblue_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/deepblue_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/deepblue_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/deepblue_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/deepblue_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/greenish_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/greenish_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/greenish_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/greenish_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/greenish_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/greenish_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/lightgreen_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/lightgreen_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/lightgreen_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/lightgreen_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/lightgreen_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/lightgreen_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/monthBackward_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/monthBackward_down.gif -------------------------------------------------------------------------------- /html/engine/lib/img/monthBackward_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/monthBackward_normal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/monthBackward_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/monthBackward_over.gif -------------------------------------------------------------------------------- /html/engine/lib/img/monthForward_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/monthForward_down.gif -------------------------------------------------------------------------------- /html/engine/lib/img/monthForward_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/monthForward_normal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/monthForward_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/monthForward_over.gif -------------------------------------------------------------------------------- /html/engine/lib/img/ocean_blue_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/ocean_blue_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/ocean_blue_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/ocean_blue_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/ocean_blue_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/ocean_blue_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/orange_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/orange_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/orange_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/orange_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/orange_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/orange_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/peppermint_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/peppermint_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/peppermint_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/peppermint_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/peppermint_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/peppermint_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/pink_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/pink_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/pink_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/pink_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/pink_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/pink_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/purple_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/purple_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/purple_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/purple_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/purple_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/purple_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/torqoise_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/torqoise_dayDown.gif -------------------------------------------------------------------------------- /html/engine/lib/img/torqoise_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/torqoise_dayNormal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/torqoise_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/torqoise_dayOver.gif -------------------------------------------------------------------------------- /html/engine/lib/img/yearBackward_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/yearBackward_down.gif -------------------------------------------------------------------------------- /html/engine/lib/img/yearBackward_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/yearBackward_normal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/yearBackward_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/yearBackward_over.gif -------------------------------------------------------------------------------- /html/engine/lib/img/yearForward_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/yearForward_down.gif -------------------------------------------------------------------------------- /html/engine/lib/img/yearForward_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/yearForward_normal.gif -------------------------------------------------------------------------------- /html/engine/lib/img/yearForward_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/engine/lib/img/yearForward_over.gif -------------------------------------------------------------------------------- /html/engine/module.finFilter.js: -------------------------------------------------------------------------------- 1 | /** 2 | * ******* RTS UI FINISHED TARGET SEARCH MODULE CLASS ******* 3 | * Login screen 4 | * @constructor 5 | */ 6 | 7 | 8 | function finFilter(slotInstance) 9 | { 10 | this.slot = slotInstance; 11 | 12 | this.render = function() 13 | { 14 | this.slot.title = "Filter"; 15 | 16 | var out = '\ 17 |
\ 18 | Name: \ 19 |
\ 20 | <\ 21 | ID\ 22 | <\ 23 |
\ 24 |
\ 25 | \ 26 |
\ 27 | '; 28 | 29 | this.slot.setContent(out); 30 | } 31 | 32 | 33 | 34 | } 35 | 36 | 37 | -------------------------------------------------------------------------------- /html/engine/module.tarFilter.js: -------------------------------------------------------------------------------- 1 | /** 2 | * ******* RTS UI FINISHED TARGET SEARCH MODULE CLASS ******* 3 | * Login screen 4 | * @constructor 5 | */ 6 | 7 | 8 | function tarFilter(slotInstance) 9 | { 10 | this.slot = slotInstance; 11 | 12 | this.render = function() 13 | { 14 | this.slot.title = "Filter"; 15 | 16 | var out = '\ 17 |
\ 18 | Name: \ 19 |
\ 20 | <\ 21 | ID\ 22 | <\ 23 |
\ 24 |
\ 25 | \ 26 |
\ 27 | '; 28 | 29 | this.slot.setContent(out); 30 | } 31 | 32 | 33 | 34 | } 35 | 36 | 37 | -------------------------------------------------------------------------------- /html/gfx/ajax-loader.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/ajax-loader.gif -------------------------------------------------------------------------------- /html/gfx/bg.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/bg.gif -------------------------------------------------------------------------------- /html/gfx/bg2.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/bg2.gif -------------------------------------------------------------------------------- /html/gfx/calendar/aqua_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/aqua_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/aqua_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/aqua_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/aqua_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/aqua_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/armygreen_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/armygreen_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/armygreen_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/armygreen_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/armygreen_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/armygreen_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/bananasplit_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/bananasplit_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/bananasplit_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/bananasplit_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/bananasplit_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/bananasplit_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/beige_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/beige_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/beige_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/beige_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/beige_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/beige_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/boxBottomLeftCorner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/boxBottomLeftCorner.png -------------------------------------------------------------------------------- /html/gfx/calendar/boxBottomRightCorner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/boxBottomRightCorner.png -------------------------------------------------------------------------------- /html/gfx/calendar/boxSideWallPx.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/boxSideWallPx.gif -------------------------------------------------------------------------------- /html/gfx/calendar/boxSideWallPx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/boxSideWallPx.png -------------------------------------------------------------------------------- /html/gfx/calendar/boxTopLeftCorner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/boxTopLeftCorner.png -------------------------------------------------------------------------------- /html/gfx/calendar/boxTopPx.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/boxTopPx.gif -------------------------------------------------------------------------------- /html/gfx/calendar/boxTopPx.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/boxTopPx.png -------------------------------------------------------------------------------- /html/gfx/calendar/boxTopRightCorner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/boxTopRightCorner.png -------------------------------------------------------------------------------- /html/gfx/calendar/closeButton_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/closeButton_down.gif -------------------------------------------------------------------------------- /html/gfx/calendar/closeButton_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/closeButton_normal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/closeButton_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/closeButton_over.gif -------------------------------------------------------------------------------- /html/gfx/calendar/deepblue_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/deepblue_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/deepblue_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/deepblue_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/deepblue_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/deepblue_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/greenish_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/greenish_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/greenish_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/greenish_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/greenish_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/greenish_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/lightgreen_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/lightgreen_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/lightgreen_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/lightgreen_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/lightgreen_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/lightgreen_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/monthBackward_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/monthBackward_down.gif -------------------------------------------------------------------------------- /html/gfx/calendar/monthBackward_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/monthBackward_normal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/monthBackward_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/monthBackward_over.gif -------------------------------------------------------------------------------- /html/gfx/calendar/monthForward_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/monthForward_down.gif -------------------------------------------------------------------------------- /html/gfx/calendar/monthForward_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/monthForward_normal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/monthForward_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/monthForward_over.gif -------------------------------------------------------------------------------- /html/gfx/calendar/ocean_blue_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/ocean_blue_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/ocean_blue_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/ocean_blue_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/ocean_blue_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/ocean_blue_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/orange_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/orange_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/orange_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/orange_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/orange_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/orange_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/peppermint_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/peppermint_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/peppermint_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/peppermint_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/peppermint_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/peppermint_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/pink_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/pink_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/pink_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/pink_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/pink_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/pink_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/purple_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/purple_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/purple_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/purple_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/purple_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/purple_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/torqoise_dayDown.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/torqoise_dayDown.gif -------------------------------------------------------------------------------- /html/gfx/calendar/torqoise_dayNormal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/torqoise_dayNormal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/torqoise_dayOver.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/torqoise_dayOver.gif -------------------------------------------------------------------------------- /html/gfx/calendar/yearBackward_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/yearBackward_down.gif -------------------------------------------------------------------------------- /html/gfx/calendar/yearBackward_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/yearBackward_normal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/yearBackward_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/yearBackward_over.gif -------------------------------------------------------------------------------- /html/gfx/calendar/yearForward_down.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/yearForward_down.gif -------------------------------------------------------------------------------- /html/gfx/calendar/yearForward_normal.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/yearForward_normal.gif -------------------------------------------------------------------------------- /html/gfx/calendar/yearForward_over.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/calendar/yearForward_over.gif -------------------------------------------------------------------------------- /html/gfx/icons/astro.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/astro.png -------------------------------------------------------------------------------- /html/gfx/icons/calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/calendar.png -------------------------------------------------------------------------------- /html/gfx/icons/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/close.png -------------------------------------------------------------------------------- /html/gfx/icons/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/edit.png -------------------------------------------------------------------------------- /html/gfx/icons/editor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/editor.png -------------------------------------------------------------------------------- /html/gfx/icons/find.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/find.png -------------------------------------------------------------------------------- /html/gfx/icons/finished.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/finished.png -------------------------------------------------------------------------------- /html/gfx/icons/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/help.png -------------------------------------------------------------------------------- /html/gfx/icons/images.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/images.png -------------------------------------------------------------------------------- /html/gfx/icons/info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/info.png -------------------------------------------------------------------------------- /html/gfx/icons/label.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/label.png -------------------------------------------------------------------------------- /html/gfx/icons/list.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/list.png -------------------------------------------------------------------------------- /html/gfx/icons/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/login.png -------------------------------------------------------------------------------- /html/gfx/icons/map.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/map.png -------------------------------------------------------------------------------- /html/gfx/icons/plan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/plan.png -------------------------------------------------------------------------------- /html/gfx/icons/setup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/setup.png -------------------------------------------------------------------------------- /html/gfx/icons/solo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/icons/solo.png -------------------------------------------------------------------------------- /html/gfx/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/html/gfx/logo.png -------------------------------------------------------------------------------- /include/connection/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = tcp.h udp.h fork.h opentpl.h modbus.h serial.h bait.h ford.h tgdrive.h \ 2 | conngpib.h conngpiblinux.h conngpibenet.h conngpibprologix.h conngpibserial.h connscpi.h \ 3 | thorlabs.h sitech.h apm.h tcsng.h ethernet.h remotes.h 4 | -------------------------------------------------------------------------------- /include/connection/apm.h: -------------------------------------------------------------------------------- 1 | #ifndef __RTS2_CONNECTION_APM__ 2 | #define __RTS2_CONNECTION_APM__ 3 | 4 | #include "udp.h" 5 | #include "error.h" 6 | 7 | #include 8 | 9 | /** 10 | * Class for APM devices connection 11 | * 12 | * Provides basic operations on UDP connection - establish it, 13 | * send and receive data. 14 | * 15 | * @autor Standa Vitek 16 | */ 17 | 18 | namespace rts2core 19 | { 20 | 21 | class ConnAPM:public ConnUDP 22 | { 23 | public: 24 | ConnAPM (int _port, rts2core::Block *_master, const char *_hostname); 25 | 26 | protected: 27 | virtual int process (size_t len, struct sockaddr_in &from); 28 | }; 29 | 30 | } 31 | 32 | #endif // !__RTS2_CONNECTION_APM__ 33 | -------------------------------------------------------------------------------- /include/constsitech.h: -------------------------------------------------------------------------------- 1 | // SITech counts/servero loop -> speed value 2 | #define SPEED_MULTI 65536 3 | 4 | // Crystal frequency 5 | #define CRYSTAL_FREQ 96000000 6 | 7 | // Bits in error state 8 | #define ERROR_GATE_VOLTS_LOW 0x001 9 | #define ERROR_OVERCURRENT_HARDWARE 0x002 10 | #define ERROR_OVERCURRENT_FIRMWARE 0x004 11 | #define ERROR_MOTOR_VOLTS_LOW 0x008 12 | #define ERROR_POWER_BOARD_OVER_TEMP 0x010 13 | #define ERROR_NEEDS_RESET 0x020 14 | #define ERROR_LIMIT_MINUS 0x040 15 | #define ERROR_LIMIT_PLUS 0x080 16 | #define ERROR_TIMED_OVER_CURRENT 0x100 17 | #define ERROR_POSITION_ERROR 0x200 18 | #define ERROR_BISS_ENCODER_ERROR 0x400 19 | #define ERROR_CHECKSUM 0x800 20 | 21 | #define AUTO_Y 0x20 22 | #define AUTO_X 0x02 23 | -------------------------------------------------------------------------------- /include/door_vermes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Obs. Vermes door driver. 3 | * Copyright (C) 2010 Markus Wildi 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License 7 | * as published by the Free Software Foundation; either version 2 8 | * of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | #ifndef __RTS_DOOR_VERMES__ 20 | #define __RTS_DOOR_VERMES__ 21 | #define WAITING_FOR_HEART_BEAT_NANO_SEC (long) (200. * 1000. * 1000.) // [1^-9 sec] 22 | #define WAITING_FOR_CMD_COMPLETE_SEC (long) (2000. * 1000. * 1000.) 23 | #endif // __RTS_DOOR_VERMES__ 24 | -------------------------------------------------------------------------------- /include/gtp/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = Vector.h Point.hpp ppoly.h 2 | -------------------------------------------------------------------------------- /include/gtp/Point.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __POINT__ 2 | #define __POINT__ 3 | 4 | /** 5 | * Class representing 2D point. 6 | */ 7 | class Point 8 | { 9 | public: 10 | Point (double _x, double _y) { x = _x; y = _y; } 11 | double x; 12 | double y; 13 | }; 14 | 15 | #endif // !__POINT__ 16 | -------------------------------------------------------------------------------- /include/gtp/Vector.h: -------------------------------------------------------------------------------- 1 | #ifndef __VECTOR__ 2 | #define __VECTOR__ 3 | 4 | struct XYZ 5 | { 6 | double x; 7 | double y; 8 | double z; 9 | }; 10 | 11 | struct Vector 12 | { 13 | union 14 | { 15 | double data[3]; 16 | struct XYZ xyz; 17 | }; 18 | }; 19 | 20 | #endif 21 | -------------------------------------------------------------------------------- /include/imgdisplay.h: -------------------------------------------------------------------------------- 1 | #ifndef __RTS2_IMGDISPLAY__ 2 | #define __RTS2_IMGDISPLAY__ 3 | 4 | // what to print.. 5 | #define DISPLAY_ALL 0x0001 6 | #define DISPLAY_SUMMARY 0x0002 7 | #define DISPLAY_OBS 0x0004 8 | #define DISPLAY_SHORT 0x0008 9 | #define DISPLAY_FILENAME 0x0010 10 | 11 | #define DISPLAY_ASTR_ALL 0x0000 12 | #define DISPLAY_ASTR_OK 0x0100 13 | #define DISPLAY_ASTR_TRASH 0x0200 14 | #define DISPLAY_ASTR_QUE 0x0400 15 | 16 | #define DISPLAY_MASK_ASTR 0x0f00 17 | #endif /*! __RTS2_IMGDISPLAY__ */ 18 | -------------------------------------------------------------------------------- /include/pluto/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = norad.h norad_in.h observe.h 2 | -------------------------------------------------------------------------------- /include/pluto/observe.h: -------------------------------------------------------------------------------- 1 | #ifdef _WIN32 2 | #define DLL_FUNC __stdcall 3 | #else 4 | #define DLL_FUNC 5 | #endif 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | void DLL_FUNC lat_alt_to_parallax( const double lat, const double ht_in_meters, 12 | double *rho_cos_phi, double *rho_sin_phi); 13 | void DLL_FUNC observer_cartesian_coords( const double jd, const double lon, 14 | const double rho_cos_phi, const double rho_sin_phi, 15 | double *vect); 16 | void DLL_FUNC get_satellite_ra_dec_delta( const double *observer_loc, 17 | const double *satellite_loc, double *ra, 18 | double *dec, double *delta); 19 | void DLL_FUNC epoch_of_date_to_j2000( const double jd, double *ra, double *dec); 20 | 21 | #ifdef __cplusplus 22 | } /* end of 'extern "C"' section */ 23 | #endif 24 | -------------------------------------------------------------------------------- /include/rts2db/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = appdb.h target.h target_auger.h targetell.h targetset.h mpectarget.h recvals.h \ 2 | records.h recordsavg.h targetgrb.h tletarget.h targetres.h \ 3 | devicedb.h imageset.h imagesetstat.h observation.h observationset.h messagedb.h userset.h user.h \ 4 | sqlerror.h camlist.h constraints.h taruser.h rts2count.h labels.h scriptcommands.h sqlcolumn.h \ 5 | timelog.h planset.h plan.h accountset.h account.h queues.h labellist.h 6 | -------------------------------------------------------------------------------- /include/rts2db/camlist.h: -------------------------------------------------------------------------------- 1 | #ifndef __RTS2_CAMLIST__ 2 | #define __RTS2_CAMLIST__ 3 | 4 | #include 5 | #include 6 | 7 | namespace rts2db 8 | { 9 | 10 | class CamList:public std::list < std::string > 11 | { 12 | public: 13 | CamList (); 14 | virtual ~CamList (); 15 | 16 | int load (); 17 | }; 18 | 19 | } 20 | #endif /* ! __RTS2_CAMLIST__ */ 21 | -------------------------------------------------------------------------------- /include/rts2db/rts2count.h: -------------------------------------------------------------------------------- 1 | #ifndef __RTS2_COUNT__ 2 | #define __RTS2_COUNT__ 3 | 4 | #include 5 | #include 6 | 7 | /** 8 | * Class which hould information about one count. 9 | * 10 | * Holds one count from count devices, e.g. photometers. 11 | * 12 | * @author petr 13 | */ 14 | 15 | class Rts2Count 16 | { 17 | private: 18 | int obs_id; 19 | struct timeval count_time; 20 | int count_usec; 21 | int count_value; 22 | float count_exposure; 23 | char count_filter; 24 | public: 25 | Rts2Count (int in_obs_id, long in_count_date, int in_count_usec, 26 | int in_count_value, float in_count_exposure, 27 | char in_count_filter); 28 | 29 | friend std::ostream & operator << (std::ostream & _os, 30 | Rts2Count & in_count); 31 | }; 32 | 33 | std::ostream & operator << (std::ostream & _os, Rts2Count & in_count); 34 | #endif /* !__RTS2_COUNT__ */ 35 | -------------------------------------------------------------------------------- /include/rts2fits/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = fitsfile.h channel.h image.h imagedb.h devclifoc.h devcliimg.h cameraimage.h \ 2 | appdbimage.h appimage.h dbfilters.h 3 | -------------------------------------------------------------------------------- /include/rts2json/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = httpreq.h jsonvalue.h httpserver.h directory.h expandstrings.h jsondb.h libjavascript.h \ 2 | images.h targetreq.h addtargetreq.h plot.h imgpreview.h bsc.h nightreq.h nightdur.h obsreq.h asyncapi.h \ 3 | libcss.h altplot.h altaz.h 4 | -------------------------------------------------------------------------------- /include/rts2json/nightdur.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Helper method to get night from incomplete day. 3 | * Copyright (C) 2009 Petr Kubanek 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License 7 | * as published by the Free Software Foundation; either version 2 8 | * of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | #include 21 | #include 22 | 23 | void getNightDuration (int year, int month, int day, time_t &from, int64_t &duration); 24 | -------------------------------------------------------------------------------- /include/rts2lx200/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = pier-collision.h hms.h tellx200.h tellx200gps.h 2 | -------------------------------------------------------------------------------- /include/rts2scheduler/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = schedbag.h schedule.h schedobs.h ticket.h ticketset.h utils.h 2 | -------------------------------------------------------------------------------- /include/rts2script/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = script.h scripttarget.h scriptinterface.h operands.h rts2spiral.h \ 2 | element.h elementtarget.h elementblock.h elementacquire.h \ 3 | devscript.h execcli.h execclidb.h connimgprocess.h connselector.h connexe.h \ 4 | executorque.h simulque.h printtarget.h 5 | -------------------------------------------------------------------------------- /include/rts2script/rts2spiral.h: -------------------------------------------------------------------------------- 1 | #ifndef __RTS2_SPIRAL__ 2 | #define __RTS2_SPIRAL__ 3 | /** 4 | * Compute next spiral coordinates. 5 | * 6 | * Class which holds some internal variables to compute next point in spiral. 7 | * Is currently used only for HAM centering 8 | * 9 | * @author Petr Kubanek 10 | */ 11 | 12 | class Rts2Spiral 13 | { 14 | private: 15 | int step; 16 | int step_size_x; 17 | int step_size_y; 18 | int step_size; 19 | int up_d; 20 | public: 21 | Rts2Spiral (); 22 | void getNextStep (short &x, short &y); 23 | }; 24 | #endif /* !__RTS2_SPIRAL__ */ 25 | -------------------------------------------------------------------------------- /include/sep/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = extract.h overlap.h sep.h sepcore.h 2 | -------------------------------------------------------------------------------- /include/ucac5/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = UCAC5Record.hpp UCAC5Idx.hpp UCAC5Bands.hpp 2 | -------------------------------------------------------------------------------- /include/ucac5/UCAC5Bands.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __UCAC5BANDS__ 2 | #define __UCAC5BANDS__ 3 | 4 | #include 5 | #include 6 | 7 | class UCAC5Bands 8 | { 9 | public: 10 | UCAC5Bands(); 11 | ~UCAC5Bands(); 12 | int openBand(const char *bfn); 13 | 14 | /** 15 | * Returns index of next RA/Dec band. 16 | * 17 | * @param ra queried RA (radians) 18 | * @param dec queried Dec (radians) 19 | * @param radius radius (radians) 20 | */ 21 | int nextBand(double ra, double dec, double radius, uint16_t &dec_b, uint16_t &ra_b, uint32_t &ra_start, int32_t &len); 22 | private: 23 | int fd; 24 | uint32_t *data; 25 | size_t dataSize; 26 | 27 | // total size 28 | int total_dec; 29 | int total_ra; 30 | }; 31 | 32 | #endif // !__UCAC5BANDS__ 33 | -------------------------------------------------------------------------------- /include/ucac5/UCAC5Idx.hpp: -------------------------------------------------------------------------------- 1 | #ifndef __UCAC5IDX__ 2 | #define __UCAC5IDX__ 3 | 4 | /** 5 | * Class for quick search in UCAC5 indices. 6 | * 7 | * @author Petr Kubanek 8 | */ 9 | 10 | #include "gtp/Vector.h" 11 | 12 | #include 13 | 14 | class UCAC5Idx 15 | { 16 | public: 17 | UCAC5Idx (); 18 | virtual ~UCAC5Idx (); 19 | 20 | int openIdx (int dec_band); 21 | 22 | int select (size_t offset, size_t length); 23 | 24 | int getBand() { return band; } 25 | 26 | /** 27 | * Returns index of the next matching star 28 | */ 29 | int nextMatched (Vector *fc, double minRad, double maxRad, double &d); 30 | 31 | private: 32 | int band; 33 | int fd; 34 | Vector *data; 35 | size_t dataSize; 36 | Vector *current; 37 | Vector *currentEnd; 38 | }; 39 | 40 | #endif // !__UCAC5IDX__ 41 | -------------------------------------------------------------------------------- /include/vermes.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Obs. Vermes cupola driver. 3 | * Copyright (C) 2010 Markus Wildi 4 | * based on Petr Kubanek's dummy_cup.cpp 5 | * 6 | * This program is free software; you can redistribute it and/or 7 | * modify it under the terms of the GNU General Public License 8 | * as published by the Free Software Foundation; either version 2 9 | * of the License, or (at your option) any later version. 10 | * 11 | * This program is distributed in the hope that it will be useful, 12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 | * GNU General Public License for more details. 15 | * 16 | * You should have received a copy of the GNU General Public License 17 | * along with this program; if not, write to the Free Software 18 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 19 | */ 20 | 21 | #define SYNCHRONIZATION_ENABLED 0 22 | #define SYNCHRONIZATION_DISABLED 1 23 | 24 | 25 | #define NOT_SYNCED 0 26 | #define SYNCED 1 27 | #define SYNCED_MOTOR_ON 2 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /include/vermes/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = barcodereader.h bisync.h move_door.h move_to_target_az.h \ 2 | oak_comm.h serial.h ssd650v_comm.h util.h 3 | -------------------------------------------------------------------------------- /include/xmlrpc++/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = \ 2 | base64.h \ 3 | urlencoding.h \ 4 | XmlRpcClient.h \ 5 | XmlRpcDispatch.h \ 6 | XmlRpcException.h \ 7 | XmlRpc.h \ 8 | XmlRpcServerConnection.h \ 9 | XmlRpcServer.h \ 10 | XmlRpcServerMethod.h \ 11 | XmlRpcServerGetRequest.h \ 12 | XmlRpcSocket.h \ 13 | XmlRpcSocketSSL.h \ 14 | XmlRpcSource.h \ 15 | XmlRpcUtil.h \ 16 | XmlRpcValue.h 17 | -------------------------------------------------------------------------------- /java/bin/rts2-jjson: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | java -cp ../target org.rts2.App 3 | -------------------------------------------------------------------------------- /java/src/main/java/org/rts2/package-info.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Provides the class for communicating with RTS2 through JSON interface. 3 | * 4 | * If you want to use the package, you first need to create JSON object instance. Then you can use JSON object methods 5 | * to access RTS2 JSON values. 6 | * 7 | *
 8 |  * {@code import org.rts2.JSON;
 9 | 
10 | class TestApp
11 | {
12 | 	public static void main(String[] args) throws Exception
13 | 	{
14 | 		JSON json = new JSON("http://localhost:8889");
15 | 		System.out.println(json.getValue("centrald", "infotime"));
16 | 	}
17 | }
18 |  * }
19 |  * 
20 | * 21 | * Please visit rts2.org for more information about the mighty RTS2 package. 22 | * 23 | * @author Petr Kubánek 24 | * 25 | * @since 0.1 26 | */ 27 | package org.rts2; 28 | -------------------------------------------------------------------------------- /java/src/test/java/org/rts2/AppTest.java: -------------------------------------------------------------------------------- 1 | package org.rts2; 2 | 3 | import java.util.Date; 4 | 5 | import junit.framework.Test; 6 | import junit.framework.TestCase; 7 | import junit.framework.TestSuite; 8 | 9 | import org.rts2.JSON; 10 | 11 | /** 12 | * Unit test for simple App. 13 | */ 14 | public class AppTest extends TestCase 15 | { 16 | /** 17 | * Create the test case 18 | * 19 | * @param testName name of the test case 20 | */ 21 | public AppTest(String testName) 22 | { 23 | super(testName); 24 | } 25 | 26 | /** 27 | * @return the suite of tests being tested 28 | */ 29 | public static Test suite() 30 | { 31 | return new TestSuite( AppTest.class ); 32 | } 33 | 34 | /** 35 | * Rigourous Test :-) 36 | */ 37 | public void testApp() throws Exception 38 | { 39 | JSON json = new JSON("http://localhost:8889", "petr", "test"); 40 | assertTrue("infotime value <= now", json.getValueDate("centrald", "infotime").before(new Date())); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /lib/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = \ 2 | xmlrpc++ \ 3 | sep \ 4 | rts2 \ 5 | pluto \ 6 | sgp4 \ 7 | rts2fits \ 8 | rts2db \ 9 | rts2script \ 10 | rts2scheduler \ 11 | rts2json \ 12 | libindi \ 13 | rts2tel \ 14 | rts2lx200 \ 15 | ucac5 \ 16 | gtp 17 | -------------------------------------------------------------------------------- /lib/gtp/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | lib_LTLIBRARIES = libgtp.la 3 | 4 | libgtp_la_SOURCES = ppoly.cpp 5 | libgtp_la_CXXFLAGS = -I../../include -I../../include/gtp @ERFA_CFLAGS@ 6 | libgtp_la_LDFLAGS = -L../rts2 -lrts2 @ERFA_LIBS@ 7 | -------------------------------------------------------------------------------- /lib/libindi/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = libindi.la 2 | 3 | noinst_HEADERS = rts2toindi.h indicom.h lilxml.h base64.h indiapi.h indidevapi.h 4 | 5 | libindi_la_SOURCES = rts2toindi.c indicom.c lilxml.c base64.c 6 | libindi_la_CFLAGS = -I../../include 7 | -------------------------------------------------------------------------------- /lib/pluto/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = libpluto.la 2 | 3 | libpluto_la_SOURCES = sgp.cpp sgp4.cpp sgp8.cpp sdp4.cpp sdp8.cpp deep.cpp basics.cpp get_el.cpp common.cpp observe.cpp tle_out.cpp 4 | 5 | AM_CXXFLAGS = -I../../include 6 | -------------------------------------------------------------------------------- /lib/rts2/catd.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Basic catalogue class. 3 | * Copyright (C) 2016 Petr Kubanek 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License 7 | * as published by the Free Software Foundation; either version 2 8 | * of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | #include "catd.h" 21 | 22 | using namespace rts2catd; 23 | 24 | Catd::Catd (int argc, char **argv, const char *cn):rts2core::Device (argc, argv, DEVICE_TYPE_CAT, cn) 25 | { 26 | 27 | } 28 | 29 | Catd::~Catd () 30 | { 31 | } 32 | -------------------------------------------------------------------------------- /lib/rts2/connapm.cpp: -------------------------------------------------------------------------------- 1 | #include "connection/apm.h" 2 | 3 | using namespace rts2core; 4 | 5 | ConnAPM::ConnAPM (int _port, rts2core::Block *_master, const char *_hostname):ConnUDP (_port, _master, _hostname) 6 | { 7 | } 8 | 9 | int ConnAPM::process (size_t len, struct sockaddr_in &from) 10 | { 11 | return 0; 12 | } 13 | -------------------------------------------------------------------------------- /lib/rts2/vermes/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = librts2vermes.la 2 | 3 | AM_CFLAGS=@NOVA_CFLAGS@ -I../../../include 4 | 5 | librts2vermes_la_SOURCES= move_door.c \ 6 | move_to_target_az.c barcodereader.c ssd650v_comm.c \ 7 | bisync.c util.c serial.c oak_comm.c 8 | librts2vermes_la_LIBADD = @LIB_NOVA@ @LIB_PTHREAD@ 9 | -------------------------------------------------------------------------------- /lib/rts2db/camlist.ec: -------------------------------------------------------------------------------- 1 | #include "rts2db/camlist.h" 2 | 3 | #include "app.h" 4 | 5 | using namespace rts2db; 6 | 7 | CamList::CamList () 8 | { 9 | } 10 | 11 | CamList::~CamList () 12 | { 13 | } 14 | 15 | int CamList::load () 16 | { 17 | EXEC SQL BEGIN DECLARE SECTION; 18 | VARCHAR d_camera_name[8]; 19 | EXEC SQL END DECLARE SECTION; 20 | 21 | EXEC SQL DECLARE cur_cams CURSOR FOR 22 | SELECT 23 | camera_name 24 | FROM 25 | cameras; 26 | EXEC SQL OPEN cur_cams; 27 | 28 | if (sqlca.sqlcode) 29 | { 30 | logStream (MESSAGE_ERROR) 31 | << "Cannot load camera list: " 32 | << sqlca.sqlcode 33 | << " (" << sqlca.sqlerrm.sqlerrmc << ")" 34 | << sendLog; 35 | return -1; 36 | } 37 | while (1) 38 | { 39 | EXEC SQL FETCH NEXT 40 | FROM 41 | cur_cams 42 | INTO 43 | :d_camera_name; 44 | if (sqlca.sqlcode) 45 | break; 46 | push_back (std::string (d_camera_name.arr)); 47 | } 48 | EXEC SQL CLOSE cur_cams; 49 | return 0; 50 | } 51 | -------------------------------------------------------------------------------- /lib/rts2db/imagesetstat.cpp: -------------------------------------------------------------------------------- 1 | #include "rts2db/imagesetstat.h" 2 | 3 | #include 4 | 5 | using namespace rts2db; 6 | 7 | void ImageSetStat::stat () 8 | { 9 | img_alt /= count; 10 | img_az /= count; 11 | if (astro_count > 0) 12 | { 13 | img_err /= astro_count; 14 | img_err_ra /= astro_count; 15 | img_err_dec /= astro_count; 16 | } 17 | else 18 | { 19 | img_err = NAN; 20 | img_err_ra = NAN; 21 | img_err_dec = NAN; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /lib/rts2db/rts2count.ec: -------------------------------------------------------------------------------- 1 | #include "rts2db/rts2count.h" 2 | 3 | #include "timestamp.h" 4 | #include "configuration.h" 5 | 6 | #include 7 | 8 | Rts2Count::Rts2Count (int in_obs_id, long in_count_date, int in_count_usec, int in_count_value, float in_count_exposure, char in_count_filter) 9 | { 10 | obs_id = in_obs_id; 11 | count_time.tv_sec = in_count_date; 12 | count_time.tv_usec = in_count_usec; 13 | count_value = in_count_value; 14 | count_exposure = in_count_exposure; 15 | count_filter = in_count_filter; 16 | } 17 | 18 | std::ostream & operator << (std::ostream & _os, Rts2Count & in_count) 19 | { 20 | int old_precision = _os.precision (); 21 | _os.precision (2); 22 | 23 | _os 24 | << Timestamp (&in_count.count_time) 25 | << SEP << std::setw (10) << in_count.count_value 26 | << SEP << std::setw (8) << in_count.count_exposure 27 | << SEP << std::setw (8) << in_count.count_filter 28 | << std::endl; 29 | 30 | _os.precision (old_precision); 31 | 32 | return _os; 33 | } 34 | -------------------------------------------------------------------------------- /lib/rts2db/schedule.ec: -------------------------------------------------------------------------------- 1 | /* 2 | * Schedule class. 3 | * Copyright (C) 2012 Petr Kubanek 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License 7 | * as published by the Free Software Foundation; either version 2 8 | * of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | #include "rts2db/schedule.h" 21 | 22 | using namespace rts2db; 23 | 24 | Schedule::Schedule () 25 | { 26 | 27 | } 28 | 29 | void Schedule::load () 30 | { 31 | 32 | } 33 | -------------------------------------------------------------------------------- /lib/rts2fits/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = librts2image.la 2 | 3 | LDADD = @LIB_M@ @LIB_NOVA@ 4 | 5 | EXTRA_DIST = imagedb.ec dbfilters.ec 6 | 7 | CLEANFILES = imagedb.cpp dbfilters.cpp 8 | 9 | librts2image_la_SOURCES = fitsfile.cpp channel.cpp image.cpp imageastrometry.cpp devcliimg.cpp cameraimage.cpp devclifoc.cpp imageprocess.cpp 10 | librts2image_la_CXXFLAGS = @NOVA_CFLAGS@ @CFITSIO_CFLAGS@ @MAGIC_CFLAGS@ -I../../include 11 | librts2image_la_LIBADD = ../rts2/librts2.la @CFITSIO_LIBS@ @MAGIC_LIBS@ 12 | 13 | if PGSQL 14 | 15 | lib_LTLIBRARIES += librts2imagedb.la 16 | 17 | nodist_librts2imagedb_la_SOURCES = imagedb.cpp 18 | librts2imagedb_la_CXXFLAGS = @LIBPG_CFLAGS@ @NOVA_CFLAGS@ @CFITSIO_CFLAGS@ @MAGIC_CFLAGS@ -I../../include 19 | librts2imagedb_la_SOURCES = fitsfile.cpp channel.cpp image.cpp imageastrometry.cpp devcliimg.cpp cameraimage.cpp devclifoc.cpp dbfilters.cpp 20 | librts2imagedb_la_LIBADD = @CFITSIO_LIBS@ @MAGIC_LIBS@ @LIBPG_LIBS@ @LIB_ECPG@ 21 | 22 | .ec.cpp: 23 | @ECPG@ -o $@ $^ 24 | 25 | endif 26 | -------------------------------------------------------------------------------- /lib/rts2json/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = librts2json.la 2 | 3 | librts2json_la_SOURCES = httpreq.cpp jsonvalue.cpp directory.cpp expandstrings.cpp libjavascript.cpp \ 4 | images.cpp targetreq.cpp altaz.cpp plot.cpp imgpreview.cpp nightdur.cpp asyncapi.cpp httpserver.cpp \ 5 | libcss.cpp 6 | librts2json_la_CXXFLAGS = -I../../include @LIBXML_CFLAGS@ -I../ @MAGIC_CFLAGS@ @CFITSIO_CFLAGS@ @NOVA_CFLAGS@ 7 | librts2json_la_LIBADD = ../rts2/librts2.la @LIBARCHIVE_LIBS@ 8 | 9 | noinst_SCRIPTS = images_convert 10 | 11 | EXTRA_DIST = images_convert 12 | 13 | if PGSQL 14 | 15 | librts2json_la_SOURCES += jsondb.cpp altplot.cpp nightreq.cpp obsreq.cpp addtargetreq.cpp 16 | librts2json_la_LIBADD += ../rts2db/librts2db.la 17 | 18 | else 19 | 20 | EXTRA_DIST += jsondb.cpp altplot.cpp nightreq.cpp obsreq.cpp addtargetreq.cpp 21 | 22 | endif 23 | -------------------------------------------------------------------------------- /lib/rts2json/images_convert: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # convert images from PNG to image_t structure 4 | # 5 | # Copyright (C) 2013 Petr Kubanek 6 | 7 | for x in $*; do 8 | fullname=`echo $x | sed 's#.*/##'` 9 | filename=`echo $fullname | sed 's/\..*//'` 10 | fs=`ls -l $x | cut -f5 -d' '` 11 | echo " 12 | // file $fullname, size $fs 13 | const image_t $filename = {" 14 | echo -n " \"" 15 | hexdump -v -e '"\\\x" /1 "%02x"' $x 16 | echo "\", 17 | $fs 18 | };" 19 | 20 | done 21 | -------------------------------------------------------------------------------- /lib/rts2lx200/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = librts2pier-collision.la librts2tellx200.la 2 | 3 | librts2tellx200_la_SOURCES = tellx200.cpp tellx200gps.cpp hms.c 4 | librts2tellx200_la_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 5 | librts2tellx200_la_CFLAGS = @NOVA_CFLAGS@ -I../../include 6 | librts2tellx200_la_LIBADD = ../rts2tel/librts2tel.la 7 | 8 | librts2pier_collision_la_SOURCES = pier-collision.cpp 9 | librts2pier_collision_la_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 10 | librts2pier_collision_la_LIBADD = @LIB_NOVA@ 11 | -------------------------------------------------------------------------------- /lib/rts2scheduler/Makefile.am: -------------------------------------------------------------------------------- 1 | if PGSQL 2 | 3 | lib_LTLIBRARIES = librts2scheduler.la 4 | 5 | librts2scheduler_la_SOURCES = schedbag.cpp schedule.cpp schedobs.cpp ticket.cpp ticketset.cpp utils.cpp 6 | librts2scheduler_la_CXXFLAGS = @LIBPG_CFLAGS@ @CFITSIO_CFLAGS@ @MAGIC_CFLAGS@ -I../../include 7 | librts2scheduler_la_LIBADD = ../rts2db/librts2db.la ../rts2fits/librts2imagedb.la 8 | 9 | .ec.cpp: 10 | @ECPG@ -o $@ $^ 11 | 12 | EXTRA_DIST = schedobs.ec ticket.ec ticketset.ec 13 | 14 | else 15 | 16 | EXTRA_DIST = schedule.cpp schedbag.cpp schedule.cpp schedobs.ec ticket.ec ticketset.ec utils.cpp 17 | 18 | endif 19 | 20 | CLEANFILES = schedobs.cpp ticket.cpp ticketset.cpp 21 | -------------------------------------------------------------------------------- /lib/rts2scheduler/utils.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Utility functions for schedule generation. 3 | * Copyright (C) 2008 Petr Kubanek 4 | * 5 | * This program is free software; you can redistribute it and/or 6 | * modify it under the terms of the GNU General Public License 7 | * as published by the Free Software Foundation; either version 2 8 | * of the License, or (at your option) any later version. 9 | * 10 | * This program is distributed in the hope that it will be useful, 11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | * GNU General Public License for more details. 14 | * 15 | * You should have received a copy of the GNU General Public License 16 | * along with this program; if not, write to the Free Software 17 | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | */ 19 | 20 | #include "rts2scheduler/utils.h" 21 | 22 | #include 23 | 24 | unsigned int randomNumber (unsigned int _min, unsigned int _max) 25 | { 26 | return (unsigned int) (_min + (_max - _min) * (double) random () / RAND_MAX); 27 | } 28 | 29 | -------------------------------------------------------------------------------- /lib/rts2script/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = elementhex.h elementwaitfor.h elementexe.h 2 | 3 | lib_LTLIBRARIES = librts2script.la 4 | 5 | librts2script_la_SOURCES = execcli.cpp script.cpp connimgprocess.cpp element.cpp devscript.cpp rts2spiral.cpp \ 6 | elementblock.cpp scripttarget.cpp elementtarget.cpp elementhex.cpp elementwaitfor.cpp \ 7 | scriptinterface.cpp operands.cpp elementexe.cpp connexe.cpp connselector.cpp 8 | librts2script_la_CXXFLAGS = @NOVA_CFLAGS@ @CFITSIO_CFLAGS@ @MAGIC_CFLAGS@ @LIBXML_CFLAGS@ -I../../include 9 | 10 | if PGSQL 11 | 12 | librts2script_la_SOURCES += printtarget.cpp execclidb.cpp elementacquire.cpp executorque.cpp simulque.cpp 13 | librts2script_la_LIBADD = ../rts2db/librts2db.la ../rts2fits/librts2imagedb.la 14 | 15 | else 16 | 17 | librts2script_la_LIBADD = ../rts2/librts2.la ../rts2fits/librts2image.la 18 | 19 | EXTRA_DIST = printtarget.cpp execclidb.cpp elementacquire.cpp executorque.cpp simulque.cpp 20 | 21 | endif 22 | -------------------------------------------------------------------------------- /lib/rts2script/rts2spiral.cpp: -------------------------------------------------------------------------------- 1 | #include "rts2script/rts2spiral.h" 2 | 3 | Rts2Spiral::Rts2Spiral () 4 | { 5 | step = 0; 6 | step_size_x = 1; 7 | step_size_y = 1; 8 | step_size = step_size_x * 2 + step_size_y; 9 | up_d = 1; 10 | } 11 | 12 | 13 | void 14 | Rts2Spiral::getNextStep (short &x, short &y) 15 | { 16 | if (step == step_size) 17 | { 18 | up_d *= -1; 19 | if (up_d == 1) 20 | { 21 | step_size_x++; 22 | } 23 | step_size_y++; 24 | step_size = step_size_x * 2 + step_size_y; 25 | step = 0; 26 | } 27 | y = 0; 28 | x = 0; 29 | if (step < step_size_x) 30 | y = 1; 31 | else if (step < step_size_x + step_size_y) 32 | x = 1; 33 | else 34 | y = -1; 35 | y *= up_d; 36 | x *= up_d; 37 | step++; 38 | } 39 | -------------------------------------------------------------------------------- /lib/rts2tel/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = librts2tel.la 2 | 3 | AM_CXXFLAGS=@NOVA_CFLAGS@ -I../../include @ERFA_CFLAGS@ 4 | 5 | librts2tel_la_SOURCES = teld.cpp gpointmodel.cpp tpointmodel.cpp tpointmodelterm.cpp fork.cpp gem.cpp altaz.cpp 6 | librts2tel_la_LIBADD = ../rts2/librts2.la ../pluto/libpluto.la @ERFA_LIBS@ 7 | -------------------------------------------------------------------------------- /lib/sep/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CFLAGS=-I../../include/sep 2 | 3 | lib_LTLIBRARIES = libsep.la 4 | 5 | libsep_la_SOURCES = analyse.c aperture.c background.c convolve.c deblend.c extract.c lutz.c util.c 6 | -------------------------------------------------------------------------------- /lib/sgp4/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = libsgp4.la 2 | 3 | noinst_HEADERS = sgp4unit.h 4 | 5 | AM_CXXFLAGS = -I../../include 6 | 7 | libsgp4_la_SOURCES = sgp4unit.cpp sgp4.cpp 8 | libsgp4_la_LIBADD = @LIB_NOVA@ 9 | -------------------------------------------------------------------------------- /lib/ucac5/Makefile.am: -------------------------------------------------------------------------------- 1 | if LIBERFA 2 | 3 | LDADD += -L../rts2 -lrts2 @ERFA_LIBS@ @LIB_NOVA@ 4 | AM_CXXFLAGS= @ERFA_CFLAGS@ @NOVA_CFLAGS@ -I../../include 5 | 6 | lib_LTLIBRARIES = librts2ucac5.la 7 | 8 | librts2ucac5_la_SOURCES = UCAC5Record.cpp UCAC5Idx.cpp UCAC5Bands.cpp 9 | 10 | endif 11 | -------------------------------------------------------------------------------- /lib/xmlrpc++/Makefile.am: -------------------------------------------------------------------------------- 1 | lib_LTLIBRARIES = librts2xmlrpc.la 2 | 3 | librts2xmlrpc_la_SOURCES = \ 4 | urlencoding.cpp \ 5 | XmlRpcClient.cpp \ 6 | XmlRpcDispatch.cpp \ 7 | XmlRpcServerConnection.cpp \ 8 | XmlRpcServer.cpp \ 9 | XmlRpcServerMethod.cpp \ 10 | XmlRpcServerGetRequest.cpp \ 11 | XmlRpcSource.cpp \ 12 | XmlRpcUtil.cpp \ 13 | XmlRpcValue.cpp \ 14 | XmlRpcSocket.cpp 15 | 16 | librts2xmlrpc_la_CXXFLAGS = @NOVA_CFLAGS@ -I../../include -I../../include/xmlrpc++ 17 | 18 | if MACOSX 19 | librts2xmlrpc_la_CXXFLAGS += -include ../../include/compat/osx/compat.h 20 | endif 21 | 22 | if SSL 23 | 24 | librts2xmlrpc_la_SOURCES += XmlRpcSocketSSL.cpp 25 | librts2xmlrpc_la_LIBADD = @SSL_LIBS@ 26 | 27 | else 28 | 29 | EXTRA_DIST = XmlRpcSocketSSL.cpp 30 | 31 | endif 32 | -------------------------------------------------------------------------------- /lib/xmlrpc++/XmlRpcServerMethod.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "XmlRpcServerMethod.h" 3 | #include "XmlRpcServer.h" 4 | 5 | namespace XmlRpc 6 | { 7 | 8 | XmlRpcServerMethod::XmlRpcServerMethod(std::string const& in_name, XmlRpcServer* server) 9 | { 10 | _name = in_name; 11 | _server = server; 12 | if (_server) _server->addMethod(this); 13 | } 14 | 15 | XmlRpcServerMethod::~XmlRpcServerMethod() 16 | { 17 | if (_server) _server->removeMethod(this); 18 | } 19 | 20 | void XmlRpcServerMethod::setAuthorization(std::string authorization) 21 | { 22 | if (authorization.length () == 0) 23 | { 24 | _username = ""; 25 | _password = ""; 26 | return; 27 | } 28 | size_t dp = authorization.find(':'); 29 | if (dp != std::string::npos) 30 | { 31 | _username = authorization.substr(0,dp); 32 | _password = authorization.substr(dp+1); 33 | } 34 | else 35 | { 36 | _username = authorization; 37 | _password = ""; 38 | } 39 | } 40 | 41 | } // namespace XmlRpc 42 | -------------------------------------------------------------------------------- /lib/xmlrpc++/XmlRpcSource.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "XmlRpcDispatch.h" 3 | #include "XmlRpcSource.h" 4 | #include "XmlRpcSocket.h" 5 | #include "XmlRpcUtil.h" 6 | 7 | namespace XmlRpc 8 | { 9 | 10 | XmlRpcSource::XmlRpcSource(int fd /*= -1*/, bool deleteOnClose /*= false*/) 11 | : _fd(fd), _deleteOnClose(deleteOnClose), _keepOpen(false) 12 | { 13 | } 14 | 15 | XmlRpcSource::~XmlRpcSource() 16 | { 17 | } 18 | 19 | void 20 | XmlRpcSource::close() 21 | { 22 | if (_fd != -1) 23 | { 24 | XmlRpcUtil::log(2,"XmlRpcSource::close: closing socket %d.", _fd); 25 | XmlRpcSocket::close(_fd); 26 | XmlRpcUtil::log(2,"XmlRpcSource::close: done closing socket %d.", _fd); 27 | _fd = -1; 28 | } 29 | if (_deleteOnClose) 30 | { 31 | XmlRpcUtil::log(2,"XmlRpcSource::close: deleting this"); 32 | _deleteOnClose = false; 33 | delete this; 34 | } 35 | } 36 | 37 | unsigned 38 | XmlRpcSource::handleChunkEvent(unsigned eventType) 39 | { 40 | return handleEvent(eventType); 41 | } 42 | } // namespace XmlRpc 43 | -------------------------------------------------------------------------------- /man/rts2.adoc: -------------------------------------------------------------------------------- 1 | # tag::optiongnu[] 2 | RTS2 follows the usual GNU command line syntax, with long options 3 | starting with two dashes (`--'). A summary of options is included below. 4 | 5 | You can use -- (two dashes with space) to escape arguments which start with 6 | '-'. So to run command with -1 as an argument, you must specify -- -1 on 7 | the command line. 8 | # end::optiongnu[] 9 | 10 | # tag::basicapplist[] 11 | * **--UT** prints all dates in UT time. The input parameters are not affected - the 12 | UT vs. local time is distinguished by specifing T or L (U or G) in time 13 | entry. 14 | 15 | * **--debug** prints out debugging messages. This is primary usefull for debugging 16 | during system development. 17 | # end::basicapplist[] 18 | -------------------------------------------------------------------------------- /man/rts2.conf: -------------------------------------------------------------------------------- 1 | ## Borrowed from 'linkgit' in the Git distribution. 2 | ## linkman: macro 3 | # 4 | # Usage: linkman:command[manpage-section] 5 | # 6 | # Note, {0} is the manpage section, while {target} is the command. 7 | # 8 | # Show RTS2 link as: (
); if section is defined, else just show 9 | # the command. 10 | 11 | [macros] 12 | (?su)[\\]?(?Plinkman):(?P\S*?)\[(?P.*?)\]= 13 | 14 | ifdef::backend-docbook[] 15 | [linkman-inlinemacro] 16 | {0%{target}} 17 | {0#} 18 | {0#{target}{0}} 19 | {0#} 20 | endif::backend-docbook[] 21 | 22 | ifdef::backend-xhtml11[] 23 | [linkman-inlinemacro] 24 | {target}{0?({0})} 25 | 26 | # Override HTML footer, to include RTS2 version 27 | [footer-text] 28 | Last updated {docdate} {doctime} -- RTS2 {manversion} 29 | 30 | # Format-detection to prevent smartphones from being too smart 31 | [+docinfo] 32 | 33 | endif::backend-xhtml11[] 34 | -------------------------------------------------------------------------------- /mkinstalldirs: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | # mkinstalldirs --- make directory hierarchy 3 | # Author: Noah Friedman 4 | # Created: 1993-05-16 5 | # Public domain 6 | 7 | # $Id$ 8 | 9 | errstatus=0 10 | 11 | for file 12 | do 13 | set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` 14 | shift 15 | 16 | pathcomp= 17 | for d 18 | do 19 | pathcomp="$pathcomp$d" 20 | case "$pathcomp" in 21 | -* ) pathcomp=./$pathcomp ;; 22 | esac 23 | 24 | if test ! -d "$pathcomp"; then 25 | echo "mkdir $pathcomp" 26 | 27 | mkdir "$pathcomp" || lasterr=$? 28 | 29 | if test ! -d "$pathcomp"; then 30 | errstatus=$lasterr 31 | fi 32 | fi 33 | 34 | pathcomp="$pathcomp/" 35 | done 36 | done 37 | 38 | exit $errstatus 39 | 40 | # mkinstalldirs ends here 41 | -------------------------------------------------------------------------------- /python/Makefile.am: -------------------------------------------------------------------------------- 1 | SUBDIRS = rts2 2 | -------------------------------------------------------------------------------- /python/rts2/Makefile.am: -------------------------------------------------------------------------------- 1 | pkgpython_PYTHON = __init__.py scriptcomm.py flats.py rtsapi.py imgprocess.py \ 2 | centering.py astrometry.py libnova.py dms.py sextractor.py queue.py queues.py \ 3 | iso8601.py target.py radec.py focusing.py altazpath.py sat.py gpoint.py \ 4 | spiral.py bsc.py brights.py progressbar.py fits2model.py kmparse.py tpvp.py \ 5 | scat.py mpcephem.py logger.py 6 | 7 | SUBDIRS=db 8 | -------------------------------------------------------------------------------- /python/rts2/db/Makefile.am: -------------------------------------------------------------------------------- 1 | pkgpython_dbdir = ${pkgpythondir}/db 2 | pkgpython_db_PYTHON = __init__.py targets.py grb.py 3 | -------------------------------------------------------------------------------- /python/rts2/db/__init__.py: -------------------------------------------------------------------------------- 1 | from sqlalchemy.ext.declarative import declarative_base 2 | Base = declarative_base() 3 | 4 | from rts2.db.targets import Targets 5 | from rts2.db.grb import Grb 6 | -------------------------------------------------------------------------------- /python/testalchemy.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | from sqlalchemy import create_engine, and_, or_ 4 | from sqlalchemy.orm.session import sessionmaker 5 | from rts2.db import Targets,Grb 6 | 7 | Session = sessionmaker() 8 | engine = create_engine('postgresql://petr:petr@localhost/stars',echo='debug') 9 | Session.configure(bind=engine) 10 | 11 | sess = Session() 12 | 13 | targ = sess.query(Targets) 14 | #q = sess.query(ApacheCatalog) 15 | print targ.filter(Targets.tar_id == 1000).all() 16 | 17 | print targ.filter(and_(Targets.tar_ra < 20, Targets.tar_dec < 0, Targets.tar_dec > -20)).all() 18 | 19 | grb = sess.query(Grb) 20 | 21 | print grb.filter(Grb.tar_id == 50001).all() 22 | -------------------------------------------------------------------------------- /python/testqueues.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | import rts2.queue 3 | import rts2.json 4 | import sys 5 | 6 | rts2.json.createProxy('http://localhost:8889',username='petr',password='test') 7 | 8 | q=rts2.queue.Queue('manual') 9 | print q.service 10 | q.load() 11 | for x in q.entries: 12 | print x.id,x.start,x.end,x.qid 13 | 14 | 15 | q.addTarget(1000) 16 | 17 | q.load() 18 | for x in q.entries: 19 | print x.id,x.start,x.end,x.qid 20 | 21 | q.save() 22 | 23 | q.load() 24 | for x in q.entries: 25 | print x.id,x.start,x.end,x.qid 26 | 27 | doc=q.getXMLDoc() 28 | 29 | f = open('/tmp/test.queu','w+') 30 | doc.writexml(f,addindent='\t',newl='\n') 31 | f.close() 32 | 33 | f = open('/tmp/test.queu','r') 34 | q.loadXml(f) 35 | f.close() 36 | -------------------------------------------------------------------------------- /python/testsextractor.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import sys 4 | from rts2 import Sextractor 5 | import ds9 6 | 7 | def measure(fn): 8 | s = Sextractor(fields=['X_IMAGE','Y_IMAGE','ALPHA_J2000','DELTA_J2000','ERRX2_IMAGE','ERRY2_IMAGE','MAG_BEST','FWHM_IMAGE']) 9 | s.runSExtractor(fn) 10 | 11 | print s.objects 12 | 13 | # plot on DS9 14 | d = ds9.ds9('test_sextractor') 15 | 16 | d.set('file ' + fn) 17 | for o in s.objects: 18 | print o 19 | d.set('regions','J2000; circle {0} {1} {2}p'.format(o[2],o[3],int(abs(o[6])))) 20 | d.set('regions','J2000; circle {0} {1} {2}p # color=red'.format(o[2],o[3],o[7])) 21 | 22 | measure(sys.argv[1]) 23 | -------------------------------------------------------------------------------- /python3/MANIFEST.in: -------------------------------------------------------------------------------- 1 | include README.md 2 | -------------------------------------------------------------------------------- /python3/README.md: -------------------------------------------------------------------------------- 1 | # RTS2 Python3 integration 2 | 3 | Provides supporting infrastructure for Python scripts running RTS2. 4 | -------------------------------------------------------------------------------- /python3/rts2/__init__.py: -------------------------------------------------------------------------------- 1 | from scriptcomm import Comm 2 | -------------------------------------------------------------------------------- /python3/setup.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | import setuptools 4 | 5 | with open("README.md", "r") as fh: 6 | long_description = fh.read() 7 | 8 | setuptools.setup( 9 | name="RTS2", 10 | version="0.0.2", 11 | author="Petr Kubánek", 12 | author_email="petr@rts2.org", 13 | description="RTS2 Python scripts", 14 | long_description=long_description, 15 | long_description_content_type="text/markdown", 16 | url="https://github.com/RTS2/rts2", 17 | packages=setuptools.find_packages(), 18 | classifiers=[ 19 | "Programming Language :: Python :: 3", 20 | "License :: OSI Approved :: MIT License", 21 | "Operating System :: OS Independent", 22 | ], 23 | python_requires='>=3.6', 24 | ) 25 | -------------------------------------------------------------------------------- /rts2-init.in: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Creating and populating /etc/rts2" 3 | mkdir -p @CONFDIR@/rts2 4 | cp -n -v conf/rts2.ini conf/services conf/devices conf/centrald @CONFDIR@/rts2 5 | echo "Copying startup script" 6 | if [ -d @CONFDIR@/systemd ]; then 7 | rm @CONFDIR@/init.d/rts2 8 | cp -v conf/rts2.service conf/rts2@.service @CONFDIR@/systemd/system/ 9 | systemctl daemon-reload 10 | else 11 | cp -n -v rts2.initd @CONFDIR@/init.d/rts2 12 | fi 13 | chmod -v a+x @CONFDIR@/init.d/rts2 14 | echo "Copying flats and guiding scripts" 15 | cp -n -v scripts/guide.py scripts/flat.py @CONFDIR@/rts2 16 | -------------------------------------------------------------------------------- /rts2.logrotate: -------------------------------------------------------------------------------- 1 | /var/log/rts2-debug { 2 | daily 3 | rotate 8 4 | compress 5 | postrotate 6 | /usr/bin/killall -HUP rts2-centrald 7 | endscript 8 | } 9 | -------------------------------------------------------------------------------- /scripts/build-model.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rts2.altazpath 4 | import rts2.scriptcomm 5 | import time 6 | 7 | s = rts2.scriptcomm.Rts2Comm() 8 | 9 | s.setValue('exposure',20) 10 | s.setValue('SHUTTER',0) 11 | #sidereal tracking 12 | tel = s.getDeviceByType(rts2.scriptcomm.DEVICE_TELESCOPE) 13 | s.setValue('TRACKING',2,tel) 14 | 15 | def point_altaz(alt,az): 16 | s.altaz(alt,az) 17 | time.sleep(2) 18 | s.waitIdle(tel,180) 19 | img=s.exposure() 20 | s.process(img) 21 | 22 | for p in rts2.altazpath.random_path(): 23 | #for p in rts2.altazpath.constant_path(): 24 | point_altaz(p[0],p[1]) 25 | -------------------------------------------------------------------------------- /scripts/center.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rts2 4 | 5 | sc = rts2.Rts2Comm() 6 | 7 | sc.setValue('filter','C') 8 | 9 | c = rts2.Centering() 10 | # step aside 45 arcmin, do 30 second exposure 11 | c.run (0.75,0.75,30) 12 | -------------------------------------------------------------------------------- /scripts/flat.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Example configuation of flats. 4 | # (C) 2010 Petr Kubanek 5 | # 6 | # Please see flats.py file for details about needed files. 7 | # 8 | # You most probably would like to modify this file to suit your needs. 9 | # Please see comments in flats.py for details of the parameters. 10 | 11 | from rts2.flats import FlatScript, Flat 12 | import rts2.scriptcomm 13 | 14 | # You would at least like to specify filter order, if not binning and 15 | # other things 16 | f = FlatScript( 17 | eveningFlats=[ 18 | Flat('i', binning=1, window='100 100 500 500', expTimes=[5, 10, 40]) 19 | ], 20 | maxBias=1, maxDarks=0, expTimes=range(1, 40) 21 | ) 22 | 23 | # Change deafult number of images 24 | f.flatLevels(defaultNumberFlats=3, biasLevel=550, allowedOptimalDeviation=0.1) 25 | 26 | # Run it.. 27 | # Configure domeDevice,tmpDirectory and mountDevice if your device names differ 28 | f.run() 29 | 30 | # Or send some optional emails - configure scripting before uncomenting this 31 | # line 32 | # f.run(receivers='robot@example.com',subject='Example skyflats') 33 | -------------------------------------------------------------------------------- /scripts/match.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # match telescope on given position 4 | 5 | import rts2 6 | 7 | sc = rts2.Rts2Comm() 8 | t = sc.getDeviceByType(rts2.scriptcomm.DEVICE_TELESCOPE) 9 | 10 | sc.setValue('filter','C') 11 | 12 | c = rts2.Centering() 13 | c.run (0,0,30) 14 | 15 | sc.sendCommand('syncorr',t) 16 | -------------------------------------------------------------------------------- /scripts/move.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # script which demonstartes move functions 4 | # 5 | # (C) 2010 Petr Kubanek 6 | 7 | import rts2.scriptcomm 8 | 9 | class Test(rts2.scriptcomm.Rts2Comm): 10 | def __init__(self): 11 | rts2.scriptcomm.Rts2Comm.__init__(self) 12 | 13 | def run(self): 14 | self.radec("20:30:40",20) 15 | self.setValue('exposure',10) 16 | self.exposure() 17 | self.setValue('exposure',20) 18 | self.exposure() 19 | self.newObs(30,40) 20 | self.altaz(10,20) 21 | self.setValue('exposure',1) 22 | self.exposure() 23 | self.setValue('exposure',2) 24 | self.exposure() 25 | self.log('I','offseting by 0.1 degree in RA and DEC') 26 | self.setValueByType(DEVICE_TELESCOPE,'OFFS','0.1 0.1') 27 | self.altaz(40,50) 28 | self.setValue('exposure',3) 29 | self.altaz(60,70) 30 | self.exposure() 31 | self.newObsAltAz(60,60) 32 | self.exposure() 33 | 34 | if __name__ == "__main__": 35 | a = Test() 36 | a.run() 37 | -------------------------------------------------------------------------------- /scripts/plot-model.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rts2.altazpath 4 | import numpy as np 5 | 6 | def plot_altaz(path): 7 | import pylab 8 | polar = pylab.subplot(projection='polar') 9 | polar.plot(np.radians(map(lambda x:x[1],path)), 90 - np.array(map(lambda x:x[0],path)), 'g') 10 | pylab.show() 11 | 12 | path = rts2.altazpath.random_path() 13 | 14 | print len(path) 15 | plot_altaz(path) 16 | 17 | for x in path: 18 | print "{0},{1}".format(round(x[0],2),round(x[1],2)), 19 | -------------------------------------------------------------------------------- /scripts/requeue.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Requeue script 4 | # (C) 2018 Petr Kubanek 5 | # 6 | # You most probably would like to modify this file to suit your needs. 7 | # Please see comments in flats.py for details of the parameters. 8 | 9 | import rts2.scriptcomm 10 | 11 | s = rts2.scriptcomm.Rts2Comm() 12 | 13 | s.setValue('filter', 2) 14 | 15 | s.requeue('requeue', 30*60 ) 16 | 17 | s.setValue('exposure', 20) 18 | imname = s.exposure() -------------------------------------------------------------------------------- /scripts/rts2-f/join-filter.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | # Join filters from filter configuration file 4 | 5 | import sys 6 | 7 | fil = sys.stdin.readlines() 8 | 9 | for x in range(0,len(fil)): 10 | fil[x] = fil[x].rstrip() 11 | 12 | print ':'.join(fil) 13 | -------------------------------------------------------------------------------- /scripts/rts2-f/rts2.defocus: -------------------------------------------------------------------------------- 1 | #!/usr/bin/tcsh 2 | # rtshell script to zero defocus 3 | # P. Kubanek 12/10/11 4 | # Outline: 5 | # check for defoc_current, if != 0, apply its opossite 6 | 7 | if ( ${?defoc_current} ) then 8 | if ( $defoc_current != 0 ) then 9 | # set diff_f=`echo $defoc_current | awk '{printf "%+0f",-$1;}'` 10 | set diff_f=`echo $defoc_current | awk '{printf "%+0f",$1;}'` 11 | tele hfocus $diff_f 12 | set gdiff=`echo $diff_f | awk '{ printf "%+i",$1*(-4313); }'` 13 | tele gfoc $gdiff 14 | rts2-logcom "Nulled focusing offset $defoc_current (guider $gdiff) before starting focusing" 15 | set defoc_current=0 16 | endif 17 | endif 18 | -------------------------------------------------------------------------------- /scripts/rts2-f/rts2_tele_filter: -------------------------------------------------------------------------------- 1 | 2 | $RTS2/bin/rts2-xmlrpcclient --config $XMLRPCCON --quiet -c W0.info 3 | set curfilt=`$RTS2/bin/rts2-xmlrpcclient --config $XMLRPCCON --quiet -G W0.filter` 4 | @ curfilt ++ 5 | 6 | switch ($1) 7 | case [1-8]: 8 | if ($curfilt != $1) then 9 | rts2-logcom -n "Moving filter wheel to $1" 10 | tele filter $1 11 | exit 1 12 | else 13 | # rts2-logcom "Filter $1 already set" 14 | exit 0 15 | endif 16 | breaksw 17 | default: 18 | set filters=(`cat /Realtime/lib/filt.dat`) 19 | set curfilname=$filters[$curfilt] 20 | 21 | set fname=$1 22 | set fa=`grep "^$fname " $RTS2/etc/rts2/aliases | cut -f2 -d ' '` 23 | if (x$fa != x) then 24 | set fname=$fa 25 | endif 26 | 27 | if ($curfilname != $fname) then 28 | set filt=`grep -n "$fname" /Realtime/lib/filt.dat | cut -f1 -d:` 29 | if ($? != 0) then 30 | rts2-logcom "filter $fname not present, ignoring the request" 31 | else 32 | rts2-logcom -n "Moving filter wheel to $fname" 33 | tele filter $filt 34 | endif 35 | exit 1 36 | else 37 | # rts2-logcom "Filter $fname already set" 38 | exit 0 39 | endif 40 | breaksw 41 | endsw 42 | -------------------------------------------------------------------------------- /scripts/rts2pa/test/images/README: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # This is the image data directory. 3 | # 4 | # Read rts2/scripts/rts2pa/README 5 | 6 | # and fetch 7 | 8 | wget http://azug.minpet.unibas.ch/~wildi/rts2pa-test-2012-07-27.tgz 9 | 10 | # and untar it here: 11 | 12 | tar zxvf rts2pa-test-2012-07-27.tgz 13 | -------------------------------------------------------------------------------- /scripts/rts2pa/test/run_rts2pa_measurement.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # 4 | # 5 | # 6 | echo "check log file /var/log/rts2-debug.log" 7 | 8 | rts2-scriptexec -d C0 -s ' exe ../rts2pa_measurement.py ' 9 | -------------------------------------------------------------------------------- /scripts/rts2saf/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_SCRIPTS = rts2saf_analyze.py rts2saf_focus.py rts2saf_fwhm.py rts2saf_imgp.py rts2saf_reenable_exec.py 2 | 3 | EXTRA_DIST = rts2saf_analyze.py rts2saf_focus.py rts2saf_fwhm.py rts2saf_imgp.py rts2saf_reenable_exec.py 4 | 5 | SUBDIRS = rts2saf 6 | -------------------------------------------------------------------------------- /scripts/rts2saf/configs/dummy-bootes-2-autonomous/devices: -------------------------------------------------------------------------------- 1 | #RTS2 dummy devices configuration for Bootes-2 2 | # 3 | #device type device_name options 4 | # 5 | camd dummy andor --wheeldev COLWFLT --wheeldev COLWGRS --wheeldev COLWSLT --filter-offsets 1:2:3:4:5:6:7:8 --focdev F0 --width 400 --height 500 6 | teld dummy T0 --localhost localhost 7 | filterd dummy COLWFLT -F "open:R:g:r:i:z:Y:empty8" -s 10 --localhost localhost 8 | filterd dummy COLWGRS -F "open" -s 11 --localhost localhost 9 | filterd dummy COLWSLT -F "open" -s 11 --localhost localhost 10 | focusd dummy F0 --modefile /etc/rts2/f0.modefile 11 | cupola dummy CUP --weather-can-open 12 | -------------------------------------------------------------------------------- /scripts/rts2saf/configs/dummy-bootes-2/devices: -------------------------------------------------------------------------------- 1 | #RTS2 dummy devices configuration for Bootes-2 2 | # 3 | #device type device_name options 4 | # 5 | camd dummy andor --wheeldev COLWFLT --wheeldev COLWGRS --wheeldev COLWSLT --filter-offsets 1:2:3:4:5:6:7:8 --focdev F0 --width 400 --height 500 6 | teld dummy B2 --move fast --localhost localhost 7 | filterd dummy COLWFLT -F "open:R:g:r:i:z:Y:empty8" -s 10 --localhost localhost 8 | filterd dummy COLWGRS -F "open" -s 11 --localhost localhost 9 | filterd dummy COLWSLT -F "open" -s 11 --localhost localhost 10 | focusd dummy F0 --modefile /etc/rts2/f0.modefile 11 | cupola dummy CUP --weather-can-open --modefile /usr/local/etc/rts2/rts2saf/cup.modefile 12 | -------------------------------------------------------------------------------- /scripts/rts2saf/configs/hands_on/rts2saf.cfg: -------------------------------------------------------------------------------- 1 | # 2013-09-20, Markus Wildi 2 | # RTS2 dummy devices configuration a system without filter wheels 3 | # 4 | [connection] 5 | RTS2_HTTPD_USERNAME = YOUR_RTS2_USER 6 | PASSWORD = YOUR_PASSWD 7 | 8 | 9 | [focuser properties] 10 | FOCUSER_RESOLUTION = 2 11 | 12 | [SExtractor] 13 | SEXPATH = /usr/local/bin/sex 14 | SEXCFG = ./configs/hands_on/rts2saf-sex.cfg 15 | -------------------------------------------------------------------------------- /scripts/rts2saf/configs/no-filter-wheel/devices: -------------------------------------------------------------------------------- 1 | # RTS2 dummy devices configuration 2 | # 3 | #device type device_name options 4 | # 5 | camd dummy C0 --focdev F0 --width 400 --height 500 6 | focusd dummy F0 7 | -------------------------------------------------------------------------------- /scripts/rts2saf/configs/no-filter-wheel/rts2saf.cfg: -------------------------------------------------------------------------------- 1 | # 2013-09-20, Markus Wildi 2 | # RTS2 dummy devices configuration a system without filter wheels 3 | # 4 | [connection] 5 | RTS2_HTTPD_USERNAME = YOUR_RTS2_HTTPD_USERNAME 6 | PASSWORD = YOUR_PASSWD 7 | 8 | [ccd] 9 | CCD_NAME = C0 10 | BASE_EXPOSURE= 1.33 11 | PIXELSCALE = 0.6 12 | 13 | [mode] 14 | # autonomous mode: 15 | # SET_FOC_DEF = True 16 | SET_FOC_DEF = False 17 | WRITE_FILTER_OFFSETS = False 18 | 19 | [focuser properties] 20 | FOCUSER_NAME = F0 21 | FOCUSER_RESOLUTION = 2 22 | FOCUSER_SPEED = 1.0 23 | FOCUSER_TEMPERATURE_COMPENSATION = False 24 | FOCUSER_STEP_SIZE = 1 25 | FOCUSER_ABSOLUTE_LOWER_LIMIT = -16 26 | FOCUSER_ABSOLUTE_UPPER_LIMIT = 19 27 | FOCUSER_LOWER_LIMIT = -12 28 | FOCUSER_UPPER_LIMIT = 15 29 | FOCUSER_NO_FTW_RANGE = [ -7, 8, 2 ] 30 | 31 | [SExtractor] 32 | SEXPATH = /usr/local/bin/sex 33 | SEXCFG = /usr/local/etc/rts2/rts2saf/rts2saf-sex.cfg 34 | STARNNW_NAME = /usr/local/etc/rts2/rts2saf/rts2saf-sex.nnw 35 | -------------------------------------------------------------------------------- /scripts/rts2saf/configs/one-filter-wheel-autonomous/devices: -------------------------------------------------------------------------------- 1 | ## 2 | #RTS2 dummy devices configuration for one filter wheel 3 | # 4 | #device type device_name options 5 | # 6 | camd dummy C0 --wheeldev W0 --filter-offsets 1:2:3:4:5:6:7:8 --focdev F0 --width 400 --height 500 7 | filterd dummy W0 -F "open:R:g:r:i:z:Y:empty8" -s 10 --localhost localhost 8 | focusd dummy F0 --modefile /etc/rts2/f0.modefile 9 | -------------------------------------------------------------------------------- /scripts/rts2saf/configs/one-filter-wheel/devices: -------------------------------------------------------------------------------- 1 | # 2 | #RTS2 dummy devices configuration for one filter wheel 3 | # 4 | #device type device_name options 5 | # 6 | camd dummy C0 --wheeldev W0 --filter-offsets 1:2:3:4:5:6:7:8 --focdev F0 --width 400 --height 500 7 | filterd dummy W0 -F "open:R:g:r:i:z:Y:empty8" -s 10 --localhost localhost 8 | focusd dummy F0 9 | -------------------------------------------------------------------------------- /scripts/rts2saf/imgp/README: -------------------------------------------------------------------------------- 1 | Fetch this FITS with 2 | 3 | cd imgp 4 | wget http://azug.minpet.unibas.ch/~wildi/20131011054939-621-RA.fits 5 | 6 | To test rts2saf_imgp.py 7 | 8 | rts2saf_imgp.py ./imgp/20131011054939-621-RA.fits 9 | -------------------------------------------------------------------------------- /scripts/rts2saf/rts2saf/Makefile.am: -------------------------------------------------------------------------------- 1 | pkgpython_rts2safdir = ${pythondir}/rts2saf 2 | pkgpython_rts2saf_PYTHON = __init__.py \ 3 | acquire.py \ 4 | analyze.py \ 5 | analyzeruns.py \ 6 | checkdevices.py \ 7 | config.py \ 8 | createdevices.py \ 9 | criteria_radius.py \ 10 | data.py \ 11 | datarun.py \ 12 | devices.py \ 13 | ds9region.py \ 14 | environ.py \ 15 | fitdisplay.py \ 16 | fitfunction.py \ 17 | focus.py \ 18 | log.py \ 19 | rts2exec.py \ 20 | sextract.py \ 21 | sextractor.py \ 22 | temperaturemodel.py \ 23 | timeout.py 24 | -------------------------------------------------------------------------------- /scripts/rts2saf/rts2saf/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/scripts/rts2saf/rts2saf/__init__.py -------------------------------------------------------------------------------- /scripts/rts2saf/rts2saf/timeout.py: -------------------------------------------------------------------------------- 1 | # 2 | # thanks to: http://stackoverflow.com/questions/2281850/timeout-function-if-it-takes-too-long-to-finish 3 | 4 | from functools import wraps 5 | import errno 6 | import os 7 | import signal 8 | 9 | class TimeoutError(Exception): 10 | pass 11 | 12 | def timeout(seconds=10, error_message=os.strerror(errno.ETIME)): 13 | def decorator(func): 14 | def _handle_timeout(signum, frame): 15 | raise TimeoutError(error_message) 16 | 17 | def wrapper(*args, **kwargs): 18 | signal.signal(signal.SIGALRM, _handle_timeout) 19 | signal.alarm(seconds) 20 | try: 21 | result = func(*args, **kwargs) 22 | finally: 23 | signal.alarm(0) 24 | return result 25 | 26 | return wraps(func)(wrapper) 27 | 28 | return decorator 29 | -------------------------------------------------------------------------------- /scripts/rts2saf/rts2saf_reenable_exec.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | from rts2saf.log import Logger 4 | from rts2saf.rts2exec import Rts2Exec 5 | from rts2.json import JSONProxy 6 | 7 | class Args(object): 8 | def __init__(self): 9 | pass 10 | 11 | args=Args() 12 | args.toPath='/var/log' 13 | args.logfile= 'rts2-debug' 14 | args.level='DEBUG' 15 | 16 | debug=False 17 | logger= Logger(debug=debug, args=args ).logger 18 | 19 | 20 | proxy=JSONProxy() 21 | ex= Rts2Exec(debug=debug, proxy=proxy, logger=logger) 22 | ex.reeanableEXEC() 23 | logger.info('rts2saf_reenable_exec.py: reenabled EXEC') 24 | -------------------------------------------------------------------------------- /scripts/rts2saf/rts2saf_start.py: -------------------------------------------------------------------------------- 1 | ./rts2saf_exclusive.py -------------------------------------------------------------------------------- /scripts/rts2saf/rts2saf_stop.py: -------------------------------------------------------------------------------- 1 | ./rts2saf_exclusive.py -------------------------------------------------------------------------------- /scripts/rts2saf/samples/README: -------------------------------------------------------------------------------- 1 | # 2 | # 2013-09-22, Markus Wildi, wildi.markus@bluewin.ch 3 | # 4 | 5 | Fetch with 6 | 7 | wget http://azug.minpet.unibas.ch/~wildi/rts2saf-test-focus-2013-09-14.tgz 8 | 9 | and unpack them in rts-2/scripts/rts2saf. -------------------------------------------------------------------------------- /scripts/rts2saf/samples_bootes2/README: -------------------------------------------------------------------------------- 1 | # 2 | # 2013-11-10, Markus Wildi, wildi.markus@bluewin.ch 3 | # 4 | 5 | Fetch with 6 | 7 | wget http://azug.minpet.unibas.ch/~wildi/rts2saf-test-focus-2013-11-10.tgz 8 | 9 | and unpack them in rts-2/scripts/rts2saf. -------------------------------------------------------------------------------- /scripts/rts2saf/sphinx/index.rst: -------------------------------------------------------------------------------- 1 | .. rts2saf documentation master file, created by 2 | sphinx-quickstart on Sun Oct 13 10:56:36 2013. 3 | 4 | Contents 5 | ======== 6 | 7 | .. toctree:: 8 | :maxdepth: 3 9 | 10 | introduction 11 | installation 12 | dummytesting 13 | execution 14 | offline 15 | cmdline 16 | configuration 17 | unittest 18 | modules 19 | moduleindex 20 | 21 | -------------------------------------------------------------------------------- /scripts/rts2saf/sphinx/moduleindex.rst: -------------------------------------------------------------------------------- 1 | Indices and tables 2 | ================== 3 | 4 | * :ref:`genindex` 5 | * :ref:`modindex` 6 | -------------------------------------------------------------------------------- /scripts/rts2saf/unittest/f0.modefile: -------------------------------------------------------------------------------- 1 | [default] 2 | 3 | foc_min = -1111. 4 | foc_max = 9999. 5 | focstep= 1000 -------------------------------------------------------------------------------- /scripts/rts2saf/unittest/rts2saf: -------------------------------------------------------------------------------- 1 | ../rts2saf -------------------------------------------------------------------------------- /scripts/rts2saf/unittest/rts2saf-flux.cfg: -------------------------------------------------------------------------------- 1 | # 2013-09-20, Markus Wildi 2 | # RTS2 dummy devices configuration a system without filter wheels 3 | # 4 | [connection] 5 | URL = http://localhost:9999 6 | 7 | [ccd] 8 | CCD_NAME = C0 9 | BASE_EXPOSURE= 1.33 10 | PIXELSCALE = 0.6 11 | 12 | [mode] 13 | # autonomous mode: 14 | # SET_FOC_DEF = True 15 | SET_FOC_DEF = False 16 | WRITE_FILTER_OFFSETS = False 17 | 18 | [focuser properties] 19 | FOCUSER_NAME = F0 20 | FOCUSER_RESOLUTION = 10 21 | FOCUSER_SPEED = 100.0 22 | FOCUSER_TEMPERATURE_COMPENSATION = False 23 | FOCUSER_STEP_SIZE = 1 24 | FOCUSER_ABSOLUTE_LOWER_LIMIT = -16 25 | FOCUSER_ABSOLUTE_UPPER_LIMIT = 19 26 | FOCUSER_LOWER_LIMIT = -12 27 | FOCUSER_UPPER_LIMIT = 15 28 | FOCUSER_NO_FTW_RANGE = [ -7, 8, 2 ] 29 | 30 | [SExtractor] 31 | SEXPATH = /usr/local/bin/sex 32 | SEXCFG = ../configs/hands_on/rts2saf-sex.cfg 33 | FIELDS = [ NUMBER,EXT_NUMBER,X_IMAGE,Y_IMAGE,MAG_BEST,FLAGS,CLASS_STAR,FWHM_IMAGE,A_IMAGE,B_IMAGE] 34 | STARNNW_NAME = ../configs/hands_on/rts2saf-sex.nnw 35 | -------------------------------------------------------------------------------- /scripts/rts2saf/unittest/rts2saf-no-filter-wheel.cfg: -------------------------------------------------------------------------------- 1 | # 2013-09-20, Markus Wildi 2 | # RTS2 dummy devices configuration a system without filter wheels 3 | # 4 | [connection] 5 | URL = http://localhost:9999 6 | 7 | [ccd] 8 | CCD_NAME = C0 9 | BASE_EXPOSURE= 1.33 10 | PIXELSCALE = 0.6 11 | 12 | [mode] 13 | # autonomous mode: 14 | # SET_FOC_DEF = True 15 | SET_FOC_DEF = False 16 | WRITE_FILTER_OFFSETS = False 17 | 18 | [focuser properties] 19 | FOCUSER_NAME = F0 20 | FOCUSER_RESOLUTION = 2 21 | FOCUSER_SPEED = 100.0 22 | FOCUSER_TEMPERATURE_COMPENSATION = False 23 | FOCUSER_STEP_SIZE = 1 24 | FOCUSER_ABSOLUTE_LOWER_LIMIT = -16 25 | FOCUSER_ABSOLUTE_UPPER_LIMIT = 19 26 | FOCUSER_LOWER_LIMIT = -12 27 | FOCUSER_UPPER_LIMIT = 15 28 | FOCUSER_NO_FTW_RANGE = [ -7, 8, 2 ] 29 | 30 | [SExtractor] 31 | SEXPATH = /usr/local/bin/sex 32 | SEXCFG = ../configs/hands_on/rts2saf-sex.cfg 33 | STARNNW_NAME = ../configs/hands_on/rts2saf-sex.nnw 34 | 35 | [acceptance circle] 36 | CENTER_OFFSET_X=0 37 | CENTER_OFFSET_Y=0 38 | RADIUS= 200 39 | -------------------------------------------------------------------------------- /scripts/rts2saf/unittest/rts2saf-one-filter-wheel.cfg: -------------------------------------------------------------------------------- 1 | # 2014-03-04, Markus Wildi 2 | # RTS2 dummy devices configuration for one filter wheel with no empty slot enabled 3 | # 4 | # command line operations 5 | [connection] 6 | URL = http://localhost:9999 7 | 8 | [ccd] 9 | CCD_NAME = C0 10 | BASE_EXPOSURE= 1.33 11 | PIXELSCALE = 0.6 12 | 13 | [mode] 14 | SET_FOC_DEF = False 15 | WRITE_FILTER_OFFSETS = False 16 | 17 | [filter properties] 18 | flt1 = [ R, -8, 9, 2, 1.1] 19 | 20 | [filter wheel] 21 | fltw1 = [ W0, R ] 22 | 23 | [filter wheels] 24 | inuse = [ W0 ] 25 | EMPTY_SLOT_NAMES = [ ] 26 | 27 | [focuser properties] 28 | FOCUSER_NAME = F0 29 | FOCUSER_RESOLUTION = 2 30 | FOCUSER_SPEED = 100.0 31 | FOCUSER_TEMPERATURE_COMPENSATION = False 32 | FOCUSER_STEP_SIZE = 1 33 | FOCUSER_ABSOLUTE_LOWER_LIMIT = -26 34 | FOCUSER_ABSOLUTE_UPPER_LIMIT = 29 35 | FOCUSER_LOWER_LIMIT = -10 36 | FOCUSER_UPPER_LIMIT = 11 37 | FOCUSER_NO_FTW_RANGE = [ -7, 8, 2 ] 38 | 39 | -------------------------------------------------------------------------------- /scripts/satvis: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import rts2.sat 4 | import argparse 5 | import sys 6 | import ephem 7 | 8 | parser = argparse.ArgumentParser(formatter_class=argparse.RawDescriptionHelpFormatter,description='Calculate visibility of satellites from observatories, suggest the best possible observing plan') 9 | parser.add_argument('inputfiles',help='observatories satellites',type=str,nargs='+') 10 | 11 | 12 | args = parser.parse_args() 13 | 14 | if len(args.inputfiles) < 2: 15 | sys.exit('you need to specify at least two input files - one with observatories, second with TLEs') 16 | 17 | obs = rts2.sat.Observatories() 18 | obs.parse_file(args.inputfiles[0]) 19 | 20 | sat = rts2.sat.TLESet() 21 | for tlef in args.inputfiles[1:]: 22 | sat.parse_file(tlef) 23 | 24 | date = ephem.now() 25 | 26 | for o in obs.observatories: 27 | print o.name 28 | for s in sat.sats: 29 | p = rts2.sat.next_visible_pass(s,o,date) 30 | if p is not None: 31 | print 'Sat: {0} Observatory: {1} transit: {2} alt: {3} az: {4}'.format(s.name, o.name, p['transit'], p['transit_alt'], p['transit_az']) 32 | -------------------------------------------------------------------------------- /scripts/subtract.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # 3 | # Calculates median from files suplied as arguments. Median 4 | # is saved to file specified as first argument. 5 | # 6 | # You will need numpy and pyfits packages. Those are available from python-numpy 7 | # and python-pyfits Debian/Ubuntu packages. 8 | # 9 | # Copyright (C) 2010 Petr Kubanek 10 | 11 | import sys 12 | import numpy 13 | import pyfits 14 | import os 15 | 16 | f1 = pyfits.open(sys.argv[1]) 17 | header = f1[0].header 18 | 19 | bias = pyfits.open(sys.argv[2]) 20 | 21 | substract = f1[0].data - bias[0].data 22 | 23 | of = pyfits.open(sys.argv[3],mode='append') 24 | i = pyfits.PrimaryHDU(uint=True,data=substract,header=f1[0].header) 25 | i.scale('int16', bzero=32768) 26 | of.append(i) 27 | of.close() 28 | 29 | f1.close() 30 | bias.close() 31 | -------------------------------------------------------------------------------- /scripts/telmodel.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from astropy.coordinates import SkyCoord,EarthLocation,AltAz 3 | from astropy import units as u 4 | from astropy.time import Time 5 | import random 6 | 7 | # Location of the observatory. Longitutes are measured increasing to the east, 8 | # so west longitudes are negative. 9 | obs = EarthLocation(lat=20.70752*u.deg,lon=-156.257*u.deg,height=3000*u.m) 10 | 11 | # Time for which to build poitings. Default to now. 12 | #obstime = Time('2015-07-04 22:33:00') 13 | 14 | obstime = Time.now() 15 | 16 | # get random alt/az, separated by 20 degrees, +- 3 deg off, at 45 degrees altitude 17 | for az in range(0,360,20): 18 | t_alt = (45 + random.random() * 3) * u.deg 19 | t_az = (az + random.random() * 3) * u.deg 20 | 21 | hrz = SkyCoord(alt=t_alt,az=t_az,frame='altaz',location=obs,obstime=obstime) 22 | equ = hrz.icrs 23 | 24 | ra = equ.ra*u.deg 25 | dec = equ.dec*u.deg 26 | 27 | print ra.value,dec.value 28 | -------------------------------------------------------------------------------- /scripts/test_focusing.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # Test focusing infrastrucure 4 | 5 | import rts2.focusing 6 | import sys 7 | from astropy.io import fits 8 | 9 | from scipy import * 10 | from matplotlib.pyplot import * 11 | 12 | tries = {} 13 | 14 | for fn in sys.argv[1:]: 15 | ff = fits.open(fn) 16 | focpos=len(tries) 17 | try: 18 | focpos=float(ff[0].header['FOC_POS']) 19 | except KeyError,ke: 20 | pass 21 | tries[focpos]=fn 22 | 23 | f = rts2.focusing.Focusing() 24 | 25 | b,ftype = f.findBestFWHM(tries) 26 | # for way off-focus, low S/N images.. 27 | #b,ftype = f.findBestFWHM(tries,min_stars=10,filterGalaxies=False,threshold=5) 28 | 29 | print b 30 | 31 | f.plotFit(b,ftype) 32 | -------------------------------------------------------------------------------- /scripts/u_point/README_demo: -------------------------------------------------------------------------------- 1 | Data acquisition simulation 2 | =========================== 3 | 4 | Files: 5 | 6 | 7 | sim_daytime.sh: 8 | 9 | demonstrates that u_point does not approach the sun 10 | within a certain radius. Specify option -s e.g. with 11 | 12 | sim_settings_below_sun.sh 13 | sim_settings_above_sun.sh 14 | 15 | and check longitude if no sun is visible. Specify option 16 | -r for RTS2 real or dummy devices. 17 | 18 | sim_daytime_bright_stars.sh: 19 | 20 | demonstrates how a day time data acquisition can be 21 | carried out. Yes, it is cumbersome. 22 | 23 | If RTS2 is involved the these two scripts are called 24 | via rts2-scriptexec: 25 | 26 | rts2_script/sim_u_acquire_no_fetch_dss_continuous.sh 27 | rts2_script/sim_u_acquire_plot.sh 28 | 29 | Check default settings in sim_settings.sh, it is 30 | configured for Dome Concordia, Antarctica, there is no 31 | sun between May and early August. 32 | 33 | -------------------------------------------------------------------------------- /scripts/u_point/demo/sim_settings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BASE_PATH=/tmp/u_point 4 | lat_lon_steps="--lat-step 10 --lon-step 20" 5 | LATITUDE="--obs-latitude m75.1" 6 | LONGITUDE="--obs-longitude 123.1" 7 | SUN_SEPARATION="--sun-separation 40." 8 | # latitude limits 9 | ALT_LOW=0. 10 | ALT_HIGH=80. 11 | AZ_LOW=0. 12 | AZ_HIGH=360. 13 | #AZ_LOW=130. 14 | #AZ_HIGH=270. 15 | # brightness limits 16 | MAG_LOW=3. 17 | MAG_HIGH=-5. 18 | # do not fetch images 19 | FETCH_DSS_IMAGE= 20 | echo "" 21 | echo "if no sun is visible, change LONGITUDE, current value $LONGITUDE" 22 | echo "" 23 | -------------------------------------------------------------------------------- /scripts/u_point/demo/sim_settings_above_sun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BASE_PATH=/tmp/u_point 4 | lat_lon_steps="--lat-step 10 --lon-step 20" 5 | LATITUDE="--obs-latitude .1" 6 | LONGITUDE="--obs-longitude 240.1" 7 | SUN_SEPARATION="--sun-separation 45." 8 | # latitude limits 9 | ALT_LOW=50. 10 | ALT_HIGH=80. 11 | AZ_LOW=0. 12 | AZ_HIGH=360. 13 | #AZ_LOW=130. 14 | #AZ_HIGH=270. 15 | # brightness limits 16 | MAG_LOW=3. 17 | MAG_HIGH=-5. 18 | # do not fetch images 19 | FETCH_DSS_IMAGE= 20 | echo "" 21 | echo "if no sun is visible, change LONGITUDE, current value $LONGITUDE" 22 | echo "" 23 | -------------------------------------------------------------------------------- /scripts/u_point/demo/sim_settings_below_sun.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | BASE_PATH=/tmp/u_point 4 | lat_lon_steps="--lat-step 10 --lon-step 20" 5 | LATITUDE="--obs-latitude .1" 6 | LONGITUDE="--obs-longitude 0.1" 7 | SUN_SEPARATION="--sun-separation 40." 8 | # latitude limits 9 | ALT_LOW=0. 10 | ALT_HIGH=40. 11 | AZ_LOW=0. 12 | AZ_HIGH=360. 13 | #AZ_LOW=130. 14 | #AZ_HIGH=270. 15 | # brightness limits 16 | MAG_LOW=3. 17 | MAG_HIGH=-5. 18 | # do not fetch images 19 | FETCH_DSS_IMAGE= 20 | echo "" 21 | echo "if no sun is visible, change LONGITUDE, current value $LONGITUDE" 22 | echo "" 23 | -------------------------------------------------------------------------------- /scripts/u_point/rts2_script/u_acquire.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # wildi.markus@bluewin.ch 4 | # 5 | # Helper script used by 6 | # 7 | # rts2-scriptexec -d C0 -s " exe ./u_acquire.sh " 8 | # 9 | # exe can not deal with arguments 10 | # 11 | # This is the production version. 12 | # 13 | cd $HOME/rts2/scripts/u_point/ 14 | source ./rts2_script/u_acquire_settings.sh 15 | # close stderr 16 | ./u_acquire.py --base-path $BASE_PATH $LATITUDE $LONGITUDE --device-class DeviceRts2 $USE_BRIGHT_STARS $FETCH_DSS_IMAGES $SUN_SEPARATION $DO_QUICK_ANALYSIS $ACQUIRE_DS9_DISPLAY --level DEBUG 17 | # 18 | -------------------------------------------------------------------------------- /scripts/u_point/rts2_script/u_acquire_fetch_dss_continuous.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # wildi.markus@bluewin.ch 4 | # 5 | # Helper script used by 6 | # 7 | # rts2-scriptexec -d C0 -s " exe ./u_acquire_fetch_dss_continuous.sh" 8 | # 9 | # exe can not deal with arguments 10 | # 11 | # ATTENTION: these settings are used for demonstration and debug 12 | # purposes ONLY. 13 | # 14 | cd $HOME/rts2/scripts/u_point/ 15 | source ./rts2_script/u_acquire_settings.sh 16 | # overriding 17 | USE_BRIGHT_STARS="--use-bright-stars" 18 | # 19 | # 20 | # same with DSS image retrieval 21 | ./u_acquire.py --base-path $BASE_PATH $LATITUDE $LONGITUDE --device DeviceRts2 $USE_BRIGHT_STARS $FETCH_DSS_IMAGES $SUN_SEPARATION $DO_QUICK_ANALYSIS $ACQUIRE_DS9_DISPLAY --level DEBUG 22 | 23 | -------------------------------------------------------------------------------- /scripts/u_point/u_point/timeout.py: -------------------------------------------------------------------------------- 1 | # 2 | # thanks to: http://stackoverflow.com/questions/2281850/timeout-function-if-it-takes-too-long-to-finish 3 | 4 | from functools import wraps 5 | import errno 6 | import os 7 | import signal 8 | 9 | class TimeoutError(Exception): 10 | pass 11 | 12 | def timeout(seconds=10, error_message=os.strerror(errno.ETIME)): 13 | def decorator(func): 14 | def _handle_timeout(signum, frame): 15 | raise TimeoutError(error_message) 16 | 17 | def wrapper(*args, **kwargs): 18 | signal.signal(signal.SIGALRM, _handle_timeout) 19 | signal.alarm(seconds) 20 | try: 21 | result = func(*args, **kwargs) 22 | finally: 23 | signal.alarm(0) 24 | return result 25 | 26 | return wraps(func)(wrapper) 27 | 28 | return decorator 29 | -------------------------------------------------------------------------------- /scripts/u_point/unittest/f0.modefile: -------------------------------------------------------------------------------- 1 | [default] 2 | 3 | foc_min = -1111. 4 | foc_max = 9999. 5 | focstep= 1000 -------------------------------------------------------------------------------- /scripts/u_point/unittest/meteo: -------------------------------------------------------------------------------- 1 | ../meteo/ -------------------------------------------------------------------------------- /scripts/u_point/unittest/model: -------------------------------------------------------------------------------- 1 | ../model -------------------------------------------------------------------------------- /scripts/u_point/unittest/ref_index: -------------------------------------------------------------------------------- 1 | ../ref_index -------------------------------------------------------------------------------- /scripts/u_point/unittest/t0.modefile: -------------------------------------------------------------------------------- 1 | [default] 2 | 3 | MOVE_FAST = 1 -------------------------------------------------------------------------------- /scripts/u_point/unittest/transform: -------------------------------------------------------------------------------- 1 | ../transform -------------------------------------------------------------------------------- /scripts/u_point/unittest/u_acquire_fetch_dss_continuous.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # wildi.markus@bluewin.ch 4 | # 5 | # Helper script used by 6 | # 7 | # rts2-scriptexec -d C0 -s " exe ./u_acquire_fetch_dss_continuous.sh" 8 | # 9 | # exe can not deal with arguments 10 | # 11 | # ATTENTION: these settings are used for demonstration and debug 12 | # purposes ONLY. 13 | # 14 | BASE_PATH="/tmp/u_point_unittest" 15 | LATITUDE="--obs-latitude m75.1" 16 | LONGITUDE="--obs-longitude 123.1" 17 | #USE_BRIGHT_STARS="--use-bright-stars" 18 | USE_BRIGHT_STARS= 19 | FETCH_DSS_IMAGES="--fetch-dss-image" 20 | SUN_SEPARATION="--sun-separation 40." 21 | DO_QUICK_ANALYSIS="--do-quick-analysis" 22 | # 23 | # 24 | # same with DSS image retrieval 25 | ../u_acquire.py --base-path $BASE_PATH $LATITUDE $LONGITUDE --device DeviceRts2 $USE_BRIGHT_STARS $FETCH_DSS_IMAGES $SUN_SEPARATION $DO_QUICK_ANALYSIS --level DEBUG 26 | 27 | -------------------------------------------------------------------------------- /scripts/u_point/unittest/u_acquire_settings.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # 3 | # (C) 2017, Markus Wildi, wildi.markus@bluewin.ch 4 | # 5 | # This program is free software; you can redistribute it and/or modify 6 | # it under the terms of the GNU General Public License as published by 7 | # the Free Software Foundation; either version 2, or (at your option) 8 | # any later version. 9 | # 10 | # This program is distributed in the hope that it will be useful, 11 | # but WITHOUT ANY WARRANTY; without even the implied warranty of 12 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 | # GNU General Public License for more details. 14 | # 15 | # You should have received a copy of the GNU General Public License 16 | # along with this program; if not, write to the Free Software Foundation, 17 | # Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 | # 19 | # Or visit http://www.gnu.org/licenses/gpl.html. 20 | # 21 | 22 | # 2016-12-17, wildi.markus@bluewin.ch 23 | -------------------------------------------------------------------------------- /scripts/u_point/unittest/u_point: -------------------------------------------------------------------------------- 1 | ../u_point -------------------------------------------------------------------------------- /scripts/xy2wcs.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | # test xy2wcs - compares what we get using ds9 and xy2wcs algorithm 4 | 5 | from rts2.astrometry import xy2wcs 6 | import sys 7 | import ds9 8 | import pyfits 9 | import re 10 | 11 | d=ds9.ds9('XY2WCS') 12 | 13 | for x in sys.argv[1:]: 14 | ff = pyfits.fitsopen(x,'readonly') 15 | fh=ff[0].header 16 | ff.close() 17 | d.set('file {0}'.format(x)) 18 | d.set('regions system wcs') 19 | xmax = fh['NAXIS1'] 20 | ymax = fh['NAXIS2'] 21 | # pixels to check 22 | xy = [[0,0],[0,ymax],[xmax,0],[xmax,ymax],[xmax/2.0,ymax/2.0]] 23 | pmatch = re.compile('point\(([^,]*),([^)]*)\)') 24 | for p in xy: 25 | d.set('regions delete all') 26 | d.set('regions','image; point {0} {1} # point=cross'.format(p[0],p[1])) 27 | r=d.get('regions') 28 | radec = xy2wcs(p[0],p[1],fh) 29 | for l in r.split('\n'): 30 | match = pmatch.match(l) 31 | if match: 32 | ds9radec=[float(match.group(1)),float(match.group(2))] 33 | print radec,ds9radec 34 | print (radec[0]-ds9radec[0])*3600.0,(radec[1]-ds9radec[1])*3600.0 35 | 36 | -------------------------------------------------------------------------------- /src/Makefile.am: -------------------------------------------------------------------------------- 1 | 2 | SUBDIRS = \ 3 | centrald \ 4 | axisd \ 5 | phot \ 6 | dome \ 7 | focusd \ 8 | mirror \ 9 | plan \ 10 | db \ 11 | monitor \ 12 | camd \ 13 | teld \ 14 | focusc \ 15 | filterd \ 16 | grb \ 17 | pgsql \ 18 | bckimages \ 19 | sql \ 20 | sensord \ 21 | rotad \ 22 | multidevd \ 23 | logger \ 24 | scheduler \ 25 | httpd \ 26 | wsd \ 27 | bb \ 28 | pluto \ 29 | catd \ 30 | redis \ 31 | thrift \ 32 | ucac5 33 | -------------------------------------------------------------------------------- /src/README: -------------------------------------------------------------------------------- 1 | camd CAMera Daemons 2 | dome Dome (roof) control 3 | grb grb receiving - rts2-grbd 4 | plan planning & execution & image processing - rts2-selector, rts2-executor, rts2-imgproc 5 | monitor Monitoring client 6 | teld TELescope Daemons 7 | utils rts2block.cpp, rts2device.cpp, devser.c, devdem.c, hms.h, .. 8 | writers writers for writing images from internal to external format; 9 | support stream processing 10 | phot Photocounters daemon 11 | focusc GUI focuser etc.. 12 | focusd Focuser 13 | bckimages Thinks for image archive management 14 | sensors Various sensor devices 15 | indi INDI (KStars) device driver 16 | logger logd and logger (client) 17 | xmlrpc xmlrpc daemon 18 | scheduler advanced schedulers for RTS2 night and longer runs 19 | libindi libraries for indi communication 20 | stellarium Stellarium client (allows control of arbitary telescope supported by RTS2) 21 | -------------------------------------------------------------------------------- /src/axisd/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = rts2-axis-servodrive-r272 2 | 3 | LDADD = -L../../lib/rts2 -lrts2gpib -lrts2 @LIB_NOVA@ 4 | AM_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 5 | 6 | rts2_axis_servodrive_r272_SOURCES = servodrive-r272.cpp 7 | -------------------------------------------------------------------------------- /src/bb/Makefile.am: -------------------------------------------------------------------------------- 1 | EXTRA_DIST = bbdb.ec 2 | 3 | bbsdir = ${datadir}/@PACKAGE@/bb 4 | 5 | dist_bbs_SCRIPTS = schedule_target.py 6 | 7 | noinst_HEADERS = bb.h bbdb.h bbapi.h bbconn.h bbtasks.h schedreq.h 8 | 9 | if JSONSOUP 10 | if PGSQL 11 | 12 | bin_PROGRAMS = rts2-bb 13 | 14 | rts2_bb_SOURCES = bb.cpp bbdb.cpp bbapi.cpp bbconn.cpp bbtasks.cpp schedreq.cpp 15 | rts2_bb_CXXFLAGS = @CFITSIO_CFLAGS@ @LIBARCHIVE_CFLAGS@ @MAGIC_CFLAGS@ @LIBXML_CFLAGS@ @LIBPG_CFLAGS@ @NOVA_CFLAGS@ @JSONGLIB_CFLAGS@ -I../../include -I../../lib 16 | rts2_bb_LDADD = -L../../lib/rts2json -lrts2json -L../../lib/rts2db -lrts2db -L../../lib/pluto -lpluto -L../../lib/rts2fits -lrts2imagedb -L../../lib/rts2 -lrts2 -L../../lib/xmlrpc++ -lrts2xmlrpc \ 17 | -L../../lib/rts2script -lrts2script @LIBXML_LIBS@ @LIB_ECPG@ @LIB_NOVA@ @MAGIC_LIBS@ @LIB_CRYPT@ @LIBARCHIVE_LIBS@ @CFITSIO_LIBS@ @JSONGLIB_LIBS@ 18 | 19 | CLEANFILES = bbdb.cpp 20 | 21 | .ec.cpp: 22 | @ECPG@ -o $@ $^ 23 | 24 | else 25 | 26 | EXTRA_DIST += bb.cpp httpreq.cpp bbapi.cpp observatory.cpp bbconn.cpp 27 | 28 | endif 29 | else 30 | 31 | EXTRA_DIST += bb.cpp httpreq.cpp bbapi.cpp observatory.cpp bbconn.cpp 32 | 33 | else 34 | 35 | endif 36 | -------------------------------------------------------------------------------- /src/bb/python/tests: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | 3 | import rts2.json 4 | proxy = rts2.json.createProxy('http://localhost:8880') 5 | 6 | ret = proxy.loadJson('/api/create_target', {'tn':'Test','ra':20.34,'dec':23.3}) 7 | print ret 8 | 9 | print proxy.loadData('/api/schedule', {'id':ret['id']}) 10 | print proxy.loadData('/api/confirm', {'id':ret['id'], 'schedule_id':1, 'observatory_id':1}) 11 | print proxy.loadData('/api/cancel', {'schedule_id':1}) 12 | -------------------------------------------------------------------------------- /src/camd/apogee/Apogee.h: -------------------------------------------------------------------------------- 1 | enum Camera_Status 2 | { 3 | Camera_Status_Idle = 0, 4 | Camera_Status_Waiting, 5 | Camera_Status_Exposing, 6 | Camera_Status_Downloading, 7 | Camera_Status_LineReady, 8 | Camera_Status_ImageReady, 9 | Camera_Status_Flushing 10 | }; 11 | 12 | enum Camera_CoolerStatus 13 | { 14 | Camera_CoolerStatus_Off = 0, 15 | Camera_CoolerStatus_RampingToSetPoint, 16 | Camera_CoolerStatus_Correcting, 17 | Camera_CoolerStatus_RampingToAmbient, 18 | Camera_CoolerStatus_AtAmbient, 19 | Camera_CoolerStatus_AtMax, 20 | Camera_CoolerStatus_AtMin, 21 | Camera_CoolerStatus_AtSetPoint 22 | }; 23 | 24 | enum Camera_CoolerMode 25 | { 26 | Camera_CoolerMode_Off = 0, // shutdown immediately 27 | Camera_CoolerMode_On, // enable cooler, starts searching for set point 28 | Camera_CoolerMode_Shutdown // ramp to ambient, then shutdown 29 | }; 30 | -------------------------------------------------------------------------------- /src/camd/apogee/ApogeeLinux.h: -------------------------------------------------------------------------------- 1 | 2 | #define APISA_READ_USHORT _IOR('a', 0x01, unsigned int) 3 | #define APISA_READ_LINE _IOR('a', 0x02, unsigned int) 4 | #define APISA_WRITE_USHORT _IOW('a', 0x03, unsigned int) 5 | 6 | #define APPPI_READ_USHORT _IOR('a', 0x01, unsigned int) 7 | #define APPPI_READ_LINE _IOR('a', 0x02, unsigned int) 8 | #define APPPI_WRITE_USHORT _IOW('a', 0x03, unsigned int) 9 | 10 | #define APPCI_READ_USHORT _IOR('a', 0x01, unsigned int) 11 | #define APPCI_READ_LINE _IOR('a', 0x02, unsigned int) 12 | #define APPCI_WRITE_USHORT _IOW('a', 0x03, unsigned int) 13 | 14 | #define appci_major_number 60 15 | #define apppi_major_number 61 16 | #define apisa_major_number 62 17 | 18 | struct apIOparam // IOCTL data 19 | { 20 | unsigned int reg; 21 | unsigned long param1, param2; 22 | }; 23 | 24 | #define APOGEE_PCI_DEVICE "/dev/appci" 25 | #define APOGEE_PPI_DEVICE "/dev/apppi" 26 | #define APOGEE_ISA_DEVICE "/dev/apisa" 27 | -------------------------------------------------------------------------------- /src/camd/apogee/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = Apogee.h ApogeeLinux.h CameraIO_Linux.h 2 | 3 | if SUNCYGMAC 4 | EXTRA_DIST = CameraIO_LinuxPCI.cpp 5 | else 6 | 7 | if ARMCPU 8 | EXTRA_DIST = CameraIO_LinuxPCI.cpp 9 | else 10 | 11 | noinst_LIBRARIES = libapogee.a 12 | 13 | libapogee_a_SOURCES = CameraIO_LinuxPCI.cpp 14 | endif 15 | 16 | endif 17 | -------------------------------------------------------------------------------- /src/camd/edtsao/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = edtswap.h sdvlib.h sdv_libpdv.h xos.h interface.h sdvpci.h edtreg.h 2 | 3 | if EDTPDV 4 | noinst_LIBRARIES = libedtsao.a 5 | 6 | libedtsao_a_SOURCES = edtswap.c ccdpdv.c sleep.c saoprintblk.c 7 | libedtsao_a_CFLAGS = @INC_EDTPDV@ 8 | endif 9 | -------------------------------------------------------------------------------- /src/camd/edtsao/edtswap.h: -------------------------------------------------------------------------------- 1 | #ifdef __STDC__ 2 | #include 3 | #define PROTOTYPE(X) X 4 | #else 5 | #include 6 | #define PROTOTYPE(X) ( ) 7 | #endif 8 | 9 | #define ft_byteswap() (*(short *)"\001\000" & 0x0001) 10 | void swap2 PROTOTYPE ((char *to, char *from, int nbytes)); 11 | void swap4 PROTOTYPE ((char *to, char *from, int nbytes)); 12 | void swap8 PROTOTYPE ((char *to, char *from, int nbytes)); 13 | -------------------------------------------------------------------------------- /src/camd/edtsao/interface.h: -------------------------------------------------------------------------------- 1 | // helper file for C++ interface 2 | #ifndef __RTS2_EDTINTERFACE__ 3 | #define __RTS2_EDTINTERFACE__ 4 | 5 | // values taken from http://www.bcbsr.com/sao/lsstdes.html 6 | #define SAO_GAIN_HIGH 0x50300000 7 | #define SAO_GAIN_LOW 0x50200000 8 | 9 | #define SAO_PARALER_SP 0x46000006 10 | 11 | #define SAO_SPLIT_ON 0x41000001 12 | #define SAO_SPLIT_OFF 0x41000000 13 | 14 | #define SAO_UNI_ON 0x43000001 15 | #define SAO_UNI_OFF 0x43000000 16 | 17 | #ifdef __cplusplus 18 | extern "C" 19 | { 20 | #endif 21 | 22 | #include "edtswap.h" 23 | #include "edtinc.h" 24 | #include "edtreg.h" 25 | #include "sdvlib.h" 26 | 27 | // define functions which are needed and don't have prototype 28 | int ccd_serial_write (PdvDev * fd, u_char * value, int count); 29 | 30 | void ccd_setdev (int dev); 31 | PdvDev *ccd_gopen (char *dvname, int unit); 32 | 33 | void ccd_picture_timeout (PdvDev * fd, int timeout); 34 | int ccd_set_serial_delay (PdvDev * fd, int delay); 35 | 36 | int sao_print_command (u_int cptr[], int num); 37 | 38 | #ifdef __cplusplus 39 | }; 40 | #endif 41 | #endif /* !__RTS2_EDTINTERFACE__ */ 42 | -------------------------------------------------------------------------------- /src/camd/edtsao/sdv_libpdv.h: -------------------------------------------------------------------------------- 1 | 2 | typedef struct edt_device 3 | { 4 | uint_t *fd; /* file descriptor of opened device */ 5 | u_int unit_no; 6 | uint_t devid; 7 | uint_t size; /* buffer size */ 8 | uint_t nbufs; /* number of multiple buffers */ 9 | unsigned char **ring_buffers;/* pointer to mulitple buffer pointers */ 10 | uint_t *ring_tids; /* for threads */ 11 | unsigned char *tmpbuf; /* for interlace merging, etc. */ 12 | char devname[64]; 13 | uint_t nextbuf; 14 | uint_t nextRW; 15 | uint_t nextwbuf; /* for edt_next_writebuf */ 16 | uint_t donecount; 17 | uint_t ring_buffer_numbufs; 18 | uint_t ring_buffer_bufsize; 19 | uint_t ring_buffers_allocated; 20 | uint_t ring_buffers_configured; 21 | uint_t ring_buffer_setup_error; 22 | uint_t write_flag; 23 | uint_t foi_unit; 24 | uint_t debug_level; 25 | uint_t *dd_p; /* device dependent struct */ 26 | struct edt_device *edt_p; /* points to itself, for backwards compat */ 27 | 28 | /* For callback rountines */ 29 | 30 | uint_t event_funcs[EDT_MAX_KERNEL_EVENTS]; 31 | 32 | u_int channel_no; 33 | 34 | } PdvDev; 35 | -------------------------------------------------------------------------------- /src/camd/edtsao/sdvpci.h: -------------------------------------------------------------------------------- 1 | #ifndef INCLUDE_sdvpci_h 2 | #define INCLUDE_sdvpci_h 3 | /* 4 | #define EDT_ACT_NEVER 0 5 | #define EDT_ACT_ONCE 1 6 | #define EDT_ACT_ALWAYS 2 7 | #define EDT_MAX_KERNEL_EVENTS 16 8 | */ 9 | 10 | /* 11 | #include 12 | */ 13 | #include 14 | 15 | #define SDV 0 16 | #define PDV 1 17 | 18 | /* 19 | void sdv_start_hardware_continuous(); 20 | */ 21 | #endif /* INCLUDE_sdvpci_h */ 22 | -------------------------------------------------------------------------------- /src/camd/edtsao/sdvsao.c: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | 6 | sdv_start_hardware_continuous (fd, nbufs) 7 | SdvDev *fd; 8 | int nbufs; 9 | { 10 | } 11 | -------------------------------------------------------------------------------- /src/camd/edtsao/sleep.c: -------------------------------------------------------------------------------- 1 | /* sleep.c 2 | */ 3 | /* copyright 1991, 1993, 1995, 1999 John B. Roll jr. 4 | */ 5 | 6 | 7 | #include "xos.h" 8 | #include 9 | 10 | long 11 | SAOSleep (x) 12 | int x; 13 | { 14 | time_t then; 15 | time_t here; 16 | 17 | time (&here); 18 | then = here + x; 19 | 20 | while (here < then) 21 | time (&here); 22 | } 23 | 24 | void 25 | SAOusleep (t) 26 | double t; 27 | { 28 | struct timeval timeout; 29 | 30 | timeout.tv_sec = (int) t; 31 | timeout.tv_usec = (int) ((t - timeout.tv_sec) * 1000000); 32 | 33 | select (0, NULL, NULL, NULL, &timeout); 34 | } 35 | -------------------------------------------------------------------------------- /src/camd/si8821/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = si8821.h si_app.h 2 | -------------------------------------------------------------------------------- /src/camd/sxccd/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = sxccdusb.h 2 | 3 | if LIBUSB1 4 | noinst_LIBRARIES = libsxccdusb.a 5 | 6 | libsxccdusb_a_SOURCES = sxccdusb.cpp 7 | else 8 | EXTRA_DIST = sxccdusb.cpp 9 | endif 10 | -------------------------------------------------------------------------------- /src/camd/urvc2/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = urvc.h 2 | 3 | if SUNCYGMAC 4 | EXTRA_DIST = io.c micro.c st237.c trk.c ccd.c sexif.c st7.c tools.c 5 | else 6 | if ARMCPU 7 | EXTRA_DIST = io.c micro.c st237.c trk.c ccd.c sexif.c st7.c tools.c 8 | else 9 | noinst_LIBRARIES = liburvc2.a 10 | 11 | liburvc2_a_SOURCES = io.c micro.c st237.c trk.c ccd.c sexif.c st7.c tools.c 12 | liburvc2_a_CFLAGS = -O3 ${CFITSIO_CFLAGS} -I$(READLINE) -Wall -Wshadow -g -I../../../include #-DDEBUG 13 | endif 14 | endif 15 | -------------------------------------------------------------------------------- /src/catd/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = rts2_gsc 2 | 3 | LDADD = -L../../lib/rts2 -lrts2 @LIB_NOVA@ 4 | AM_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 5 | 6 | rts2_gsc_SOURCES = gsc.cpp 7 | -------------------------------------------------------------------------------- /src/centrald/Makefile.am: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | 3 | bin_PROGRAMS = rts2-centrald rts2-state rts2-moodd 4 | 5 | noinst_HEADERS = centrald.h 6 | 7 | rts2_centrald_SOURCES = centrald.cpp 8 | rts2_centrald_LDADD = -L../../lib/rts2 -lrts2 @LIB_NOVA@ 9 | rts2_centrald_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 10 | 11 | rts2_moodd_SOURCES = moodd.cpp 12 | rts2_moodd_LDADD = -L../../lib/rts2 -lrts2 @LIB_NOVA@ 13 | rts2_moodd_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 14 | 15 | rts2_state_SOURCES = stateapp.cpp 16 | rts2_state_LDADD = -L../../lib/rts2 -lrts2 @LIB_NOVA@ 17 | rts2_state_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 18 | -------------------------------------------------------------------------------- /src/db/plan.txt: -------------------------------------------------------------------------------- 1 | 1001 2011-01-17T00:40 2 | 1001 2011-01-17T00:00 +300 3 | 1000 2011-01-17T00:20 4 | -------------------------------------------------------------------------------- /src/db/rts2-imageinfo: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | DB=`grep "^name.*=" /etc/rts2/rts2.ini | sed -e 's/^.*= *//' | sed -e 's/ *$//' | sed -e 's/"//'` 4 | TARGET=$1 5 | 6 | if [ "x$TARGET" == "x" ]; then 7 | echo "You have to specify target id!" 8 | exit 1 9 | fi 10 | 11 | psql $DB -c "select images.* from images, observations where observations.obs_id = images.obs_id and observations.tar_id=$TARGET order by img_date asc" 12 | -------------------------------------------------------------------------------- /src/db/skybot/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = rts2skybottarget.h 2 | noinst_DATA = skybot.wsdl typemap.dat 3 | 4 | if GSOAP 5 | noinst_LIBRARIES = libskybot.a 6 | 7 | SOAPHEADER=skybot.h 8 | SOAP_CPP_CLIENT = soapC.cpp soapClient.cpp 9 | SOAP_CPP_SERVER = soapServerLib.cpp 10 | SOAP_CPP_SRC=$(SOAP_CPP_CLIENT) $(SOAP_CPP_SERVER) 11 | 12 | skybot.h: skybot.wsdl typemap.dat 13 | wsdl2h -s $< -o $@ 14 | 15 | soapC.cpp: skybot.h 16 | @SOAP@ $< 17 | 18 | libskybot_a_SOURCES = $(SOAP_CPP_CLIENT) rts2skybottarget.cpp 19 | libskybot_a_CXXFLAGS = @LIB_GSOAP_CFLAGS@ 20 | 21 | CLEANFILES = $(SOAP_CPP_SRC) *.req.xml *.res.xml *.nsmap *.xsd *Proxy\.h $(SOAPHEADER) 22 | 23 | endif 24 | -------------------------------------------------------------------------------- /src/db/skybot/rts2skybottarget.cpp: -------------------------------------------------------------------------------- 1 | #include "SkyBoTBinding.nsmap" 2 | #include "soapSkyBoTBindingProxy.h" 3 | 4 | #include 5 | 6 | #include "rts2skybottarget.h" 7 | 8 | using namespace std; 9 | 10 | Rts2SkyBoTTarget::Rts2SkyBoTTarget (const char *in_name): 11 | EllTarget () 12 | { 13 | setTargetName (in_name); 14 | } 15 | 16 | 17 | int 18 | Rts2SkyBoTTarget::load () 19 | { 20 | SkyBoTBinding *bind = new SkyBoTBinding(); 21 | skybot__skybotresolverRequest *skybot_req = new skybot__skybotresolverRequest (); 22 | skybot__skybotresolverResponse skybot_res; 23 | 24 | skybot_req->name = std::string(getTargetName()); 25 | 26 | bind->skybot__skybotresolver (skybot_req, skybot_res); 27 | if (bind->soap->error != SOAP_OK) 28 | { 29 | cerr << "Cannot get coordinates for " << getTargetName () << endl; 30 | soap_print_fault (bind->soap, stderr); 31 | delete skybot_req; 32 | delete bind; 33 | return -1; 34 | } 35 | cout << "Skybot response for '" << getTargetName () << "': " << endl 36 | << "***************************" << endl 37 | << skybot_res.result << endl << "***************************" << endl; 38 | 39 | delete skybot_req; 40 | delete bind; 41 | 42 | return 0; 43 | } 44 | -------------------------------------------------------------------------------- /src/db/skybot/rts2skybottarget.h: -------------------------------------------------------------------------------- 1 | #ifndef __RTS2__SKYBOTTARGET__ 2 | #define __RTS2__SKYBOTTARGET__ 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | #include "../../utilsdb/target.h" 9 | 10 | /*! 11 | * Holds information gathered from Simbad about target with given name 12 | * or around given location. 13 | */ 14 | 15 | class Rts2SkyBoTTarget:public EllTarget 16 | { 17 | public: 18 | Rts2SkyBoTTarget (const char *in_name); 19 | 20 | virtual int load (); 21 | }; 22 | #endif /* !__RTS2__SKYBOTTARGET__ */ 23 | -------------------------------------------------------------------------------- /src/dome/zelio/Makefile.am: -------------------------------------------------------------------------------- 1 | CLEANFILES = html man 2 | 3 | EXTRA_DIST = roof_b1a.zm2 roof_b1b.zm2 roof_b2.zm2 roof_fram.zm2 roof_galicie2.zm2 roof_simple.zm2 roof_watcher.zm2 roof.zm2 roof.desc 4 | -------------------------------------------------------------------------------- /src/dome/zelio/roof.zm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/dome/zelio/roof.zm2 -------------------------------------------------------------------------------- /src/dome/zelio/roof_b1a.zm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/dome/zelio/roof_b1a.zm2 -------------------------------------------------------------------------------- /src/dome/zelio/roof_b1b.zm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/dome/zelio/roof_b1b.zm2 -------------------------------------------------------------------------------- /src/dome/zelio/roof_b2.zm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/dome/zelio/roof_b2.zm2 -------------------------------------------------------------------------------- /src/dome/zelio/roof_chase.zm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/dome/zelio/roof_chase.zm2 -------------------------------------------------------------------------------- /src/dome/zelio/roof_fram.zm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/dome/zelio/roof_fram.zm2 -------------------------------------------------------------------------------- /src/dome/zelio/roof_galicie2.zm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/dome/zelio/roof_galicie2.zm2 -------------------------------------------------------------------------------- /src/dome/zelio/roof_simple.zm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/dome/zelio/roof_simple.zm2 -------------------------------------------------------------------------------- /src/dome/zelio/roof_watcher.zm2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/dome/zelio/roof_watcher.zm2 -------------------------------------------------------------------------------- /src/focusc/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = rts2-focusc rts2-foctest 2 | 3 | noinst_HEADERS = focusclient.h xfocusc.h xfitsimage.h 4 | noinst_LIBRARIES = libfocusclient.a 5 | 6 | libfocusclient_a_SOURCES = focusclient.cpp 7 | 8 | AM_CXXFLAGS = @NOVA_CFLAGS@ @CFITSIO_CFLAGS@ @MAGIC_CFLAGS@ @NCURSESW_CFLAGS@ -I../../include 9 | 10 | rts2_focusc_SOURCES = focusc.cpp 11 | rts2_focusc_LDADD = libfocusclient.a -L../../lib/rts2fits -lrts2image -L../../lib/rts2 -lrts2 @LIB_M@ @CFITSIO_LIBS@ @LIB_NOVA@ @MAGIC_LIBS@ @NCURSESW_LIBS@ 12 | 13 | rts2_foctest_SOURCES = foctest.cpp 14 | rts2_foctest_LDADD = -L../../lib/rts2fits -lrts2image -L../../lib/rts2 -lrts2 @CFITSIO_LIBS@ @LIB_M@ @LIB_NOVA@ @MAGIC_LIBS@ 15 | 16 | if XFOCUSC 17 | bin_PROGRAMS += rts2-xfocusc 18 | rts2_xfocusc_SOURCES = xfocusc.cpp xfitsimage.cpp 19 | rts2_xfocusc_LDADD = libfocusclient.a -L../../lib/rts2fits -lrts2image -L../../lib/rts2 -lrts2 @X_LIBS@ @X_CFLAGS@ -lX11 @LIB_M@ @CFITSIO_LIBS@ @LIB_NOVA@ @MAGIC_LIBS@ @NCURSESW_LIBS@ 20 | endif 21 | -------------------------------------------------------------------------------- /src/httpd/hd.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | import io 4 | import sys 5 | 6 | f = open(sys.argv[1],'r') 7 | a = f.read() 8 | for x in a: 9 | sys.stdout.write('\\x%x' % (ord(x))) 10 | -------------------------------------------------------------------------------- /src/logger/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = rts2-logger rts2-logd 2 | 3 | noinst_HEADERS = loggerbase.h 4 | 5 | EXTRA_DIST = loggerbase.cpp 6 | 7 | AM_CXXFLAGS=@NOVA_CFLAGS@ -I../../include 8 | 9 | LDADD = loggerbase.o -L../../lib/rts2 -lrts2 @LIB_NOVA@ @LIB_M@ 10 | 11 | rts2_logger_SOURCES = logger.cpp 12 | 13 | rts2_logd_SOURCES = logd.cpp 14 | -------------------------------------------------------------------------------- /src/logger/test.log: -------------------------------------------------------------------------------- 1 | SD 1 test_stat test_minmax 2 | -------------------------------------------------------------------------------- /src/mirror/Makefile.am: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | 3 | bin_PROGRAMS = rts2-mirror-dummy 4 | 5 | EXTRA_DIST = 6 | 7 | LDADD = -L../../lib/rts2 -lrts2 @LIB_NOVA@ 8 | AM_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 9 | 10 | if SUNOS 11 | EXTRA_DIST += fram.cpp 12 | else 13 | 14 | bin_PROGRAMS += rts2-mirror-fram 15 | 16 | rts2_mirror_fram_SOURCES = fram.cpp 17 | endif 18 | 19 | rts2_mirror_dummy_SOURCES = dummy.cpp 20 | -------------------------------------------------------------------------------- /src/mirror/dummy.cpp: -------------------------------------------------------------------------------- 1 | #include "mirror.h" 2 | #include 3 | 4 | namespace rts2mirror 5 | { 6 | 7 | class Dummy:public Mirror 8 | { 9 | public: 10 | Dummy (int in_argc, char **in_argv):Mirror (in_argc, in_argv) 11 | { 12 | addPosition ("A"); 13 | addPosition ("B"); 14 | addPosition ("C"); 15 | } 16 | virtual int movePosition (int pos) 17 | { 18 | return 0; 19 | } 20 | virtual int isMoving () 21 | { 22 | return -2; 23 | } 24 | }; 25 | 26 | } 27 | 28 | using namespace rts2mirror; 29 | 30 | int main (int argc, char **argv) 31 | { 32 | Dummy device = Dummy (argc, argv); 33 | return device.run (); 34 | } 35 | -------------------------------------------------------------------------------- /src/monitor/utf8chars.h: -------------------------------------------------------------------------------- 1 | #include 2 | #include 3 | #include 4 | 5 | namespace rts2ncurses { 6 | 7 | class Utf8Chars { 8 | private: 9 | std::unordered_map charMap; 10 | 11 | public: 12 | Utf8Chars() { 13 | initUtf8(); 14 | } 15 | 16 | void initUtf8() { 17 | setChar("HLINE", L"\u2500", A_NORMAL); 18 | setChar("VLINE", L"\u2502", A_NORMAL); 19 | setChar("ULCORNER", L"\u250c", A_NORMAL); 20 | setChar("URCORNER", L"\u2510", A_NORMAL); 21 | setChar("LLCORNER", L"\u2514", A_NORMAL); 22 | setChar("LRCORNER", L"\u2518", A_NORMAL); 23 | setChar("BULLET", L"\u2022", A_NORMAL); 24 | setChar("DIAMOND", L"\u2666", A_NORMAL); 25 | setChar("BTEE", L"\u2534", A_NORMAL); 26 | setChar("TTEE", L"\u252c", A_NORMAL); 27 | } 28 | 29 | void setChar(const std::string& name, const wchar_t* wch, attr_t attr) { 30 | cchar_t ch; 31 | setcchar(&ch, wch, attr, 0, NULL); 32 | charMap[name] = ch; 33 | } 34 | 35 | const cchar_t& getChar(const std::string& name) { 36 | return charMap.at(name); 37 | } 38 | }; 39 | } 40 | -------------------------------------------------------------------------------- /src/multidevd/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = rts2-sitech-focmirror rts2-apm-multidev 2 | 3 | noinst_HEADERS = sitech-multidev.h sitech-focuser.h sitech-mirror.h apm-filter.h apm-aux.h apm-multidev.h 4 | 5 | LDADD = -L../../lib/rts2 -lrts2 @LIB_NOVA@ 6 | AM_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 7 | 8 | rts2_sitech_focmirror_SOURCES = sitech-multidev.cpp sitech-focuser.cpp sitech-mirror.cpp 9 | 10 | rts2_apm_multidev_SOURCES = apm-multidev.cpp apm-filter.cpp apm-aux.cpp 11 | -------------------------------------------------------------------------------- /src/pgsql/Makefile.am: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | 3 | instdir = @PG_CONFIG_SERVER_LIBS@ 4 | 5 | AM_CFLAGS = @LIBPG_SERVER_CFLAGS@ @LIBPG_CFLAGS@ -I../../include 6 | 7 | if PGSQL 8 | 9 | inst_LTLIBRARIES = pg_astrolib.la pg_wcs2.la 10 | 11 | pg_astrolib_la_SOURCES = pg_astrolib.c 12 | pg_astrolib_la_LDFLAGS = -module @LIB_NOVA@ @LIB_M@ 13 | 14 | pg_wcs2_la_SOURCES = pg_wcs2.c 15 | pg_wcs2_la_LDFLAGS = -module @LIB_M@ 16 | 17 | if LIBWCS 18 | 19 | inst_LTLIBRARIES += pg_wcs.la 20 | 21 | pg_wcs_la_SOURCES = pg_wcs.c 22 | pg_wcs_la_LDFLAGS = -module @LIB_M@ @LIBWCS_LDFLAGS@ 23 | pg_wcs_la_CFLAGS = ${AM_CFLAGS} @LIBWCS_CFLAGS@ 24 | 25 | AM_CFLAGS += @LIBWCS_CFLAGS@ 26 | 27 | endif 28 | 29 | endif 30 | -------------------------------------------------------------------------------- /src/phot/Makefile.am: -------------------------------------------------------------------------------- 1 | # $Id$ 2 | 3 | bin_PROGRAMS = rts2-phot-ssp5 rts2-phot-dummy 4 | 5 | noinst_HEADERS = kernel/phot.h 6 | 7 | LDADD = -lrts2 -L../../lib/rts2 @LIB_NOVA@ 8 | 9 | AM_CXXFLAGS=@NOVA_CFLAGS@ -I../../include 10 | 11 | if SUNOS 12 | EXTRA_DIST = phot_optec.cpp 13 | else 14 | bin_PROGRAMS += rts2-phot-optec 15 | rts2_phot_optec_SOURCES = phot_optec.cpp 16 | endif 17 | 18 | rts2_phot_ssp5_SOURCES = ssp5.cpp 19 | 20 | rts2_phot_dummy_SOURCES = dummy.cpp 21 | -------------------------------------------------------------------------------- /src/phot/kernel/Makefile: -------------------------------------------------------------------------------- 1 | # That makefile is used for 2.6.x kernels. Should work on 2.4.x as 2 | # well 3 | obj-m := phot.o 4 | 5 | all: 6 | make modules -C /lib/modules/`uname -r`/build SUBDIRS=`pwd` 7 | 8 | clean: 9 | rm -f *.o *.ko 10 | -------------------------------------------------------------------------------- /src/phot/kernel/phot.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/src/phot/kernel/phot.c -------------------------------------------------------------------------------- /src/plan/convert_pfile: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cat /home/petr/pfile | awk 'BEGIN {FS=":"} { print "INSERT INTO targets (tar_id, tar_ra, tar_dec, tar_name) VALUES ("$1", "$3", "$2", '\''"$10"'\'');"}'|psql -d stars 4 | -------------------------------------------------------------------------------- /src/plan/marchive.cpp: -------------------------------------------------------------------------------- 1 | #include "rts2fits/appdbimage.h" 2 | #include "rts2fits/imagedb.h" 3 | #include "configuration.h" 4 | 5 | #include 6 | 7 | #include 8 | 9 | class Rts2MoveArchive:public rts2image::AppDbImage 10 | { 11 | public: 12 | Rts2MoveArchive (int in_argc, char **in_argv):rts2image::AppDbImage (in_argc, in_argv, true) 13 | { 14 | rts2core::Configuration::instance (); 15 | } 16 | 17 | protected: 18 | virtual int processImage (rts2image::ImageDb * image) 19 | { 20 | double val; 21 | int ret; 22 | std::cout << "Processing " << image->getFileName () << ".."; 23 | try 24 | { 25 | image->getValue ("CRVAL1", val); 26 | ret = image->toArchive (); 27 | std::cout << (ret ? "failed (cannot move?)" : "archive") << std::endl; 28 | } 29 | catch (rts2core::Error &er) 30 | { 31 | ret = image->toTrash (); 32 | std::cout << (ret ? "failed (cannot move?)" : "trash") << std::endl; 33 | } 34 | return 0; 35 | } 36 | }; 37 | 38 | int main (int argc, char **argv) 39 | { 40 | Rts2MoveArchive app = Rts2MoveArchive (argc, argv); 41 | return app.run (); 42 | } 43 | -------------------------------------------------------------------------------- /src/plan/rts2-mkdirs: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | if [ $USER != 'root' ]; then 3 | echo "Need to be run under root!" 4 | exit 1 5 | fi 6 | 7 | mkdir /darks 8 | mkdir /images 9 | mkdir /flats 10 | mkdir /trash 11 | chgrp -R images /darks /images /flats /trash 12 | chmod g+w /darks /images /flats /trash 13 | -------------------------------------------------------------------------------- /src/plan/spiraltest.cpp: -------------------------------------------------------------------------------- 1 | #include "rts2spiral.h" 2 | 3 | #include 4 | #include 5 | #include 6 | #include 7 | 8 | void 9 | endW (int sig) 10 | { 11 | erase (); 12 | refresh (); 13 | 14 | nocbreak (); 15 | echo (); 16 | endwin (); 17 | 18 | exit (0); 19 | } 20 | 21 | 22 | int 23 | main (int argc, char **argv) 24 | { 25 | int step; 26 | short next_x, next_y; 27 | int x, y; 28 | Rts2Spiral *spiral; 29 | 30 | initscr (); 31 | cbreak (); 32 | keypad (stdscr, TRUE); 33 | noecho (); 34 | 35 | signal (SIGINT, endW); 36 | signal (SIGTERM, endW); 37 | 38 | y = LINES / 2; 39 | x = COLS / 6; 40 | 41 | spiral = new Rts2Spiral (); 42 | 43 | for (step = 0; step < 100; step++) 44 | { 45 | mvwprintw (stdscr, y, x * 3, "%i", step); 46 | spiral->getNextStep (next_x, next_y); 47 | refresh (); 48 | sleep (1); 49 | x += next_x; 50 | y += next_y; 51 | } 52 | 53 | endW (0); 54 | 55 | return 0; 56 | } 57 | -------------------------------------------------------------------------------- /src/plan/test_gps.sql: -------------------------------------------------------------------------------- 1 | COPY targets (tar_id, type_id, tar_name, tar_ra, tar_dec, tar_comment, tar_enabled, tar_priority, tar_bonus, tar_bonus_time) FROM stdin; 2 | 200 S Test 0 0 20 Test 2 t 10 0 \N 3 | 201 S Test 1 20 20 Test 2 t 10 0 \N 4 | \. 5 | 6 | -------------------------------------------------------------------------------- /src/pluto/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_PROGRAMS = obs_test obs_test2 test_sat sat_id test2 out_comp test_out 2 | 3 | noinst_DATA = obs_test.txt 4 | 5 | AM_CXXFLAGS=-I../../include @NOVA_CFLAGS@ 6 | LDADD = -L../../lib/pluto -lpluto @LIB_M@ @LIB_NOVA@ 7 | 8 | obs_test_SOURCES = obs_test.cpp 9 | 10 | obs_test2_SOURCES = obs_test2.cpp 11 | 12 | test_sat_SOURCES = test_sat.cpp 13 | 14 | sat_id_SOURCES = sat_id.cpp 15 | 16 | test2_SOURCES = test2.cpp 17 | 18 | out_comp_SOURCES = out_comp.cpp 19 | 20 | test_out_SOURCES = test_out.cpp 21 | -------------------------------------------------------------------------------- /src/pluto/obs_test.txt: -------------------------------------------------------------------------------- 1 | # Input file for 'obs_test' 2 | # Set up desired lat/lon/ht in meters/JD, specify a TLE, and 3 | # the topocentric RA/dec/distance will be shown. 4 | lat 44.01 5 | lon -69.9 6 | # Western longitudes are negative, eastern positive 7 | ht 100 8 | JD 2452541.5 /* 24 Sep 2002 0h UT */ 9 | ISS 10 | 1 25544U 98067A 02256.70033192 .00045618 00000-0 57184-3 0 1499 11 | 2 25544 51.6396 328.6851 0018421 253.2171 244.7656 15.59086742217834 12 | 13 | # Above should give RA = 350.1615 deg, dec = -24.0241, dist = 1867.97542 km 14 | 15 | # Now compute a second, higher satellite for the same place/time: 16 | Cosmos 1966 Rk 17 | 1 19448U 88076D 02255.52918163 -.00000002 00000-0 10000-3 0 4873 18 | 2 19448 65.7943 338.1906 7142558 193.4853 125.7046 2.04085818104610 19 | 20 | # Above should give RA = 3.5743, dec = 30.4293, dist = 32114.83063 km 21 | -------------------------------------------------------------------------------- /src/redis/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = redis.h 2 | 3 | if HIREDIS 4 | 5 | bin_PROGRAMS = rts2-redis 6 | AM_CXXFLAGS = -std=c++11 -I../../include @LIBXML_CFLAGS@ @MAGIC_CFLAGS@ @HIREDIS_CFLAGS@ 7 | rts2_redis_SOURCES = redis.cpp 8 | 9 | if PGSQL 10 | rts2_redis_LDADD = ../../lib/rts2fits/librts2imagedb.la ../../lib/rts2db/librts2db.la @HIREDIS_LIBS@ 11 | else 12 | rts2_redis_LDADD = ../../lib/rts2fits/llibrts2image.la ../../lib/rts2/librts2.la @HIREDIS_LIBS@ 13 | endif 14 | 15 | else 16 | EXTRA_DIST = redis.cpp 17 | endif 18 | -------------------------------------------------------------------------------- /src/rotad/Makefile.am: -------------------------------------------------------------------------------- 1 | bin_PROGRAMS = rts2-rotad-dummy rts2-rotad-pyxis rts2-rotad-sitech rts2-rotad-pwiirf90r 2 | 3 | noinst_HEADERS = sitech-rotator.h sitech-multi.h 4 | 5 | LDADD = -L../../lib/rts2 -lrts2 @LIB_NOVA@ 6 | AM_CXXFLAGS = @NOVA_CFLAGS@ -I../../include 7 | 8 | rts2_rotad_dummy_SOURCES = dummy.cpp 9 | rts2_rotad_pyxis_SOURCES = pyxis.cpp 10 | rts2_rotad_sitech_SOURCES = sitech-multi.cpp sitech-rotator.cpp 11 | rts2_rotad_pwiirf90r_SOURCES = pwiirf90r.cpp 12 | 13 | -------------------------------------------------------------------------------- /src/scheduler/Makefile.am: -------------------------------------------------------------------------------- 1 | if PGSQL 2 | 3 | bin_PROGRAMS = rts2-scheduler 4 | 5 | rts2_scheduler_SOURCES = scheduler.cpp 6 | rts2_scheduler_CXXFLAGS = @LIBXML_CFLAGS@ @LIBPG_CFLAGS@ @MAGIC_CFLAGS@ @CFITSIO_CFLAGS@ -I../../include 7 | rts2_scheduler_LDADD = -L../../lib/rts2scheduler -lrts2scheduler -L../../lib/rts2script -lrts2script -L../../lib/rts2db -lrts2db -L../../lib/pluto -lpluto -L../../lib/xmlrpc++ -lrts2xmlrpc -L../../lib/rts2fits -lrts2imagedb -L../../lib/rts2 -lrts2 @LIBXML_LIBS@ @LIBPG_LIBS@ @LIB_ECPG@ @LIB_CRYPT@ @LIB_NOVA@ @CFITSIO_LIBS@ @LIB_M@ @MAGIC_LIBS@ 8 | 9 | endif 10 | -------------------------------------------------------------------------------- /src/sql/Makefile.am: -------------------------------------------------------------------------------- 1 | sqldatadir = ${datadir}/doc/@PACKAGE@/sql 2 | 3 | SUBDIRS = auger data create drop update telma phot bb 4 | 5 | dist_sqldata_DATA = grant.sql \ 6 | README 7 | 8 | dist_sqldata_SCRIPTS = rts2-builddb rts2-bbbuilddb 9 | 10 | EXTRA_DIST = rts2-configdb 11 | 12 | bin_SCRIPTS = rts2-configdb 13 | -------------------------------------------------------------------------------- /src/sql/auger/Makefile.am: -------------------------------------------------------------------------------- 1 | sqldatadir = ${datadir}/doc/@PACKAGE@/sql/auger 2 | 3 | dist_sqldata_DATA = \ 4 | rel_0_6_0.sql \ 5 | rel_0_6_2.sql \ 6 | rel_0_8_0.sql \ 7 | rel_0_8_1.sql \ 8 | stat.sql 9 | -------------------------------------------------------------------------------- /src/sql/auger/rel_0_6_0.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE auger ( 2 | auger_t3id integer PRIMARY KEY NOT NULL, 3 | auger_date timestamp NOT NULL, 4 | auger_npixels integer NOT NULL, 5 | auger_sdpphi float8 NOT NULL, 6 | auger_sdptheta float8 NOT NULL, 7 | auger_sdpangle float8 NOT NULL 8 | ); 9 | 10 | CREATE INDEX auger_date ON auger (auger_date); 11 | 12 | COPY types FROM stdin; 13 | A Auger particle shower 14 | \. 15 | 16 | COPY targets (tar_id, type_id, tar_name, tar_ra, tar_dec, tar_comment, tar_enabled, tar_priority, tar_bonus, tar_bonus_time) FROM stdin; 17 | 12 A Auger particle shower 0 0 Catching hibrid showers f 100 0 \N 18 | \. 19 | 20 | 21 | GRANT ALL ON auger TO GROUP observers; 22 | GRANT ALL ON auger_observation TO GROUP observers; 23 | -------------------------------------------------------------------------------- /src/sql/auger/rel_0_6_2.sql: -------------------------------------------------------------------------------- 1 | ALTER TABLE auger ADD COLUMN auger_ra float8; 2 | ALTER TABLE auger ADD COLUMN auger_dec float8; 3 | 4 | ALTER TABLE auger ALTER auger_ra SET NOT NULL; 5 | ALTER TABLE auger ALTER auger_dec SET NOT NULL; 6 | 7 | CREATE SEQUENCE auger_t3id; 8 | 9 | -- relation between observations and auger targets is kept in this table 10 | CREATE TABLE auger_observation ( 11 | auger_t3id integer NOT NULL REFERENCES auger (auger_t3id), 12 | obs_id integer NOT NULL REFERENCES observations (obs_id), 13 | CONSTRAINT auger_obs_prim_key PRIMARY KEY (auger_t3id, obs_id) 14 | ); 15 | 16 | GRANT all on auger_t3id to group observers; 17 | -------------------------------------------------------------------------------- /src/sql/auger/rel_0_8_1.sql: -------------------------------------------------------------------------------- 1 | --- add columns for new variables 2 | 3 | ALTER TABLE auger ADD COLUMN DGHXmax1 float8; 4 | ALTER TABLE auger ADD COLUMN DGHXmax2 float8; 5 | ALTER TABLE auger ADD COLUMN DGHChi2Improv float8; 6 | -------------------------------------------------------------------------------- /src/sql/auger/stat.sql: -------------------------------------------------------------------------------- 1 | -- Prints statistics of Auger observations. 2 | -- 3 | -- You probably want to run this as 4 | -- 5 | -- psql -A -f stat.sql -o test.dat -F, stars 6 | -- 7 | -- Petr Kubanek, Institute of Physics 8 | 9 | select auger.auger_t3id,eye,run,event,energy,x_max,dghchi2improv,auger_observation.obs_id,auger.auger_date,obs_slew,obs_start,obs_end,cut,obs_images(auger_observation.obs_id,'WF') as wf,obs_images_astr(auger_observation.obs_id,'WF') as wf_astro,obs_images(auger_observation.obs_id,'NF') as nf,obs_images_astr(auger_observation.obs_id,'NF') as nf_astr,obs_images(auger_observation.obs_id,'NF2') as nf2,obs_images_astr(auger_observation.obs_id,'NF2') as nf2_astr from auger,auger_observation,observations where auger.auger_t3id = auger_observation.auger_t3id and auger_observation.obs_id = observations.obs_id order by auger.auger_t3id asc; 10 | -------------------------------------------------------------------------------- /src/sql/bb/Makefile.am: -------------------------------------------------------------------------------- 1 | sqldatadir = ${datadir}/doc/@PACKAGE@/sql/bb 2 | 3 | dist_sqldata_DATA = create.sql grant.sql 4 | -------------------------------------------------------------------------------- /src/sql/bb/grant.sql: -------------------------------------------------------------------------------- 1 | GRANT ALL ON observatories TO observers; 2 | GRANT ALL ON targets_observatories TO observers; 3 | GRANT ALL ON observatory_observations TO observers; 4 | GRANT ALL ON bb_schedules to observers; 5 | GRANT ALL ON observatory_schedules to observers; 6 | 7 | GRANT ALL ON bb_schedule_id to observers; 8 | -------------------------------------------------------------------------------- /src/sql/blanks/README: -------------------------------------------------------------------------------- 1 | This directory contains data for flat fied & script which produced entry found in ../init_data.sql 2 | -------------------------------------------------------------------------------- /src/sql/blanks/trans.pl: -------------------------------------------------------------------------------- 1 | #!/usr/bin/perl -w 2 | 3 | sub get_dec 4 | { 5 | my @b = split (" ", shift); 6 | my $ret = abs ($b[0]) + $b[1] / 60.0 + $b[2] / 3600.0; 7 | if ($b[0] < 0) 8 | { 9 | return $ret * -1; 10 | } 11 | return $ret; 12 | } 13 | 14 | sub get_ra 15 | { 16 | return get_dec (shift) * 15.0; 17 | } 18 | 19 | my $line = 0; 20 | 21 | while (<>) 22 | { 23 | chomp; 24 | my @a = split ("\t", $_); 25 | $a[1] = get_ra ($a[1]); 26 | $a[2] = get_dec ($a[2]); 27 | print join ("\t", $line + 20, 'f', @a, "t", "1", "0", '\N') . "\n"; 28 | $line++ 29 | } 30 | -------------------------------------------------------------------------------- /src/sql/create/Makefile.am: -------------------------------------------------------------------------------- 1 | sqldatadir = ${datadir}/doc/@PACKAGE@/sql/create 2 | 3 | dist_sqldata_DATA = language.sql \ 4 | typ_wcs.sql \ 5 | typ_wcs2.sql \ 6 | functions.sql \ 7 | tables.sql \ 8 | views.sql 9 | 10 | -------------------------------------------------------------------------------- /src/sql/create/functions.sql: -------------------------------------------------------------------------------- 1 | CREATE OR REPLACE FUNCTION night_num (timestamp with time zone) RETURNS double precision AS 2 | 'SELECT FLOOR((EXTRACT(EPOCH FROM $1) - 43200) / 86400)' LANGUAGE 'sql'; 3 | -------------------------------------------------------------------------------- /src/sql/create/language.sql: -------------------------------------------------------------------------------- 1 | -- creates PLPGSQL language 2 | 3 | CREATE FUNCTION plpgsql_call_handler () RETURNS LANGUAGE_HANDLER AS 4 | '$libdir/plpgsql' LANGUAGE C; 5 | 6 | CREATE TRUSTED PROCEDURAL LANGUAGE plpgsql 7 | HANDLER plpgsql_call_handler; 8 | -------------------------------------------------------------------------------- /src/sql/create/typ_wcs.sql: -------------------------------------------------------------------------------- 1 | CREATE TYPE wcs; 2 | 3 | CREATE FUNCTION wcs_in (cstring) -- OR REPLACE 4 | RETURNS wcs AS 'pg_wcs.so','wcs_in' LANGUAGE 'c'; 5 | 6 | CREATE FUNCTION wcs_out (wcs) -- OR REPLACE 7 | RETURNS cstring AS 'pg_wcs.so', 'wcs_out' LANGUAGE 'c'; 8 | 9 | CREATE TYPE wcs ( 10 | internallength = 220, -- zjisti si laskave presnou velikost, az to budes mit hotove 11 | input = wcs_in, 12 | output = wcs_out 13 | ); 14 | -------------------------------------------------------------------------------- /src/sql/data/Makefile.am: -------------------------------------------------------------------------------- 1 | sqldatadir = ${datadir}/doc/@PACKAGE@/sql/data 2 | 3 | dist_sqldata_DATA = init.sql targets.sql dummy.sql landolt.sql planets.sql flats_iac.sql 4 | -------------------------------------------------------------------------------- /src/sql/data/dummy.sql: -------------------------------------------------------------------------------- 1 | -- load tables so dummy environment can be run, with executor writing images to the database 2 | 3 | insert into mounts values ('T0', 10, 15, 1000, 'Dummy mount'); 4 | 5 | insert into cameras values ('C0', 'dummy camera'); 6 | 7 | -- filters 8 | 9 | COPY filters (filter_id, standart_name, medium_wl, width) FROM stdin; 10 | 0 AA 800 10 11 | 1 B 810 20 12 | 2 C 830 5 13 | 3 D 750 15 14 | 4 E 720 25 15 | \. 16 | -------------------------------------------------------------------------------- /src/sql/data/init.sql: -------------------------------------------------------------------------------- 1 | COPY types FROM stdin; 2 | O Opportunity targets 3 | G Gamma Ray Burst 4 | S Sky survey (new one) 5 | E Elliptical targets 6 | P Galatic Plate Scan 7 | H HETE FOV 8 | t technical observation 9 | T terrestial (fixed ra+dec) target 10 | W Swift FOV 11 | I Integral FOV 12 | d Dark target 13 | f Flat target 14 | o fOcusing target 15 | m Modeling (have optional parameters in target_model) 16 | c Opportunity targets 17 | p Plan target 18 | L Planets 19 | \. 20 | 21 | COPY medias FROM stdin; 22 | 0 '/images' t 23 | \. 24 | -------------------------------------------------------------------------------- /src/sql/data/planets.sql: -------------------------------------------------------------------------------- 1 | -- importing planets is possible from version 0.7 up 2 | 3 | COPY targets (tar_id, type_id, tar_name, tar_ra, tar_dec, tar_comment, tar_enabled, tar_priority, tar_bonus, tar_bonus_time) FROM stdin; 4 | 190 L Sun 0 0 Sun (planet) t 0 0 \N 5 | 191 L Mercury 0 0 Mercury (planet) t 0 0 \N 6 | 192 L Venus 0 0 Venus (planet) t 0 0 \N 7 | 193 L Moon 0 0 Moon (Earth) t 0 0 \N 8 | 194 L Mars 0 0 Mars (planet) t 0 0 \N 9 | 195 L Jupiter 0 0 Jupiter (planet) t 0 0 \N 10 | 196 L Saturn 0 0 Saturn (planet) t 0 0 \N 11 | 197 L Uranus 0 0 Uran (planet) t 0 0 \N 12 | 198 L Neptune 0 0 Neptun (planet) t 0 0 \N 13 | 199 L Pluto 0 0 Pluto (planet) t 0 0 \N 14 | \. 15 | -------------------------------------------------------------------------------- /src/sql/data/targets.sql: -------------------------------------------------------------------------------- 1 | -- standart targets (tar_id < 100) 2 | 3 | COPY targets (tar_id, type_id, tar_name, tar_ra, tar_dec, tar_comment, tar_enabled, tar_priority, tar_bonus, tar_bonus_time) FROM stdin; 4 | 1 d Dark frames \N \N Used to produce darks t 0 0 \N 5 | 2 f Flat frames \N \N Used to produce flatfields t 0 0 \N 6 | 3 c Focusing frames \N \N Used to focusc cameras t 0 0 \N 7 | 4 m Default model \N \N Used to model get enought pictures for mount model t 0 0 \N 8 | 6 c Master calibration target \N \N Used to calibration frames t 0 0 \N 9 | 7 p Master plan \N \N Observe by plan t 1 0 \N 10 | 10 W Swift FOV \N \N Swift Field of View, based on GCN t 0 0 \N 11 | 11 I Integral FOV \N \N Integral Field of View, based on GCN t 0 0 \N 12 | \. 13 | 14 | COPY target_model (tar_id, alt_start, alt_stop, alt_step, az_start, az_stop, az_step, noise, step) FROM stdin; 15 | 4 40 80 20 0 360 20 4 0 16 | \. 17 | -------------------------------------------------------------------------------- /src/sql/drop/Makefile.am: -------------------------------------------------------------------------------- 1 | sqldatadir = ${datadir}/doc/@PACKAGE@/sql/drop 2 | 3 | dist_sqldata_DATA = typ_wcs.sql \ 4 | typ_wcs2.sql \ 5 | functions.sql \ 6 | tables.sql \ 7 | views.sql 8 | -------------------------------------------------------------------------------- /src/sql/drop/functions.sql: -------------------------------------------------------------------------------- 1 | DROP FUNCTION night_num (timestamp with time zone); 2 | 3 | DROP FUNCTION isinwcs (float8, float8, wcs); 4 | 5 | DROP FUNCTION imgrange (wcs); 6 | 7 | DROP FUNCTION imgpath(integer, integer, varchar(8), varchar(8), integer, integer, abstime); 8 | 9 | DROP FUNCTION img_fits_name (timestamp, integer); 10 | 11 | DROP FUNCTION dark_name(integer, integer, timestamp, integer, integer, varchar(8)); 12 | 13 | DROP FUNCTION ell_update (varchar (150), float4, float4, float4, float4, float4, float4, float8, float4, float4); 14 | -------------------------------------------------------------------------------- /src/sql/drop/tables.sql: -------------------------------------------------------------------------------- 1 | DROP TABLE terestial; 2 | DROP TABLE ell; 3 | DROP TABLE ot; 4 | DROP TABLE grb_gcn; 5 | DROP TABLE grb; 6 | DROP TABLE swift_observation; 7 | DROP TABLE swift; 8 | DROP TABLE target_model; 9 | DROP TABLE model_observation; 10 | DROP TABLE integral; 11 | DROP TABLE targets; 12 | DROP TABLE epoch; 13 | DROP TABLE types; 14 | DROP TABLE cameras; 15 | DROP TABLE mounts; 16 | DROP TABLE counters; 17 | DROP TABLE observations; 18 | DROP TABLE darks; 19 | DROP TABLE flats; 20 | DROP SEQUENCE tar_id; 21 | DROP SEQUENCE grb_tar_id; 22 | DROP SEQUENCE point_id; 23 | DROP TABLE medias; 24 | DROP TABLE images; 25 | DROP TABLE counts; 26 | DROP TABLE scripts; 27 | DROP SEQUENCE img_id; 28 | DROP SEQUENCE med_id; 29 | DROP TABLE users; 30 | DROP TABLE airmass_cal_images; 31 | DROP SEQUENCE obs_id; 32 | DROP VIEW observations_nights; 33 | DROP VIEW images_nights; 34 | -------------------------------------------------------------------------------- /src/sql/drop/typ_wcs.sql: -------------------------------------------------------------------------------- 1 | DROP TYPE wcs; -- CASCADE 2 | DROP FUNCTION wcs_in (cstring); 3 | DROP FUNCTION wcs_out (wcs); 4 | -------------------------------------------------------------------------------- /src/sql/drop/typ_wcs2.sql: -------------------------------------------------------------------------------- 1 | DROP TYPE wcs2; -- CASCADE 2 | DROP FUNCTION wcs2_in (cstring); 3 | DROP FUNCTION wcs2_out (wcs2); 4 | -------------------------------------------------------------------------------- /src/sql/drop/views.sql: -------------------------------------------------------------------------------- 1 | DROP VIEW targets_images; 2 | DROP VIEW targets_noimages; 3 | DROP VIEW targets_imgcount; 4 | DROP VIEW targets_enabled; 5 | DROP VIEW observations_images; 6 | DROP VIEW observations_imgcount; 7 | DROP VIEW observations_noimages; 8 | DROP VIEW observations_nights; 9 | DROP VIEW images_nights; 10 | DROP VIEW targets_counts; 11 | DROP VIEW images_path; 12 | -------------------------------------------------------------------------------- /src/sql/init_test.sql: -------------------------------------------------------------------------------- 1 | COPY users (usr_login, usr_passwd, usr_tmp, usr_email, usr_id) FROM stdin; 2 | petr test 1 petr@example.com 1 3 | alberto test 2 alberto@example.com 2 4 | mates test 3 mates@example.com 3 5 | \. 6 | 7 | COPY targets_users (tar_id, usr_id, event_mask) FROM stdin; 8 | 100 1 3 9 | 100 2 1 10 | 100 3 2 11 | \. 12 | -------------------------------------------------------------------------------- /src/sql/phot/Makefile.am: -------------------------------------------------------------------------------- 1 | sqldatadir = ${datadir}/doc/@PACKAGE@/sql/phot 2 | 3 | dist_sqldata_DATA = phot.sql 4 | -------------------------------------------------------------------------------- /src/sql/phot/phot.sql: -------------------------------------------------------------------------------- 1 | create table objects ( 2 | obj_id integer PRIMARY KEY, 3 | obj_ra float8 NOT NULL, 4 | obj_dec float8 NOT NULL, 5 | obj_gsc varchar(20) 6 | ); 7 | 8 | CREATE INDEX objects_ra on objects (obj_ra); 9 | CREATE INDEX objects_dec on objects (obj_dec); 10 | 11 | create table standards ( 12 | obj_id integer REFERENCES objects(obj_id), 13 | std_filter integer REFERENCES filters(filter_id), 14 | std_mag float NOT NULL, 15 | std_quality integer 16 | ); 17 | 18 | create table measurements ( 19 | obj_id integer REFERENCES objects(obj_id), 20 | obs_id integer NOT NULL, 21 | img_id integer NOT NULL, 22 | meas_airmass float NOT NULL, 23 | meas_x float NOT NULL, 24 | meas_x_err float, 25 | meas_y float NOT NULL, 26 | meas_y_err float, 27 | meas_ell float, 28 | meas_flux float NOT NULL, 29 | meas_flux_err float, 30 | meas_mag float NOT NULL, 31 | meas_mag_err float 32 | ); 33 | 34 | alter table measurements 35 | add constraint foreign_measurements 36 | foreign key (obs_id,img_id) REFERENCES images(obs_id,img_id); 37 | 38 | create sequence objects_obj_id; 39 | -------------------------------------------------------------------------------- /src/sql/telma/Makefile.am: -------------------------------------------------------------------------------- 1 | sqldatadir = ${datadir}/doc/@PACKAGE@/sql/telma 2 | 3 | dist_sqldata_DATA = users.sql 4 | -------------------------------------------------------------------------------- /src/sql/telma/users.sql: -------------------------------------------------------------------------------- 1 | -- list of countries for country 2 | 3 | CREATE TABLE countries ( 4 | country_id integer NOT NULL, 5 | country_name varchar(50), 6 | CONSTRAINT country_primary_key PRIMARY KEY (country_id) 7 | ); 8 | 9 | COPY countries (country_id, country_name) FROM stdin; 10 | 1 Espana 11 | 2 Unidos Estatos 12 | \. 13 | 14 | -- users table, which holds users extended details 15 | 16 | ALTER TABLE users ADD COLUMN birthday date; 17 | ALTER TABLE users ADD COLUMN birthplace varchar(50); 18 | ALTER TABLE users ADD COLUMN sex char; 19 | ALTER TABLE users ADD COLUMN cellphone varchar(15); 20 | ALTER TABLE users ADD COLUMN address varchar(200); 21 | ALTER TABLE users ADD COLUMN city varchar(50); 22 | ALTER TABLE users ADD COLUMN country integer REFERENCES (countries (country_id)); 23 | -------------------------------------------------------------------------------- /src/sql/update/Makefile.am: -------------------------------------------------------------------------------- 1 | sqldatadir = ${datadir}/doc/@PACKAGE@/sql/update 2 | 3 | dist_sqldata_DATA = rel_0_5_1.sql \ 4 | rel_0_5_2.sql \ 5 | rel_0_6_0.sql \ 6 | rel_0_6_1.sql \ 7 | rel_0_6_2.sql \ 8 | rel_0_7_0.sql \ 9 | rel_0_7_1.sql \ 10 | rel_0_7_4.sql \ 11 | rel_0_7_5.sql \ 12 | rel_0_8_0.sql \ 13 | rel_0_8_1.sql \ 14 | rel_0_9_3.sql \ 15 | rel_0_9_5.sql \ 16 | rel_0_9_6.sql \ 17 | rel_1_0_0.sql 18 | -------------------------------------------------------------------------------- /src/sql/update/rel_0_6_0.sql: -------------------------------------------------------------------------------- 1 | CREATE TABLE props ( 2 | prop_id integer PRIMARY KEY NOT NULL, 3 | tar_id integer REFERENCES targets(tar_id), 4 | user_id integer REFERENCES users (usr_id), 5 | prop_start timestamp, 6 | prop_end timestamp 7 | ); 8 | 9 | CREATE SEQUENCE prop_id; 10 | 11 | 12 | CREATE TABLE plan ( 13 | plan_id integer PRIMARY KEY NOT NULL, 14 | tar_id integer REFERENCES targets(tar_id) NOT NULL, 15 | prop_id integer REFERENCES props(prop_id), 16 | obs_id integer REFERENCES observations(obs_id), 17 | plan_start timestamp NOT NULL, 18 | plan_status integer NOT NULL DEFAULT 0 19 | ); 20 | 21 | CREATE SEQUENCE plan_id; 22 | 23 | CREATE INDEX plan_plan_start ON plan (plan_start); 24 | -------------------------------------------------------------------------------- /src/sql/update/rel_0_6_1.sql: -------------------------------------------------------------------------------- 1 | -- ra, dec, lng, lat, JD 2 | CREATE OR REPLACE FUNCTION ln_airmass (float8, float8, float8, float8, float8) 3 | RETURNS float4 AS 'pg_astrolib.so', 'ln_airmass' LANGUAGE 'c'; 4 | 5 | ALTER TABLE scripts ADD CONSTRAINT scripts_uniq_cam_tar UNIQUE (tar_id, camera_name); 6 | -------------------------------------------------------------------------------- /src/sql/update/rel_0_7_0.sql: -------------------------------------------------------------------------------- 1 | -- table for events, recorded by eventd 2 | CREATE TABLE message ( 3 | message_time timestamp, 4 | message_oname varchar(8), 5 | message_type integer, 6 | message_string varchar(200) 7 | ); 8 | 9 | CREATE INDEX message_time ON message (message_time); 10 | 11 | CREATE INDEX message_oname ON message (message_oname); 12 | 13 | CREATE INDEX message_type ON message (message_type); 14 | 15 | -- filters information 16 | CREATE TABLE filters ( 17 | filter_id integer PRIMARY KEY, 18 | offset_ra float8, 19 | offset_dec float8, 20 | -- standart name - UBVR & others 21 | standart_name varchar(40), 22 | -- medium wavelenght in nm 23 | medium_wl float, 24 | -- filter width in nm 25 | width float 26 | ); 27 | 28 | ALTER TABLE images ADD CONSTRAINT "fk_images_filters" FOREIGN KEY (img_filter) REFERENCES filters(filter_id); 29 | 30 | CREATE UNIQUE INDEX fk_filters ON filters(filter_id); 31 | -------------------------------------------------------------------------------- /src/sql/update/rel_0_7_1.sql: -------------------------------------------------------------------------------- 1 | 2 | ALTER TABLE plan ADD COLUMN plan_end timestamp DEFAULT NULL; 3 | -------------------------------------------------------------------------------- /src/sql/update/rel_0_7_4.sql: -------------------------------------------------------------------------------- 1 | 2 | CREATE SEQUENCE user_id; 3 | 4 | ALTER TABLE users ADD CONSTRAINT users_login UNIQUE (usr_login); 5 | -------------------------------------------------------------------------------- /src/sql/update/rel_0_7_5.sql: -------------------------------------------------------------------------------- 1 | 2 | -- add tar_info column with additional informations - MPEC entrey,.. 3 | ALTER TABLE targets ADD COLUMN tar_info VARCHAR(2000); 4 | -------------------------------------------------------------------------------- /src/sql/update/rel_0_9_3.sql: -------------------------------------------------------------------------------- 1 | CREATE UNIQUE INDEX index_target_labels on target_labels (tar_id, label_id); 2 | -------------------------------------------------------------------------------- /src/sql/update/rel_1_0_0.sql: -------------------------------------------------------------------------------- 1 | INSERT INTO types VALUES ('B', 'TLE (arteficial satellite)'); 2 | -------------------------------------------------------------------------------- /src/teld/irait/Makefile.am: -------------------------------------------------------------------------------- 1 | AM_CXXFLAGS=@NOVA_CFLAGS@ -I../../../include 2 | 3 | if MACOSX 4 | AM_CXXFLAGS += -include ../../../include/compat/osx/compat.h 5 | endif 6 | 7 | lib_LTLIBRARIES = libirait.la 8 | 9 | libirait_la_SOURCES = galil.cpp iraitenc.cpp 10 | 11 | noinst_HEADERS = galil.h iraitenc.h 12 | -------------------------------------------------------------------------------- /src/teld/irait/iraitenc.cpp: -------------------------------------------------------------------------------- 1 | #include "iraitenc.h" 2 | #include "teld.h" 3 | 4 | using namespace rts2teld; 5 | 6 | IraitEnc::IraitEnc (rts2core::Block *_master, const char *_hostname, int _port):rts2core::ConnTCP (_master, _hostname, _port) 7 | { 8 | 9 | } 10 | 11 | long IraitEnc::getXAxisEncPos() 12 | { 13 | std::string strRX; 14 | clientTxRx( "getposx", strRX); 15 | return atol(strRX.c_str ()); 16 | } 17 | long IraitEnc::getYAxisEncPos() 18 | { 19 | std::string strRX; 20 | clientTxRx( "getposy", strRX); 21 | return atol(strRX.c_str ()); 22 | } 23 | 24 | long IraitEnc::getXAxisEncPosArcsec() 25 | { 26 | return 0; // countsToArcsecs(getXAxisEncPos()); 27 | } 28 | 29 | long IraitEnc::getYAxisEncPosArcsec() 30 | { 31 | return 0; // countsToArcsecs(getYAxisEncPos()); 32 | } 33 | 34 | 35 | void IraitEnc::clientTx (const char *tx) 36 | { 37 | sendData (tx); 38 | 39 | sendData ("\r\n"); 40 | } 41 | 42 | void IraitEnc::clientRx (std::string &rx) 43 | { 44 | std::stringstream _is; 45 | receiveData (&_is, 5, '\n'); 46 | rx = _is.str (); 47 | } 48 | 49 | void IraitEnc::clientTxRx (const char *tx, std::string &rx) 50 | { 51 | clientTx (tx); 52 | clientRx (rx); 53 | } 54 | -------------------------------------------------------------------------------- /src/teld/irait/iraitenc.h: -------------------------------------------------------------------------------- 1 | #include "connection/tcp.h" 2 | #include 3 | 4 | namespace rts2teld 5 | { 6 | 7 | class IraitEnc:public rts2core::ConnTCP 8 | { 9 | public: 10 | IraitEnc (rts2core::Block *_master, const char *_hostname, int _port); 11 | 12 | // public interface to IRAIT encoders 13 | long getXAxisEncPos (); 14 | long getYAxisEncPos (); 15 | long getXAxisEncPosArcsec (); 16 | long getYAxisEncPosArcsec (); 17 | 18 | private: 19 | void clientTxRx (const char *tx, std::string &rx); 20 | void clientRx (std::string &rx); 21 | void clientTx (const char *tx); 22 | }; 23 | 24 | }; 25 | -------------------------------------------------------------------------------- /src/teld/model.test: -------------------------------------------------------------------------------- 1 | MA = 0.23 2 | # test 3 | IH = 0.65 4 | -------------------------------------------------------------------------------- /src/thrift/Makefile.am: -------------------------------------------------------------------------------- 1 | LDADD = @THRIFT_LIBS@ 2 | 3 | CLEANFILES = ObservatoryService.cpp rts2_types.cpp rts2_constants.cpp 4 | 5 | if THRIFT 6 | 7 | bin_PROGRAMS = rts2-thriftd rts2-thrift 8 | rts2_thriftd_SOURCES = ObservatoryService.cpp rts2_types.cpp rts2_constants.cpp thriftd.cpp 9 | rts2_thriftd_CXXFLAGS = -Iinterface -I../../include @NOVA_CFLAGS@ @THRIFT_CFLAGS@ 10 | rts2_thriftd_LDFLAGS = -L../../lib/rts2 -lrts2 -lpthread @LIB_NOVA@ 11 | 12 | rts2_thrift_SOURCES = ObservatoryService.cpp rts2_types.cpp rts2_constants.cpp thrift.cpp 13 | rts2_thrift_CXXFLAGS = -Iinterface -I../../include @NOVA_CFLAGS@ @THRIFT_CFLAGS@ 14 | rts2_thrift_LDFLAGS = -L../../lib/rts2 -lrts2 -lpthread @LIB_NOVA@ 15 | 16 | ObservatoryService.cpp: rts2.thrift 17 | $(RM) -rf interface 18 | mkdir interface 19 | thrift -out interface --gen cpp rts2.thrift 20 | cp interface/ObservatoryService.cpp interface/rts2_types.cpp interface/rts2_constants.cpp . 21 | 22 | else 23 | 24 | EXTRA_DIST = thriftd.cpp thrift.cpp 25 | 26 | endif 27 | -------------------------------------------------------------------------------- /src/ucac5/Makefile.am: -------------------------------------------------------------------------------- 1 | if LIBERFA 2 | 3 | LDADD += -L../../lib/ucac5 -lrts2ucac5 -L../../lib/rts2 -lrts2 @ERFA_LIBS@ @LIB_NOVA@ 4 | AM_CXXFLAGS= @ERFA_CFLAGS@ @NOVA_CFLAGS@ -I../../include 5 | 6 | bin_PROGRAMS = ucac5-idx ucac5-search 7 | 8 | noinst_SCRIPTS = ucac5-download 9 | 10 | ucac5_idx_SOURCES = idx.cpp 11 | 12 | ucac5_search_SOURCES = search.cpp 13 | 14 | endif 15 | -------------------------------------------------------------------------------- /src/ucac5/ucac5-download: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | ${UCAC5_URL:=ftp://cdsarc.u-strasbg.fr/pub/cats/I/340/UCAC5/u5z} 4 | 5 | wget -c $UCAC5_URL/u5index.unf 6 | 7 | for ((x=1; $x < 901; x = $x + 1)); do 8 | wget -c $UCAC5_URL/z`printf %03d $x` 9 | done 10 | -------------------------------------------------------------------------------- /src/wsd/Makefile.am: -------------------------------------------------------------------------------- 1 | noinst_HEADERS = wsd.h 2 | 3 | if LIBWEBSOCKETS 4 | bin_PROGRAMS = rts2-wsd 5 | 6 | WSD_LDADD = @LIB_M@ @LIB_NOVA@ @LIBWEBSOCKETS_LIBS@ 7 | AM_CXXFLAGS = @NOVA_CFLAGS@ @MAGIC_CFLAGS@ @LIBARCHIVE_CFLAGS@ @LIBWEBSOCKETS_CFLAGS@ -I../../include 8 | 9 | if PGSQL 10 | 11 | rts2_wsd_SOURCES = wsd.cpp http.c 12 | rts2_wsd_CXXFLAGS = @LIBPG_CFLAGS@ ${AM_CXXFLAGS} 13 | rts2_wsd_LDADD = -L../../lib/rts2db -lrts2db -L../../lib/rts2fits -lrts2imagedb -L../../lib/pluto -lpluto -L../../lib/rts2 -lrts2 -L../../lib/xmlrpc++ -lrts2xmlrpc @LIBPG_LIBS@ @LIB_ECPG@ @LIBXML_LIBS@ @MAGIC_LIBS@ @CFITSIO_LIBS@ @LIB_CRYPT@ @LIBARCHIVE_LIBS@ ${WSD_LDADD} 14 | 15 | else 16 | 17 | rts2_wsd_SOURCES = wsd.cpp http.c 18 | rts2_wsd_CXXFLAGS = ${AM_CXXFLAGS} 19 | rts2_wsd_LDADD = -L../../lib/pluto -lpluto -L../../lib/rts2 -lrts2 -L../../lib/xmlrpc++ -lrts2xmlrpc @LIBXML_LIBS@ @MAGIC_LIBS@ @CFITSIO_LIBS@ @LIB_CRYPT@ @LIBARCHIVE_LIBS@ ${WSD_LDADD} 20 | 21 | endif 22 | 23 | else 24 | EXTRA_DIST=wsd.cpp http.c 25 | endif 26 | -------------------------------------------------------------------------------- /src/wsd/wsd.h: -------------------------------------------------------------------------------- 1 | #ifndef __RTS2_WSD__ 2 | #define __RTS2_WSD__ 3 | 4 | #include 5 | 6 | #define resource_path "/usr/share/rts2" 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | extern int max_poll_elements; 13 | 14 | extern struct lws_pollfd *pollfds; 15 | extern int *fd_lookup; 16 | extern int count_pollfds; 17 | 18 | struct per_session_data__http { 19 | int fd; 20 | unsigned int client_finished:1; 21 | }; 22 | 23 | struct per_session_data__dumb_increment 24 | { 25 | int number; 26 | }; 27 | 28 | int callback_http (struct lws *wsi, enum lws_callback_reasons reason, void *user, void *in, size_t len); 29 | 30 | #ifdef __cplusplus 31 | }; 32 | #endif 33 | 34 | #endif //! __RTS2_WSD__ 35 | -------------------------------------------------------------------------------- /stamp-h.in: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/RTS2/rts2/95282de7bda56ddbc291c638ad9eeb2f5baf0711/stamp-h.in -------------------------------------------------------------------------------- /tests/Makefile.am: -------------------------------------------------------------------------------- 1 | exampledir = $(datarootdir)/doc/@PACKAGE@/examples 2 | example_DATA = modelin-altaz modelin-gem 3 | -------------------------------------------------------------------------------- /tests/modelin-altaz: -------------------------------------------------------------------------------- 1 | # 15 degrees E, 50 degrees N, 600 m altitude 2 | # altaz 15 50 600 3 | 1 50000.0 280.000 10.000 20.000 -55000 55000 11.000 19.000 4 | 2 50000.1 280.100 50.000 30.000 -55100 55010 51.000 29.000 5 | 3 50000.2 280.200 90.000 40.000 -55200 55020 91.000 39.000 6 | 4 50000.3 280.300 140.000 50.000 -55300 55030 141.000 49.000 7 | 5 50000.4 280.400 180.000 60.000 -55400 55040 181.000 59.000 8 | 6 50000.5 280.500 220.000 70.000 -55500 55050 221.000 69.000 9 | 7 50000.6 280.600 260.000 80.000 -55600 55060 261.000 79.000 10 | 8 50000.7 280.700 300.000 70.000 -55700 55070 301.000 69.000 11 | 9 50000.8 280.800 340.000 60.000 -55800 55080 341.000 59.000 12 | 10 50000.9 280.900 0.000 50.000 -55900 55090 1.000 49.000 13 | -------------------------------------------------------------------------------- /tests/modelin-gem: -------------------------------------------------------------------------------- 1 | # 15 degrees E, 50 degrees N, 600 m altitude 2 | # gem 15 50 600 3 | 1 50000.0 280.000 10.000 20.000 -55000 55000 11.000 19.000 4 | 2 50000.1 280.100 50.000 30.000 -55100 55010 51.000 29.000 5 | 3 50000.2 280.200 90.000 40.000 -55200 55020 91.000 39.000 6 | 4 50000.3 280.300 140.000 50.000 -55300 55030 141.000 49.000 7 | 5 50000.4 280.400 180.000 60.000 -55400 55040 181.000 59.000 8 | 6 50000.5 280.500 220.000 70.000 -55500 55050 221.000 69.000 9 | 7 50000.6 280.600 260.000 80.000 -55600 55060 261.000 79.000 10 | 8 50000.7 280.700 300.000 70.000 -55700 55070 301.000 69.000 11 | 9 50000.8 280.800 340.000 60.000 -55800 55080 341.000 59.000 12 | 10 50000.9 280.900 0.000 50.000 -55900 55090 1.000 49.000 13 | -------------------------------------------------------------------------------- /tests/random_pointing.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # SCript to execute random pointing from bash through rts2-json 4 | # Please use with care, change username and password. 5 | # 6 | # (C) 2015 Petr Kubánek 7 | 8 | while true; do 9 | rts2-json -s T0.ORI="`rts2-telmodeltest -r`" --user --password --verbose 10 | sleep 10 11 | done 12 | --------------------------------------------------------------------------------