ACQ400_XRM (xrmIoc)
Toggle main menu visibility
Loading...
Searching...
No Matches
acq400_FMT_sim.h
Go to the documentation of this file.
1
/** @file acq400_FMT_sim.h
2
* @brief FMT simulator: sends FMT timed to CYCLE
3
* - requires CYCLE input on FP TRG
4
* - requires WR
5
* - local network MUST allow multicast to proceed
6
*
7
* Created on: 9 Feb 2026
8
* Author: pgm
9
*/
10
11
#ifndef XRMIOCAPP_SRC_ACQ400_FMT_SIM_H_
12
#define XRMIOCAPP_SRC_ACQ400_FMT_SIM_H_
13
14
#include "
acq400_FMT.h
"
15
16
/** REDIT : Row EDIT */
17
#define PS_FMT_REDIT_ROW "FMT_REDIT_ROW"
/* edit this row */
18
#define PS_FMT_REDIT_ROWCOUNT "FMT_REDIT_ROWCOUNT"
/* for this many rows */
19
#define PS_FMT_REDIT_EVENT "FMT_REDIT_EVENT"
/* set this event */
20
#define PS_FMT_REDIT_EVENT_STEP "FMT_REDIT_EVENT_STEP"
/* adding to subsequent rows */
21
#define PS_FMT_REDIT_CLIDAT "FMT_REDIT_CLIDAT"
22
#define PS_FMT_REDIT_CLIDAT_STEP "FMT_REDIT_CLIDAT_STEP"
23
24
#define PS_FMT_REDIT_COMMIT "FMT_REDIT_COMMIT"
25
#define PS_FMT_DELAY "FMT_DELAY"
/* hold back the FMT (msec) */
26
27
struct
TimeProvider
{
28
virtual
epicsInt64 time_now() = 0;
/* time in usec since epoch. Blocks until time available */
29
};
30
31
32
class
acq400_FMT_Sim:
public
acq400_FMT_abc {
33
virtual
void
update_fmt(
FMT
& fmt,
bool
first_time =
false
);
34
35
void
redit();
/* Row EDIT */
36
37
TimeProvider
& timeProvider;
38
int
delay_ms;
39
protected
:
40
virtual
void
task();
41
42
int
P_FMT_REDIT_ROW;
43
int
P_FMT_REDIT_ROWCOUNT;
44
int
P_FMT_REDIT_EVENT;
45
int
P_FMT_REDIT_EVENT_STEP;
46
int
P_FMT_REDIT_CLIDAT;
47
int
P_FMT_REDIT_CLIDAT_STEP;
48
int
P_FMT_REDIT_COMMIT;
49
int
P_FMT_DELAY;
50
51
public
:
52
acq400_FMT_Sim(
const
char
* portName,
TimeProvider
& _timeProvider);
53
virtual
~acq400_FMT_Sim() {}
54
55
asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value);
56
57
};
58
59
60
#endif
/* XRMIOCAPP_SRC_ACQ400_FMT_SIM_H_ */
acq400_FMT.h
Fermi Multicast Table Abstract Base Class Created on: 16 Feb 2026 Author: pgm.
TimeProvider
Definition
acq400_FMT_sim.h:27
FMT
struct FMT_ROW FMT[FMT_ROWS]
FMT : FNAL Multicast Table.
Definition
xrm_structs.h:57
xrmIocApp
src
acq400_FMT_sim.h
Generated by
1.17.0