From af97d16309cbbc640623413595214ae46affd018 Mon Sep 17 00:00:00 2001
From: cvs
- SICS is a client server system. The application the user sees is usually some form of client. A client has two tasks: the first is to collect user input and send it to the SICS server who will execute the command. The clients second task is to listen to the the server messages and display them in a readable format. This aoproach has two advantages: clients can reside on machines across the whole network thus enabling remote control from everywhere in the world. The second advantage is that new clients (such as graphical user interface clients) can be written in any feasible language without changes to the server.
General structure
- SICS is an object oriented system. This is reflected in the command syntax. SICS objects can be devices such as motors or counters, variables such as wavelength or Title and measurement procedures. Communication with these objects happens by sending messages to the target object. This is very simply done by typing something like: object message par1 par2 .. parn. For example, if we have a motor called A1:
+ SICS is an object oriented system. This is reflected in the command +syntax. SICS objects can be devices such as motors, single + counters, histogram memories or other hardware variables such as wavelength or Title and measurement procedures. Communication with these objects happens by sending messages to the target object. This is very simply done by typing something like: object message par1 par2 .. parn. For example, if we have a motor called A1:A1 listwill print a parameter listing for the motor A1. In this example no parameters were needed. There exist a number of one-word commands as well. For @@ -24,10 +36,13 @@ system for instance file names are case sensitive and that had to be preserved. Commands defined in the scripting language are lower case by convention. - +Authorisation
- A client server system is potentially open to unauthorised hackers which might mess up the instrument and your valuable measurements. A known problem in instrument control is that less knowledgeable user accidentally change instrument adjustments which should better be left fixed. In order to solve these two problems SICS supports authorisation on a very fine level. As a user you have to specify a username and password in order to able to access SICS. Some clients already do this for you automatically. SICS support four levels of access to an instrument:
- LNS scientists have got used to using Rünbuffers for instrument control. A Rünbuffer is an array of SICS commands which typically represent a measurement. This Rünbuffer can be edited at run time. This is very similar to a macro. In contrast to a macro only SICS commands are allowed in Rünbuffers. When done with editing the Rünbuffer it can be entered in a Rünlist. This is a stack of Rünbuffers which get executed one by one. While this is happening it is possible (from another client) to modify the Rünlist and edit and add additional Rünbuffer on top of the stack. This allows for almost infinite measurement and gives more control than a static batch file. In order to cater for this scheme three commands have been defined:
+ LNS scientists have got used to using Rünbuffers for instrument + control. A Rünbuffer is an array of SICS commands which + typically represent a measurement. This Rünbuffer can be edited + at run time. This is very similar to a macro. In contrast to a macro + only SICS commands are allowed in Rünbuffers. When done with + editing the Rünbuffer it can be entered in a Rünlist. This + is a stack of Rünbuffers which get executed one by one. While + this is happening it is possible (from another client) to modify the + Rünlist and edit and add additional Rünbuffers on top of + the stack. This allows for almost infinite measurement and gives more + control than a static batch file. In order to cater for this scheme + three commands have been defined:The Buf object is responsible for creating and deleting Rünbuffers. The syntax is:
- After creation, the Rünbuffer is accessible by his name. It than understands the commands: