<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://www.rts2.org/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://www.rts2.org/wiki/feed.php">
        <title>RTS2 Wiki code</title>
        <description></description>
        <link>https://www.rts2.org/wiki/</link>
        <image rdf:resource="https://www.rts2.org/wiki/lib/tpl/dokuwiki/images/favicon.ico" />
       <dc:date>2026-05-05T16:22:20+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:camera_driver&amp;rev=1396303200&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:client&amp;rev=1328655600&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:ga_scheduling&amp;rev=1232233200&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:json&amp;rev=1486422000&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:long_term_scheduling&amp;rev=1260745200&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:new_target_type&amp;rev=1232924400&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:observatory_weather_blocking&amp;rev=1260745200&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:queues&amp;rev=1295132400&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:solaris&amp;rev=1270504800&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:start&amp;rev=1395702000&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:telescope_driver&amp;rev=1263682800&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:telescope_poiniting&amp;rev=1254866400&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:timers&amp;rev=1247954400&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:trigger_scripts&amp;rev=1320534000&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:xmlrpc-php&amp;rev=1235343600&amp;do=diff"/>
                <rdf:li rdf:resource="https://www.rts2.org/wiki/doku.php?id=code:xmlrpc&amp;rev=1235084400&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://www.rts2.org/wiki/lib/tpl/dokuwiki/images/favicon.ico">
        <title>RTS2 Wiki</title>
        <link>https://www.rts2.org/wiki/</link>
        <url>https://www.rts2.org/wiki/lib/tpl/dokuwiki/images/favicon.ico</url>
    </image>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:camera_driver&amp;rev=1396303200&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-31T22:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:camera_driver</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:camera_driver&amp;rev=1396303200&amp;do=diff</link>
        <description>Camera driver tutorial

The aim of this tutorial is to create a camera (CCD) driver. In order to be
hardware independent, the created driver will not correspond to any existing
camera - it will create a test (dummy) driver, which can be used to show how
the RTS2 works.</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:client&amp;rev=1328655600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-02-07T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:client</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:client&amp;rev=1328655600&amp;do=diff</link>
        <description>Writing clients in Python

RTS2 provides three external bindings, which can be used by clients to interact with the RTS2 environment:

	*  RTS2 protocol
	*  XML/RPC protocol
	*  JSON

JSON, standing for JavaScript Object Notation, is probably the simplest to use. To demonstrate the simplicity of its use:</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:ga_scheduling&amp;rev=1232233200&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-01-17T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:ga_scheduling</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:ga_scheduling&amp;rev=1232233200&amp;do=diff</link>
        <description>GA Scheduling organization

Algorithm and ideas used for scheduling are described in master thesis. Please read this carefully before you will try to add new code.

The algorithm mention constraints and objectives. Constrains method return number of constraint violations and the algorithm tries to minimize them, providing schedule with zero constraint violations. So far there are not soft and hard constraint, and implementation of them to scheduling can be an interesting topics. The algorithm se…</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:json&amp;rev=1486422000&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2017-02-06T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:json</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:json&amp;rev=1486422000&amp;do=diff</link>
        <description>The following commands are available with the JSON API:
change_constraintschange_scriptcnst_altcnst_alt_vcnst_timeconstscreate_targetdecdeviceinfoexecutorexposehasimageinclabellistlabelsmessagesnightobytidplansatisfiedscriptselvalsunalttaltitudestbydistance</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:long_term_scheduling&amp;rev=1260745200&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-12-13T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:long_term_scheduling</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:long_term_scheduling&amp;rev=1260745200&amp;do=diff</link>
        <description>Goals

The goal is to allow introduction of a standard observing proposals to the system. The users should be particularly able to:

	*  Create new targets through web interface
	*  Edit various options (constraints) for their observations
	*  Query for the best next observation</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:new_target_type&amp;rev=1232924400&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-01-25T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:new_target_type</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:new_target_type&amp;rev=1232924400&amp;do=diff</link>
        <description>How to add a new target type

RTS2 targets used for scheduling are represented by subclass of Target class.
If you would like to introduce a new target type, you must:

	*  introduce its type identifier among types listed in types table. This table contains character identifiing type and short type description.</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:observatory_weather_blocking&amp;rev=1260745200&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-12-13T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:observatory_weather_blocking</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:observatory_weather_blocking&amp;rev=1260745200&amp;do=diff</link>
        <description>State

Implemented and running fine.

Introduction

Currently all weather checks are carried inside the RTS2 dome component. The nice thing about that is that there is a single instrument to fail and prevent the dome from closing. Also this single component can be easily tested and is known to run well. (Operating on</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:queues&amp;rev=1295132400&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-01-15T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:queues</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:queues&amp;rev=1295132400&amp;do=diff</link>
        <description>Queue modes

RTS2 uses queue to facilitate both human-in-the-loop and autonomous scheduling. Multiple queues can be created in selector, and single queue is available in executor. New targets can be added to the queue with queue or queue_at command.</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:solaris&amp;rev=1270504800&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-04-05T22:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:solaris</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:solaris&amp;rev=1270504800&amp;do=diff</link>
        <description>Compiling RTS2 for Sun/Solaris

Compiling RTS2 for Sun/Solaris is know to work, at least at


&gt; uname -a 
SunOS ultra2 5.8 Generic_108528-21 sun4u sparc SUNW,Ultra-2


.

You need to compile Libnova and possibly other libraries (ncurses,..) which aren&#039;t part of standard Solaris installation. They all compile fine (Libnova from CVS or version 0.13 and up).</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:start&amp;rev=1395702000&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2014-03-24T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:start</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:start&amp;rev=1395702000&amp;do=diff</link>
        <description>Algorithms

	*  telescope_poiniting telescope pointing and error correction
	*  queues all about queues, queuing modes, ..

Code descriptions

	*  xmlrpc description of XML-RPC interface
	*  xmlrpc-php how to use XML-RPC calls within PHP
	*  telescope_driver how to write telescope driver
	*  camera_driver how to write camera driver</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:telescope_driver&amp;rev=1263682800&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2010-01-16T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:telescope_driver</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:telescope_driver&amp;rev=1263682800&amp;do=diff</link>
        <description>Tasks in implementing driver

To implement an RTS2 telescope driver, you need to create a child class inherited from Telescope abstract class. This class provides pure virtual methods, which you must overwrite. The method names should be self explanatory and are well documented.</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:telescope_poiniting&amp;rev=1254866400&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-10-06T22:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:telescope_poiniting</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:telescope_poiniting&amp;rev=1254866400&amp;do=diff</link>
        <description>Telescope pointing algorithm

All coordinates entered to telescope control are in J2000. Using libnova, telescope driver can handle all coordinate transformations. With own class set, it can also handle most of TPoint telescope pointing terms.

Calculating coordinates on which telescope will be sent is a complex process. It is make more transparent by those variables, which are displayed in</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:timers&amp;rev=1247954400&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-07-18T22:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:timers</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:timers&amp;rev=1247954400&amp;do=diff</link>
        <description>Starting timer

To start a timer, call from Rts2Block or its descendant (all device and service drivers, monitor - usually the main beast in RTS2 programme, which run method is called from C main (int argc, char**argv)):


  addTimer (10, new Rts2Event (EVENT_MY_TIMER, this));</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:trigger_scripts&amp;rev=1320534000&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-11-05T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:trigger_scripts</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:trigger_scripts&amp;rev=1320534000&amp;do=diff</link>
        <description>State

Most of the functionality implemented in rts2-xmlrpcd.

What is it?

Currently, RTS2 has only one way to notify external user if something happens - preprogrammed emails can be sent. Those are currently sent on dome events (dome opened, closed, restarted) for some domes and on targets events (target observations started, first image received, observations ended, all images processed). Text of the message is fixed inside RTS2, and to change it, it must be located in code and RTS2 must be r…</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:xmlrpc-php&amp;rev=1235343600&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-02-22T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:xmlrpc-php</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:xmlrpc-php&amp;rev=1235343600&amp;do=diff</link>
        <description>How to use the XML-RPC interface within PHP

It should be relatively straight forward. Just:


svn co https://rts-2.svn.sf.net/svnroot/rts-2/trunk/rts2phplib rts2phplib


You most probably will need PHP XML-RPC library. Debian package is called php5-xmlrpc.

Of course you will need rts2-xmlrpcd running, as well as some web-server with PHP installed.</description>
    </item>
    <item rdf:about="https://www.rts2.org/wiki/doku.php?id=code:xmlrpc&amp;rev=1235084400&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2009-02-19T23:00:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>code:xmlrpc</title>
        <link>https://www.rts2.org/wiki/doku.php?id=code:xmlrpc&amp;rev=1235084400&amp;do=diff</link>
        <description>XML-RPC interface

Standard XML-RPC is used. For specification of interface, please see xmlrpc.org site. There are general rules for calls:

	*  each call must as first parameter pass authentication token. More on that bellow.
	*  if some error occurs during execution of command, an XML-RPC error is raised</description>
    </item>
</rdf:RDF>
