.. _sardana-getting-started-running-cli: Running the client ---------------------------- After the server has been started, you can start one or more client applications (:term:`CLI`\s and/or :term:`GUI`\s) that connect to the server. Each client connects to a specific *door* on the server. A single sardana can be configured with many *doors* allowing multiple clients to be connected at the same time. When the sardana server was first executed, part of the registration process created one *door* for you so now you just have to start the client application from the command line:: homer@pc001:~$ spock Spock is an `IPython`_ based :term:`CLI`. When you start spock without arguments it will assume a default profile called *spockdoor*. The first time spock is executed, it will inform you that profile *spockdoor* doesn't exist and it will offer to create one. Just answer 'y'. After, it will ask you to which *door* should the default *spockdoor* profile connect to. Select the door name corresponding to your sardana server (*Door_lab-01_1*) and press return. By now you should get an output like this:: homer@pc001:~$ spock Profile 'spockdoor' does not exist. Do you want to create one now ([y]/n)? y Available Door devices from sardanamachine:10000 : Door_lab-01_1 (a.k.a. Door/lab-01/1) Door name from the list? Door_lab-01_1 Storing ipython_config.py in /home/homer/.config/ipython/profile_spockdoor... [DONE] Spock 1.0.0 -- An interactive laboratory application. help -> Spock's help system. object? -> Details about 'object'. ?object also works, ?? prints more. IPython profile: spockdoor Connected to Door_lab-01_1 Door_lab-01_1 [1]: That's it! You now have a running sardana client. Still not impressed, I see! The next chapter describes how to start adding new elements to your sardana environment. Populating your sardana with items ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ One of sardana's goals is to allow you to execute *procedures* (what we call in sardana *macros*, hence from here on we will use the term *macro*). A *macro* is basically a piece of code. You can write macros using the `Python`_ language to do all sorts of things. The sky is the limit here! Sardana comes with a :ref:`catalog of macros` that help users in a laboratory to run their experiments. Most of these *macros* involve interaction with sardana elements like motors and experimental channels. Therefore, the first step in a new sardana demo is to populate your system with some elements. Fortunately, sardana comes with a *macro* called *sar_demo* that does just that. To execute this *macro* just type on the command line :class:`~sardana.macroserver.macros.demo.sar_demo`. You should get an output like this: .. sourcecode:: spock Door_lab-01_1 [1]: sar_demo Creating controllers motctrl01, ctctrl01... [DONE] Creating motors mot01, mot02, mot03, mot04... [DONE] Creating measurement group mntgrp01... [DONE] You should now have in your sardana system a set of simulated motors and counters with which you can play. If you want to add some real hardware, look at :ref:`sardana-adding-elements`. .. hint:: for clearing sardana from the elements created by the demo, execute :class:`~sardana.macroserver.macros.demo.clear_sar_demo` The next chapter (:ref:`spock `) will give you a complete overview of spock's interface. .. _numpy: http://numpy.scipy.org/ .. _PLY: http://www.dabeaz.com/ply/ .. _Python(x,y): http://code.google.com/p/pythonxy/ .. _Python: http://www.python.org/ .. _SardanaPypi: http://pypi.python.org/pypi/sardana/ .. _Tango: http://www.tango-controls.org/ .. _PyTango: http://packages.python.org/PyTango/ .. _taurus: http://packages.python.org/taurus/ .. _QTango: http://www.tango-controls.org/download/index_html#qtango3 .. _taurus: http://packages.python.org/taurus/ .. _Qt: http://qt.nokia.com/products/ .. _PyQt: http://www.riverbankcomputing.co.uk/software/pyqt/ .. _PyQwt: http://pyqwt.sourceforge.net/ .. _IPython: http://ipython.org/ .. _ATK: http://www.tango-controls.org/Documents/gui/atk/tango-application-toolkit .. _Qub: http://www.blissgarden.org/projects/qub/ .. _ESRF: http://www.esrf.eu/