- Added a multiple histogram memory control module. This required a
tiny change in the countable interface which in turn required updating of header file includes in a lot of files. - Some small fixes to TRICS writing as well.
This commit is contained in:
73
hmcontrol.w
Normal file
73
hmcontrol.w
Normal file
@ -0,0 +1,73 @@
|
||||
\subsection{HM control}
|
||||
At TRICS (and possibly at other instruments) it it necessary to coordinate the
|
||||
operation of the counter and one to many histogram memories. The
|
||||
neutron counter will act as the actual controlling instance and the
|
||||
histogram memories will act as slaves. This is implemented in this
|
||||
module.
|
||||
|
||||
The modules data structure:
|
||||
@d hmcontroldata @{
|
||||
typedef struct {
|
||||
pObjectDescriptor pDes;
|
||||
pICountable pCount;
|
||||
pICountable slaves[MAXSLAVE];
|
||||
void *slaveData[MAXSLAVE];
|
||||
int nSlaves;
|
||||
float fPreset;
|
||||
CounterMode eMode;
|
||||
} HMcontrol, *pHMcontrol;
|
||||
@}
|
||||
The fields are:
|
||||
\begin{description}
|
||||
\item[pDes] The standard SICS object descriptor.
|
||||
\item[pCount] The countable interface of this module.
|
||||
\item[slaves] The slave counters or histogram memories.
|
||||
\item[slaveData] is the data structure for the slave. The first slave
|
||||
is always the neutron counter.
|
||||
\item[nSlaves] The number of active slaves.
|
||||
\item[fPreset] The counting preset.
|
||||
\item[eMode] The counting mode.
|
||||
\end{description}
|
||||
|
||||
|
||||
Most of this modules functionality is built into the countable
|
||||
interface functions. Just an interface to the interpreter is needed:
|
||||
|
||||
@d hmcontrolint @{
|
||||
int MakeHMControl(SConnection *pCon, SicsInterp *pSics,
|
||||
void *pData, int argc, char *argv[]);
|
||||
int HMControlAction(SConnection *pCon, SicsInterp *pSics,
|
||||
void *pData, int argc, char *argv[]);
|
||||
|
||||
@}
|
||||
|
||||
@o hmcontrol.h @{
|
||||
/*------------------------------------------------------------------------
|
||||
H M C O N T R O L
|
||||
|
||||
A module for coordinating several counters and histogram
|
||||
memories. One of the counters is the master counter and the rest are
|
||||
slaves which have to be kept in sync with the master in their
|
||||
operations.
|
||||
|
||||
copyright: see copyright.h
|
||||
|
||||
Mark Koennecke, June 2001
|
||||
-------------------------------------------------------------------------*/
|
||||
#ifndef HMCONTROL
|
||||
#define HMCONTROL
|
||||
|
||||
/*
|
||||
the maximum number of slaves
|
||||
*/
|
||||
#include "sics.h"
|
||||
#include "counter.h"
|
||||
|
||||
#define MAXSLAVE 5
|
||||
|
||||
@<hmcontroldata@>
|
||||
|
||||
@<hmcontrolint@>
|
||||
#endif
|
||||
|
||||
@}
|
Reference in New Issue
Block a user