mrfioc2  2.3.0
Macros | Functions | Variables
drvem.cpp File Reference
#include <cstdio>
#include <cstring>
#include <cmath>
#include <stdexcept>
#include <algorithm>
#include <sstream>
#include <epicsMath.h>
#include <errlog.h>
#include <dbDefs.h>
#include <dbScan.h>
#include <epicsInterrupt.h>
#include "mrmDataBufTx.h"
#include "sfp.h"
#include "evrRegMap.h"
#include "mrfFracSynth.h"
#include <mrfCommon.h>
#include <mrfCommonIO.h>
#include <mrfBitOps.h>
#include "drvemIocsh.h"
#include <evr/evr.h>
#include <evr/pulser.h>
#include <evr/cml.h>
#include <evr/prescaler.h>
#include <evr/input.h>
#include <evr/delay.h>
#include "drvem.h"
#include <epicsExport.h>
Include dependency graph for drvem.cpp:

Go to the source code of this file.

Macros

#define HAVE_PARALLEL_CB
 
#define CBINIT(ptr, prio, fn, valptr)
 
#define TSValidThreshold   5
 
#define CLEANVEC(TYPE, VAR)
 

Functions

 epicsExportAddress (int, evrMrmSeqRxDebug)
 
 epicsExportAddress (int, evrMrmTimeDebug)
 
 epicsExportAddress (int, evrMrmTimeNSOverflowThreshold)
 
 epicsExportAddress (double, mrmEvrFIFOPeriod)
 
 OBJECT_PROP2 ("Clock Mode", &EVRMRM::clockMode, &EVRMRM::clockModeSet)
 
 OBJECT_PROP2 ("DCEnable", &EVRMRM::dcEnabled, &EVRMRM::dcEnable)
 
 OBJECT_PROP2 ("DCTarget", &EVRMRM::dcTarget, &EVRMRM::dcTargetSet)
 
 OBJECT_PROP1 ("DCRx", &EVRMRM::dcRx)
 
 OBJECT_PROP1 ("DCInt", &EVRMRM::dcInternal)
 
 OBJECT_PROP1 ("DCStatusRaw", &EVRMRM::dcStatusRaw)
 
 OBJECT_PROP1 ("DCTOPID", &EVRMRM::topId)
 
 OBJECT_PROP2 ("EvtCode", &EVRMRM::dummy, &EVRMRM::setEvtCode)
 
 OBJECT_PROP2 ("TimeSrc", &EVRMRM::timeSrc, &EVRMRM::setTimeSrc)
 
 OBJECT_PROP1 ("NextSecond", getter)
 
 OBJECT_PROP1 ("Time Error", getter)
 
 OBJECT_PROP1 ("Sync TS", cmd)
 

Variables

int evrMrmTimeDebug
 
int evrMrmSeqRxDebug
 
int evrMrmTimeNSOverflowThreshold
 
double mrmEvrFIFOPeriod = 1.0/ 1000.0
 
volatile epicsUInt32 evrMrmIsrFlagsTrashCan
 

Macro Definition Documentation

◆ CBINIT

#define CBINIT (   ptr,
  prio,
  fn,
  valptr 
)
Value:
do { \
callbackSetPriority(prio, ptr); \
callbackSetCallback(fn, ptr); \
callbackSetUser(valptr, ptr); \
(ptr)->timer=NULL; \
} while(0)

Definition at line 75 of file drvem.cpp.

◆ CLEANVEC

#define CLEANVEC (   TYPE,
  VAR 
)
Value:
for(TYPE::iterator it=VAR.begin(); it!=VAR.end(); ++it) \
{ delete (*it); } \
VAR.clear();

◆ HAVE_PARALLEL_CB

#define HAVE_PARALLEL_CB

Definition at line 58 of file drvem.cpp.

◆ TSValidThreshold

#define TSValidThreshold   5

Definition at line 114 of file drvem.cpp.

Function Documentation

◆ epicsExportAddress() [1/4]

epicsExportAddress ( int  ,
evrMrmSeqRxDebug   
)

◆ epicsExportAddress() [2/4]

epicsExportAddress ( int  ,
evrMrmTimeDebug   
)

◆ epicsExportAddress() [3/4]

epicsExportAddress ( int  ,
evrMrmTimeNSOverflowThreshold   
)

◆ epicsExportAddress() [4/4]

epicsExportAddress ( double  ,
mrmEvrFIFOPeriod   
)

◆ OBJECT_PROP1() [1/7]

OBJECT_PROP1 ( "DCRx"  ,
&EVRMRM::dcRx   
)

◆ OBJECT_PROP1() [2/7]

OBJECT_PROP1 ( "DCInt"  ,
&EVRMRM::dcInternal   
)

◆ OBJECT_PROP1() [3/7]

OBJECT_PROP1 ( "DCStatusRaw"  ,
&EVRMRM::dcStatusRaw   
)

◆ OBJECT_PROP1() [4/7]

OBJECT_PROP1 ( "DCTOPID"  ,
&EVRMRM::topId   
)

◆ OBJECT_PROP1() [5/7]

OBJECT_PROP1 ( "NextSecond"  ,
getter   
)

◆ OBJECT_PROP1() [6/7]

OBJECT_PROP1 ( "Time Error"  ,
getter   
)

◆ OBJECT_PROP1() [7/7]

OBJECT_PROP1 ( "Sync TS"  ,
cmd   
)

◆ OBJECT_PROP2() [1/5]

OBJECT_PROP2 ( "Clock Mode"  ,
&EVRMRM::clockMode  ,
&EVRMRM::clockModeSet   
)

◆ OBJECT_PROP2() [2/5]

OBJECT_PROP2 ( "DCEnable"  ,
&EVRMRM::dcEnabled  ,
&EVRMRM::dcEnable   
)

◆ OBJECT_PROP2() [3/5]

OBJECT_PROP2 ( "DCTarget"  ,
&EVRMRM::dcTarget  ,
&EVRMRM::dcTargetSet   
)

◆ OBJECT_PROP2() [4/5]

OBJECT_PROP2 ( "EvtCode"  ,
&EVRMRM::dummy  ,
&EVRMRM::setEvtCode   
)

◆ OBJECT_PROP2() [5/5]

OBJECT_PROP2 ( "TimeSrc"  ,
&EVRMRM::timeSrc  ,
&EVRMRM::setTimeSrc   
)

Variable Documentation

◆ evrMrmIsrFlagsTrashCan

volatile epicsUInt32 evrMrmIsrFlagsTrashCan

Definition at line 1139 of file drvem.cpp.

◆ evrMrmSeqRxDebug

int evrMrmSeqRxDebug

Definition at line 62 of file drvem.cpp.

◆ evrMrmTimeDebug

int evrMrmTimeDebug

Definition at line 61 of file drvem.cpp.

◆ evrMrmTimeNSOverflowThreshold

int evrMrmTimeNSOverflowThreshold

value in nanoseconds above which a timestamp is considered invalid. below is truncated. May be necessary when simulating timestamp source in software

Definition at line 66 of file drvem.cpp.

◆ mrmEvrFIFOPeriod

double mrmEvrFIFOPeriod = 1.0/ 1000.0

Definition at line 108 of file drvem.cpp.