----- Orbit server v2 info ----- Current (testbed) setup ----------------------- Testbed on abcopl4: Sends data to the orbit server (pcgw00:5000) Orbit server: Runs on pcgw00, sends data to the testbed (abcopl4:2000) Orbit server source code ------------------------ In central CVS, in repository 'orbit', modules 'os2_common' (shared code with config prog) and 'orbitserver_v2'. Makefiles set up for cross-compilation on Linux, for Lynx4/x86. (Also contains settings for Linux/x86 as target, commented out. Does not currently have complete dependencies -- "make clean" after changing header files!) Example checkout and compilation below: [1] Binaries, example config files and startup scripts currently in NFS directory /nfs/slnfs1/vol1/u1/janders/orbit2/ , from Windows available as \\slnfs1\janders\orbit2\ . See README.txt in that directory for usage info. Orbit server reconfig program ----------------------------- In CVS, modules 'os2_common' and 'os2_config'. Uses the devices 'ORBITSERVER_PARAM' and 'ORBITSERVER_PARAM_ACTIVESET', which must be defined in the database (for example the temp test area) and resolve to the server name (currently OSTESTSVR). BPM Java GUI ------------ In CVS, module 'javagui'. Subscribes to properties of the device 'ORBITSERVER_OUT', which must be in the database (as above). Also currently available (with different options) as Java Web Start at http://slwww.cern.ch/~pca/jaws/orbit/ Java Knob --------- In CVS, modules 'javaknob' (but very simple -- the source is a single .java file). Currently also as JAWS at http://slwww.cern.ch/~pca/jaws/orbit/ Uses the device 'ORBITSERVER_IN' to set a reference value which the server uses. "initial_params.txt" -------------------- Contains parameter values, and is read either by the server at startup or the reconfig program. '#' can be used for comment lines. The assignment also defines the variable type: "=|d" for scalar double, "=|D" for array of doubles (whitespace separated, "\" to continue on the next line), "=|b" for scalar boolean ("true" or "false"), "=|S" for string array (per line, whitespace before and after skipped). [...] NOTE: #include statements take a non-quoted filename, and is path relative to the current directory for the server or reconfig program that reads the file (not the location of the file it is in!). (Typically all config files in a "set" goes together in the same directory, so there should seldom be any paths specified here.) Example in /nfs/slnfs1/vol1/u1/janders/orbit2/config-files-testbed (from Windows \\slnfs1\janders\orbit2\config-files-testbed ). "processing_setup.txt" ---------------------- Defines "triggers" and "modules" for the server-side processing. Read only on startup of the server, and can not be modified while running. Refers to parameters defined in "initial_params.txt". '#' can be used for comment lines. Triggers are defined in priority order (earlier ones will be run before later ones, if triggered at the same time). Special triggers (exists by default): _Startup_ -- On server startup, when all modules have been configured. _Config_change_ -- When the active parameter set has been changed (by the orbit server reconfig program). Typically does a lot of "import parameter" to copy parameters to the internal state. Modules are defined in run order (per trigger). The processing_setup.txt file in /nfs/slnfs1/vol1/u1/janders/orbit2/config-files-testbed (from Windows \\slnfs1\janders\orbit2\config-files-testbed ) contains an example with a little explanatory ASCII diagram of how it works. Modules ------- The module-specific config strings, together with inputs and outputs, are described in the code comments for each module. The Doxygen-extracted comments can be read in HTML format at /nfs/slnfs1/vol1/u1/janders/orbit2/doxygen-code-documentation-html/index.html (or \\slnfs1\janders\orbit2\doxygen-code-documentation-html\index.html ) See "Class hierarchy", and under "ProcessingModule" (superclass for all modules). Stuff in CVS ------------ The following modules are relevant for orbit server version 2: javagui: Java BPM GUI javaknob: The Java slider for reference changes. orbitserver_v2: Orbit server source code (for Lynx/x86) os2_common: Shared code for orbitserver_v2 and os2_config os2_config: Reconfig program (for Linux/x86) Everything else is old stuff, to be removed or put under a "old stuff" module. CMWadmin -------- CMWadmin is an expert/diagnostic program for CMW servers. The orbit server can be accessed with it, and it is possible to adjust log levels and look at exported data (such as the BPM positions or corrector currents displayed by the Java GUI). Also, the server has some information about active modules and triggers, such as number of successful and failed invocations and latest exception error message. Usage instructions would be a bit long to place here, but let's discuss and try it later. (The application has just been taken over by Steen Jensen, who is working on finding a home for it and providing some basic usage instructions.) --- [1] ------- [1] ------- [1] ------- [1] ------- [1] --- Example checkout and compilation of the orbit server: [abcopl1] /local/janders/tmp > setenv CVSROOT :ext:isscvs.cern.ch:/local/reps/orbit [abcopl1] /local/janders/tmp > setenv CVS_RSH ssh [abcopl1] /local/janders/tmp > cvs co orbitserver_v2 cvs checkout: Updating orbitserver_v2 U orbitserver_v2/CMWServer.cpp [...] [abcopl1] /local/janders/tmp > cvs co os2_common cvs checkout: Updating os2_common U os2_common/Common.cpp U os2_common/Common.h [abcopl1] /local/janders/tmp > cd orbitserver_v2/ [abcopl1] /local/janders/tmp/orbitserver_v2 > make => compiling OrbitServer.cpp [...] => linking os2 => compiling udp_echo.cpp => linking udp_echo [abcopl1] /local/janders/tmp/orbitserver_v2 > "os2" is the orbit server binary, which is named 'orbitserver.lynx4-x86' in /nfs/slnfs1/vol1/u1/janders/orbit2/ (\\slnfs1\janders\orbit2 from Windows). -----------------------------------------------------------