
/*--------------------------------------------------------------------------
   Internal header file holding the definition of the scan objects data
   structure.

   Mark Koennecke, October 1997
----------------------------------------------------------------------------*/
#include "sdynar.h"

  typedef struct {
                   char Name[132];
                   pIDrivable pInter;
                   pDummy     pObject;
                   float      fStart;
                   float      fStep;
                   float      *fData;
                  }VarEntry, *pVarEntry;
/*--------------------------------------------------------------------------*/
  typedef struct {
                   int i;
                   long lCount;
                   long Monitors[10];
                   float fTime;
                 } CountEntry, *pCountEntry;
/*---------------------------------------------------------------------------*/ 
  typedef struct __ScanData {
                             pObjectDescriptor pDes;
                             pICallBack        pCall;
                             pDynar            pScanVar;
                             int               iScanVar;
                             int               iNP;
                             int               iMode;
                             float             fPreset;
                             char              pFile[1024];
                             char              ext[5];
                             FILE              *fd;
                             SicsInterp        *pSics;
                             SConnection       *pCon;
                             char              pRecover[1024];
                             char              pHeaderFile[1024];
                             int               (*PrepareScan)(pScanData self);
                             int               (*WriteHeader)(pScanData self);
                             int               (*WriteScanPoints)
                                                      (pScanData self, 
                                                       int iPoint);
                             int               (*ScanDrive)(pScanData self, 
                                                            int i);
                             int               (*ScanCount)(pScanData self,
                                                            int i);
                             int               (*CollectScanData)
                                                           (pScanData self,
                                                            int iP);
                             long              lPos;
                             void              *pCounterData;
                             char              pCounterName[512];
                             int               iChannel;
                             pDynar            pCounts;
                             int               iCounts;
                             int               iActive;
                             int               iWindow;
                             char              *pCommand;
                             void              *pSpecial;
                             } ScanData;



