Sardana/Spock/Taurus

Introduction 

The first steps 

Notions
Configuration scripts
The very beginning
Exploring the system
The first scan

IPython features 

Miscellaneous Items
  TAB-Completion
  Command history
  Run a Python Script from within IPython
  Show the local variables of an IPython session
  Display Information about an Object
  Execute a Shell Command 
Command Shorthands
Startup Script, 00-start.py

Scans 

Environment variables for scans
  FioAdditions Example 
Scan Commands
  Example: ascan 
Configuring the MeasurementGroup
  Configuring the MeasurementGroup in online.xml
  Configuring the MeasurementGroup with the ComponentSelector
  Configuring the MeasurementGroup with expconf
  Configuring the MeasurementGroup using macros from Spock
  Configuring the MeasurementGroup using a script
  Adding any Tango Attribute as Counter in the MeasurementGroup
  Adding MCA RoIs as Counter in the MeasurementGroup 
Hooks
  General hooks, conditions and on_stop function
  Absorber scans using general hooks and conditions
  General hook for setting detector storage directories and file names
  Repeating scan points, specific scan class (XMCD) 
Scan speed
  Comparison with the Online scan speed
  moveScan.py code
  Slow down of motors if included in a PseudoMotor
  Speed up scans of motors included in the diffractometer
  Results from haspp08

Spock 

Profiles
Interrupting Macro Execution
Access to Tango Devices in Spock
Environment Variables
Get list of components: lsct, lsm, ls0d, ls1d, etc
Motor
Counter/Timer
IO Register
Macros
Run a sequence of macros
Debugging: Debug, edmac, www 
The DOOR and MACRO_SERVER proxies

Macros 

Some remarks about macros
Useful members of the Macro class
DESY Macros
  e2lambda, lambda2e
  mvsa: move-scan-analysis
  wait_for_petra
  wait_for_petracurrent
  restart_server
  timedMacro: measure the execution time of a Macro
  GalilRS, reset Galil controller
  ppPurge, purges .fio data, MCA and image files 
Beamline specific macros
  Maia detector scan macro
  Regions scan with maia scan at each point
  Continuous scans with external trigger (Zebra & XIA & MCS)
  Sweep Scans (p02) 
Example Macros (as Classes, recommended)
  Hello world
  Parameter Types
  Environment Variables
  A Loop of Scans
  Access to Scan Data
  Access to Scan Data, Modified
  Access to Scan Data from a post-acq Hook
  Move a Motor Asynchronously
  A macro using the result of another macro
  Read an ADC, return the result
  A Hooked Scan
  Move to the position calculated from the scan data
  Mixed classes
  Call on_stop, also from parent class 
Example Macros (as Functions)
  ...

GUI Tools 

taurusgui macrogui
taurusform
taurusimage
taurus device, accessing MacroServer environment
SardanaInfoViewer
SardanaMonitor
SardanaMotorMonitor
TangoExplorer
SardanaMessageWindow

Helpers 

00-start.py
SardanaConfig.py
SardanaStopMacro.py
FioAdditions
ECMonitor
MotorLogger
The HasyUtils module

NeXus Recorder 

Diffractometer Software 

Configuration
Macros
    add_reflection
    affine 
    ...

Sardana configuration 

Setting up the Pools and the MacroServers
    Finishing the Sardana configuration: /online_dir/SardanaConfig.py 
Selecting the devices: online.xml syntax
    Detectors
    Scan integration of Lambda detectors
    Diffractometer
    Measurement Groups
    Adding any Tango Attribute as a Counter in the MeasurementGroup
    RoIs as counters
    XMCD (PiLC) as counter
    MHzDAQp01Channel mean and stddev values as counters 
The configuration at P01
The configuration at P02
The configuration at P03
...

Examples 

Access the MacroServer Environment from Python
Fetch MacroServer Environment Variables (P10)
Where the MacroServer environment is stored
Change the Attribute Configuration, %6.2f to %g
Scan integration of Lambda detectors
Tango attribute as counter
Sardana integration of attribute motors
Square Move, FS-DS
Signal Generator as VcExecutor (with Offset, P09)
Pilatus Integration as Vc
Virtual Motor as VMExecutor

Questions: