Files
sics/simsync.w

46 lines
1.7 KiB
OpenEdge ABL

\subsection{Synchronizing with other SICS server}
A common demand is to have a simulation server for testing command files or
checking complex instrument movements. For such uses the simulation SICS
server must be synchrnized at times with the actual SICS server running the
instrument. This is the purpose of this module. It works by sending a
backup command to to the actual SICS server and then runs the restore
command. In order for this scheme to work properly, both the simulation
and the real SICS server must be configured to read the same status file.
The installation of this module also sets a flag in the SICS servers
general data structure which can be used by other system components in order
to modify behaviour in simulation mode. For instance the writing of data
files can be inhibited.
As the simulation server must be able to run independently from the actual
SICS server, it was considered sufficient to update the state of the
simulation server manually. As this may break other simulations currently
running a broadcast message about the action is sent to all connected
clients.
The interface to this module is just the interpreter function doing
the sync and the object creation function.
@d syncint @{
int MakeSync(SConnection *pCon, SicsInterp *pSics, void *pData,
int argc, char *argv[]);
int Synchronize(SConnection *pCon, SicsInterp *pSics, void *pData,
int argc, char *argv[]);
@}
@o synchronize.h @{
/*
S y n c h r o n i z e
Synchronize parameters in this server with parameters from another
SICS server.
Mark Koennecke, March 2001
*/
#ifndef SICSSYNC
#define SICSSYNC
@<syncint@>
#endif
@}