Files

84 lines
1.5 KiB
C++

/********************************************************************\
Name: drs_scaler.cpp
Created by: Stefan Ritt
Contents: Wrapper function to read scalers via Labview
$Id: drs_scaler.cpp 21293 2014-03-19 16:36:44Z ritt $
\********************************************************************/
#include <math.h>
#ifdef _MSC_VER
#include <windows.h>
#elif defined(OS_LINUX)
#include <unistd.h>
#include <ctype.h>
#include <sys/ioctl.h>
#include <errno.h>
#endif
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "DRS.h"
#if defined(_MSC_VER)
#define EXPRT __declspec(dllexport)
#else
#define EXPRT
#endif
#ifdef __cplusplus
extern "C" {
#endif
void EXPRT scaler(unsigned int *s1, unsigned int *s2, unsigned int *s3, unsigned int *s4);
#ifdef __cplusplus
};
#endif
/*------------------------------------------------------------------*/
void scaler(unsigned int *s1, unsigned int *s2, unsigned int *s3, unsigned int *s4)
{
static DRS *drs = NULL;
if (drs == NULL) {
drs = new DRS();
}
if (drs->GetNumberOfBoards()> 0) {
DRSBoard *b = drs->GetBoard(0);
*s1 = b->GetScaler(0);
*s2 = b->GetScaler(1);
*s3 = b->GetScaler(2);
*s4 = b->GetScaler(3);
} else {
*s1 = -1;
*s2 = -1;
*s3 = -1;
*s4 = -1;
}
}
/*------------------------------------------------------------------*/
int main()
{
unsigned int s1, s2, s3, s4;
scaler(&s1, &s2, &s3, &s4);
printf("%d %d %d %d\n", s1, s2, s3, s4);
return 1;
}