====== XML-RPC interface ======
Standard XML-RPC is used. For specification of interface, please see [[http://www.xmlrpc.org|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
===== Authentication token =====
As first parameter to every XML-RPC call, you must pass an identification token. It is always a structure, and holds either credentials, or session ID.
Credentials are passed in structure under //login// and //password// fields. So for example if you are calling rts2.mainstatus, the procedure in Python will be:
import xmlrpclib
xmlRpcServer = xmlrpclib.ServerProxy("http://localhost", use_datetime = True)
res = xmlRpcServer.rts2.mainstatus ({'login': 'myname', 'password': 'test'})
print res
Session ID can be obtained by rts2.login call. Then it should be passed as session_id parameter to all subsequent calls. Following example demonstrates how to use session_id:
res = xmlRpcServer.rts2.login ({'login': 'myname', 'password': 'test'})
sess_id = res['session_id']
res = xmlRpcServer.rts2.mainstatus ({'session_id' : sess_id})
print res
Session id's expire after inactivity. The time of inactivity is defined in response field 'expires'. Before session ID expires, you can renew it by making call to rts2.login, with session_id as only parameter.
===== Commands =====
There is description of commands. Please see also [[http://rts-2.svn.sf.net/viewvc/rts-2/trunk/rts-2/src/xmlrpc/r2x.h|xmlrpc/r2x.h]] file for probably more up-to date description.
==== rts2.login ====
This call accepts two parameters. The first is login name, the second is password. Returns session id, which can be used in subsequent calls to authorize them.
==== rts2.devices.list ====
==== rts2.devices.values.list ====
==== rts2.value.set ====
Set RTS2 variable. Three parameter must be specified, with following meaning:
- Name of device for which variable will be set.
- Name of variable which will be set.
- Value as string.
==== rts2.values.list ====
==== rts2.targets.list ====
==== rts2.targets.info ====
==== rts2.observations.list ====
==== rts2.images.list ====
==== rts2.messages.get ====
==== rts2.user.login ====
User login. Provides username and password, out true/false - true if login is OK.
==== rts2.user.telma.new ====
New user. Provides all user parameters (login, email, password,..), out true/false - true if OK