ACQ400_XRM (xrmIoc)
Loading...
Searching...
No Matches
acq400_SOE Class Reference
Inheritance diagram for acq400_SOE:
acq400_asynPortDriver

Classes

struct  COLUMNS
struct  HOLD_COLS

Public Member Functions

void clearHold ()
virtual asynStatus writeInt32 (asynUser *pasynUser, epicsInt32 value)
Public Member Functions inherited from acq400_asynPortDriver
 acq400_asynPortDriver (const char *portName, int maxAddr, int interfaceMask, int interruptMask, int asynFlags, int autoConnect, int priority, int stackSize)
virtual ~acq400_asynPortDriver ()

Static Public Member Functions

static void create_instance (const char *portName, acq400_SOE_Strategy *strategy)

Static Public Attributes

static const int CYCLE_MS

Protected Member Functions

void get_sample_dimensions ()
void init_the_hold_table ()
void redit ()
virtual void update_soe_lut (bool first_time=false)
virtual void update_soe_lut_columns (void)
virtual void update_soe_lut_callbacks (bool call_array_callbacks)
virtual void update_hld_tab_columns (void)
virtual void update_hld_tab_callbacks (int n_u32)
virtual void update_hld_tab_columns_callbacks (void)
char * get_raw ()
void update_kbuf_info (char *raw)
virtual void task ()
 acq400_SOE (const char *portName, acq400_SOE_Strategy *strategy)
Protected Member Functions inherited from acq400_asynPortDriver
asynStatus gip (int pnum, int *pram)
asynStatus gip (int addr, int pnum, int *pram)
asynStatus sip (int addr, int pnum, int pram)
asynStatus sip (int addr, int pnum, unsigned pram)
asynStatus sip (int addr, int pnum, epicsInt64 pram)
asynStatus sip (int addr, int pnum, double pram)
asynStatus gsp (int pnum, int maxchar, char *str)
asynStatus ssp (int pnum, const char *str)

Static Protected Member Functions

static void task_runner (void *drvPvt)

Protected Attributes

SOE_LUT soe_lut
SOE_HOLD_HEADERthe_hold_table
acq400_SOE_Strategystrategy
struct acq400_SOE::COLUMNS cols
struct acq400_SOE::HOLD_COLS hold_cols
unsigned fmt_rx_timeouts
unsigned fmt_rx_success
int hold_row_limit
SamplePrams samplePrams
struct KBUF current_kb
int P_SOE_STRATEGY
int P_SOE_LUT_COL_ROWNUM
int P_SOE_LUT_COL_EVENT
int P_SOE_LUT_COL_PAD
int P_SOE_LUT_COL_PV_ID
int P_SOE_LUT_COL_OFFSET_US
int P_SOE_LUT_REDIT_ROW
int P_SOE_LUT_REDIT_ROWCOUNT
int P_SOE_LUT_REDIT_EVENT
int P_SOE_LUT_REDIT_EVENT_STEP
int P_SOE_LUT_REDIT_PV_ID
int P_SOE_LUT_REDIT_PV_ID_STEP
int P_SOE_LUT_REDIT_OFFSET_US
int P_SOE_LUT_REDIT_OFFSET_US_STEP
int P_SOE_LUT_REDIT_COMMIT
int P_SOE_AGG_SITES
int P_SOE_SITE_SSB
int P_SOE_SMPL_SS_U32
int P_SOE_SMPL_NSAM
int P_SOE_SITE_IS_ADC
int P_SOE_SMPL_AI_COUNT
int P_SOE_SMPL_DI_COUNT
int P_SOE_SMPL_SP_COUNT
int P_SOE_SMPL_DI_INDEX
int P_SOE_SMPL_SP_INDEX
int P_SOE_HLD_COL_ROWNUM
int P_SOE_HLD_COL_EVT
int P_SOE_HLD_COL_PV_ID
int P_SOE_HLD_COL_OFFSET_US
int P_SOE_HLD_COL_CLIDAT
int P_SOE_HLD_COL_TS
int P_SOE_HLD_COL_DATA_OFFSET
int P_SOE_HLD_COL_AI1
int P_SOE_HLD_COL_AI2
int P_SOE_HLD_COL_DI1
int P_SOE_HLD_COL_DI2
int P_SOE_HLD_COL_SP0
int P_SOE_HLD_COL_SP1
int P_SOE_HLD_COL_SP2
int P_SOE_HLD_COL_SP3
int P_SOE_HLD_COL_WRVS
int P_SOE_HLD_COL_WRVT
int P_SOE_HLD_COL_WRUS
int P_SOE_KBUF_INDEX
int P_SOE_KBUF_WRT0
int P_SOE_KBUF_WRT1
int P_SOE_FMT_RX_TIMEOUTS
int P_SOE_FMT_RX_TIMEOUT_REASON
int P_SOE_FMT_DELTA_TS
int P_SOE_FMT_RX_SUCCESS
int P_SOE_FMT_EV_MATCHES
int P_SOE_FMT_EV_NIB
int P_SOE_FMT_BUF_POS
int P_SOE_FMT_NEXT_RETRY
int P_SOE_HLD_TABLE_WF
int ib
Protected Attributes inherited from acq400_asynPortDriver
epicsEventId eventId
int P_RUNSTOP
int P_UPDATES
int P_TS_USEC
int P_MON_RL
int mrl_param
unsigned update

Static Protected Attributes

static int verbose = ::getenv_default("acq400_SOE_VERBOSE", 0)
static int nice = ::getenv_default("acq400_SOE_NICE", 0)
static acq400_SOE_instance

Constructor & Destructor Documentation

◆ acq400_SOE()

acq400_SOE::acq400_SOE ( const char * portName,
acq400_SOE_Strategy * strategy )
protected

ib is physical buffer contains bpb vpb's

Member Data Documentation

◆ P_SOE_AGG_SITES

int acq400_SOE::P_SOE_AGG_SITES
protected

Geometry: aggregator site list

◆ P_SOE_FMT_BUF_POS

int acq400_SOE::P_SOE_FMT_BUF_POS
protected

Stat: buffer position: -1:PREV, 0:CUR, 1:NEXT

◆ P_SOE_FMT_DELTA_TS

int acq400_SOE::P_SOE_FMT_DELTA_TS
protected

Stat: Delta TS: time between FMT and latest KBUF

◆ P_SOE_FMT_EV_MATCHES

int acq400_SOE::P_SOE_FMT_EV_MATCHES
protected

Stat: count buffers with matching events

◆ P_SOE_FMT_EV_NIB

int acq400_SOE::P_SOE_FMT_EV_NIB
protected

Stat: count buffers with events NOT IN BUFFER

◆ P_SOE_FMT_NEXT_RETRY

int acq400_SOE::P_SOE_FMT_NEXT_RETRY
protected

Stat: if next, number of retrys

◆ P_SOE_FMT_RX_SUCCESS

int acq400_SOE::P_SOE_FMT_RX_SUCCESS
protected

Stat: count timely received buffers

◆ P_SOE_FMT_RX_TIMEOUT_REASON

int acq400_SOE::P_SOE_FMT_RX_TIMEOUT_REASON
protected

Stat: Receive Timeout Reason

◆ P_SOE_FMT_RX_TIMEOUTS

int acq400_SOE::P_SOE_FMT_RX_TIMEOUTS
protected

Stat: Receive Timeouts

◆ P_SOE_HLD_COL_AI1

int acq400_SOE::P_SOE_HLD_COL_AI1
protected

HLD view speciment AI#1 (we can't slice them all)

◆ P_SOE_HLD_COL_AI2

int acq400_SOE::P_SOE_HLD_COL_AI2
protected

HLD view speciment AI#2 (we can't slice them all)

◆ P_SOE_HLD_COL_CLIDAT

int acq400_SOE::P_SOE_HLD_COL_CLIDAT
protected

HLD view show CLIDAT

◆ P_SOE_HLD_COL_DATA_OFFSET

int acq400_SOE::P_SOE_HLD_COL_DATA_OFFSET
protected

HLD view show offset to data in HLD TABLE

◆ P_SOE_HLD_COL_DI1

int acq400_SOE::P_SOE_HLD_COL_DI1
protected

HLD view DI32#1

◆ P_SOE_HLD_COL_DI2

int acq400_SOE::P_SOE_HLD_COL_DI2
protected

HLD view DI32#2

◆ P_SOE_HLD_COL_EVT

int acq400_SOE::P_SOE_HLD_COL_EVT
protected

HLD view show EVT (from LUT)

◆ P_SOE_HLD_COL_OFFSET_US

int acq400_SOE::P_SOE_HLD_COL_OFFSET_US
protected

HLD view show offset us (from LUT)

◆ P_SOE_HLD_COL_PV_ID

int acq400_SOE::P_SOE_HLD_COL_PV_ID
protected

HLD view show PV_ID

◆ P_SOE_HLD_COL_ROWNUM

int acq400_SOE::P_SOE_HLD_COL_ROWNUM
protected

HLD view show ROWNUM (synthetic)

◆ P_SOE_HLD_COL_SP0

int acq400_SOE::P_SOE_HLD_COL_SP0
protected

HLD view SPAD[0] (Sample Number)

◆ P_SOE_HLD_COL_SP1

int acq400_SOE::P_SOE_HLD_COL_SP1
protected

HLD view SPAD[1] (usec since trigger)

◆ P_SOE_HLD_COL_SP2

int acq400_SOE::P_SOE_HLD_COL_SP2
protected

HLD view SPAD[2] (WR Vernier)

◆ P_SOE_HLD_COL_SP3

int acq400_SOE::P_SOE_HLD_COL_SP3
protected

HLD view SPAD[3] (WR seconds since EPOCH)

◆ P_SOE_HLD_COL_TS

int acq400_SOE::P_SOE_HLD_COL_TS
protected

HLD view show TimeStamp

◆ P_SOE_HLD_COL_WRUS

int acq400_SOE::P_SOE_HLD_COL_WRUS
protected

HLD view WR Time usec since epich (calculated)

◆ P_SOE_HLD_COL_WRVS

int acq400_SOE::P_SOE_HLD_COL_WRVS
protected

HLD view WR Vernier Seconds (f(SPAD[2])

◆ P_SOE_HLD_COL_WRVT

int acq400_SOE::P_SOE_HLD_COL_WRVT
protected

HLD view WR Vernier Ticks (f(SPAD[2])

◆ P_SOE_HLD_TABLE_WF

int acq400_SOE::P_SOE_HLD_TABLE_WF
protected

HLD Table full binary output for remote clients

◆ P_SOE_KBUF_INDEX

int acq400_SOE::P_SOE_KBUF_INDEX
protected

Current KBUF number

◆ P_SOE_KBUF_WRT0

int acq400_SOE::P_SOE_KBUF_WRT0
protected

Current KBUF start time

◆ P_SOE_KBUF_WRT1

int acq400_SOE::P_SOE_KBUF_WRT1
protected

Current KBUF end time

◆ P_SOE_LUT_COL_EVENT

int acq400_SOE::P_SOE_LUT_COL_EVENT
protected

LUT view show EVENT

◆ P_SOE_LUT_COL_OFFSET_US

int acq400_SOE::P_SOE_LUT_COL_OFFSET_US
protected

LUT view show OFFSET_US

◆ P_SOE_LUT_COL_PAD

int acq400_SOE::P_SOE_LUT_COL_PAD
protected

LUT view show PAD

◆ P_SOE_LUT_COL_PV_ID

int acq400_SOE::P_SOE_LUT_COL_PV_ID
protected

LUT view show PV_ID

◆ P_SOE_LUT_COL_ROWNUM

int acq400_SOE::P_SOE_LUT_COL_ROWNUM
protected

LUT view show ROWNUM (synthetic)

◆ P_SOE_LUT_REDIT_COMMIT

int acq400_SOE::P_SOE_LUT_REDIT_COMMIT
protected

Row Edit: action the new definition

◆ P_SOE_LUT_REDIT_EVENT

int acq400_SOE::P_SOE_LUT_REDIT_EVENT
protected

Row Edit set EVENT for first row

◆ P_SOE_LUT_REDIT_EVENT_STEP

int acq400_SOE::P_SOE_LUT_REDIT_EVENT_STEP
protected

Row Edit def series of EVENTs

◆ P_SOE_LUT_REDIT_OFFSET_US

int acq400_SOE::P_SOE_LUT_REDIT_OFFSET_US
protected

Row Edit first OFFSET_US

◆ P_SOE_LUT_REDIT_OFFSET_US_STEP

int acq400_SOE::P_SOE_LUT_REDIT_OFFSET_US_STEP
protected

Row edit def series of offsets

◆ P_SOE_LUT_REDIT_PV_ID

int acq400_SOE::P_SOE_LUT_REDIT_PV_ID
protected

Row Edit set first PV ID

◆ P_SOE_LUT_REDIT_PV_ID_STEP

int acq400_SOE::P_SOE_LUT_REDIT_PV_ID_STEP
protected

Row Edit def series of PV_IDS's

◆ P_SOE_LUT_REDIT_ROW

int acq400_SOE::P_SOE_LUT_REDIT_ROW
protected

Row Edit define first row

◆ P_SOE_LUT_REDIT_ROWCOUNT

int acq400_SOE::P_SOE_LUT_REDIT_ROWCOUNT
protected

Row Edit number of rows to edit

◆ P_SOE_SITE_IS_ADC

int acq400_SOE::P_SOE_SITE_IS_ADC
protected

Geometry: First ADC site

◆ P_SOE_SITE_SSB

int acq400_SOE::P_SOE_SITE_SSB
protected

Geometry: Sample Size Bytes

◆ P_SOE_SMPL_AI_COUNT

int acq400_SOE::P_SOE_SMPL_AI_COUNT
protected

Geometry: number of AI16 columns in data

◆ P_SOE_SMPL_DI_COUNT

int acq400_SOE::P_SOE_SMPL_DI_COUNT
protected

Geometry: number of DI32 columns in data

◆ P_SOE_SMPL_DI_INDEX

int acq400_SOE::P_SOE_SMPL_DI_INDEX
protected

Geometry: index of first DI word

◆ P_SOE_SMPL_NSAM

int acq400_SOE::P_SOE_SMPL_NSAM
protected

Geometry: Number of Samples in Burst

◆ P_SOE_SMPL_SP_COUNT

int acq400_SOE::P_SOE_SMPL_SP_COUNT
protected

Geometry: number of SP32 columns in data

◆ P_SOE_SMPL_SP_INDEX

int acq400_SOE::P_SOE_SMPL_SP_INDEX
protected

Geometry: index of first SP word

◆ P_SOE_SMPL_SS_U32

int acq400_SOE::P_SOE_SMPL_SS_U32
protected

Geometry: Sample Size U32

◆ P_SOE_STRATEGY

int acq400_SOE::P_SOE_STRATEGY
protected

STRATEGY: LutFmtStrategy1 or NullStrategy (used initial test).

◆ the_hold_table

SOE_HOLD_HEADER* acq400_SOE::the_hold_table
protected

preallocate the max possible size. do it once!


The documentation for this class was generated from the following files: