- 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:
cvs
2001-06-08 15:18:35 +00:00
parent 2d16479717
commit 8f84d45dd6
48 changed files with 671 additions and 157 deletions

73
hmcontrol.w Normal file
View 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
@}