MIDAS
Loading...
Searching...
No Matches
mfe.h
Go to the documentation of this file.
1/********************************************************************\
2
3 Name: mfe.h
4 Created by: Konstantin Olchanski
5
6 Contents: Externals for mfe.c that must be defined in the user frontend
7
8\********************************************************************/
9
10#ifndef _MFE_H_
11#define _MFE_H_
12
13#include "midas.h"
14
15// following items must be provided to mfe.cxx by the user frontend
16
17extern const char *frontend_name;
18extern const char *frontend_file_name;
20extern INT max_event_size;
23extern INT display_period;
25extern EQUIPMENT equipment[];
26extern INT frontend_init(void);
27extern INT frontend_exit(void);
28extern INT frontend_loop(void);
29extern INT begin_of_run(INT run_number, char *error);
30extern INT end_of_run(INT run_number, char *error);
31extern INT pause_run(INT run_number, char *error);
32extern INT resume_run(INT run_number, char *error);
33extern INT poll_event(INT source, INT count, BOOL test);
34extern INT interrupt_configure(INT cmd, INT source, POINTER_T adr);
35
36// following items are defined in mfed.cxx to simplify frontend syntax
37extern void set_max_event_size(int size);
38extern void install_frontend_loop(INT (*f)());
39extern void install_frontend_exit(INT (*f)());
40extern void install_begin_of_run(INT (*f)());
41extern void install_end_of_run(INT (*f)());
42extern void install_pause_run(INT (*f)());
43extern void install_resume_run(INT (*f)());
44extern void install_poll_event(INT (*f)(INT,INT,BOOL));
45extern INT set_cache_size(std::string buffer, int size);
46
47// following items are available inside mfe.c to be used by the user frontend
48// look inside mfe.c to find out what they do.
49
50extern INT rpc_mode;
51extern INT run_state; /* STATE_RUNNING, STATE_STOPPED, STATE_PAUSED */
52extern INT run_number;
53extern DWORD actual_time; /* current time in seconds since 1970 */
54extern DWORD actual_millitime; /* current time in milliseconds */
55extern DWORD rate_period; /* period in ms for rate calculations */
56
57extern int gWriteCacheSize;
58
59extern char host_name[HOST_NAME_LENGTH];
60extern char exp_name[NAME_LENGTH];
61extern char full_frontend_name[256];
62
64extern INT optimize; /* set this to one to opimize TCP buffer size */
65extern INT fe_stop; /* stop switch for VxWorks */
66extern BOOL debug; /* disable watchdog messages from server */
67extern DWORD auto_restart; /* restart run after event limit reached stop */
68extern INT manual_trigger_event_id; /* set from the manual_trigger callback */
69extern INT verbosity_level; /* can be used by user code for debugging output */
70extern BOOL lockout_readout_thread; /* manual triggers, periodic events and 1Hz flush cache lockout the readout thread */
71
72extern HNDLE hDB;
73extern HNDLE hClient;
74
75extern volatile int stop_all_threads;
76
77
80extern BOOL slowcont_eq;
81extern void *event_buffer;
82extern void *frag_buffer;
83extern int *n_events;
84extern void mfe_error_check(void);
85extern void readout_enable(bool flag);
86extern bool readout_enabled(void);
87extern void display(BOOL bInit);
88extern void rotate_wheel(void);
89extern BOOL logger_root(void);
90extern void set_rate_period(int ms);
91extern int get_rate_period(void);
92
93extern INT manual_trigger(INT idx, void *prpc_param[]);
94
95/*---- frontend functions from midas.h ----*/
97void mfe_get_args(int *argc, char ***argv);
99void mfe_error(const char *error);
100void mfe_set_error(void (*dispatcher) (const char *));
101int set_equipment_status(const char *name, const char *eq_status, const char *status_class);
103INT get_event_rbh(int i);
104void stop_readout_threads(void);
109
110#endif
111
112/* emacs
113 * Local Variables:
114 * tab-width: 8
115 * c-basic-offset: 3
116 * indent-tabs-mode: nil
117 * End:
118 */
unsigned int DWORD
Definition mcstd.h:51
INT index
Definition mana.cxx:271
double count
Definition mdump.cxx:33
INT i
Definition mdump.cxx:32
std::vector< FMT_ID > eq
Definition mdump.cxx:55
BOOL frontend_call_loop
frontend_loop is called periodically if this variable is TRUE
Definition mfed.cxx:24
void install_begin_of_run(INT(*f)())
Definition mfed.cxx:111
const char * frontend_file_name
The frontend file name, don't change it.
Definition feudp.cxx:23
void set_rate_period(int ms)
Definition mfe.cxx:93
char exp_name[NAME_LENGTH]
Definition mana.cxx:243
INT max_event_size
maximum event size produced by this frontend
Definition mfed.cxx:30
int get_rate_period(void)
Definition mfe.cxx:97
INT run_number
Definition mana.cxx:246
INT optimize
Definition mfe.cxx:48
BOOL logger_root(void)
Definition mfe.cxx:1497
INT rpc_mode
Definition mfe.cxx:27
int * n_events
Definition mfe.cxx:68
INT max_bytes_per_sec
Definition mfe.cxx:47
void readout_enable(bool flag)
Definition mfe.cxx:1079
void set_max_event_size(int size)
Definition mfed.cxx:40
INT frontend_exit(void)
Frontend exit.
Definition mfed.cxx:100
INT get_frontend_index(void)
Definition mfe.cxx:2368
bool is_readout_thread_enabled(void)
Definition mfe.cxx:1147
INT event_buffer_size
buffer size to hold events
Definition mfed.cxx:36
BOOL slowcont_eq
Definition mfe.cxx:64
void register_cnaf_callback(int debug)
INT get_event_rbh(int i)
Definition mfe.cxx:1139
INT max_event_size_frag
maximum event size for fragmented events (EQ_FRAGMENTED)
Definition mfed.cxx:33
DWORD rate_period
Definition mfe.cxx:39
void signal_readout_thread_active(int index, int flag)
Definition mfe.cxx:1159
DWORD actual_time
Definition mfe.cxx:37
void stop_readout_threads(void)
Definition mfe.cxx:1143
INT interrupt_configure(INT cmd, INT source, POINTER_T adr)
Interrupt configuration (not implemented)
Definition feccusb.cxx:513
EQUIPMENT * multithread_eq
Definition mfe.cxx:62
DWORD actual_millitime
Definition mfe.cxx:38
INT set_odb_equipment_common(EQUIPMENT eq[], const char *name)
int is_readout_thread_active(void)
Definition mfe.cxx:1151
BOOL equipment_common_overwrite
Definition feudp.cxx:50
void mfe_get_args(int *argc, char ***argv)
Definition mfe.cxx:2431
DWORD auto_restart
Definition mfe.cxx:51
INT frontend_init(void)
Frontend initialization.
INT run_state
Definition mfe.cxx:35
BOOL debug
Definition mana.cxx:254
INT fe_stop
Definition mfe.cxx:49
INT manual_trigger_event_id
Definition mfe.cxx:52
void install_resume_run(INT(*f)())
Definition mfed.cxx:159
int gWriteCacheSize
Definition mfe.cxx:41
void mfe_error(const char *error)
Definition mfe.cxx:2395
void install_pause_run(INT(*f)())
Definition mfed.cxx:143
INT poll_event(INT source, INT count, BOOL test)
Polling routine for events.
Definition feudp.cxx:388
char full_frontend_name[256]
Definition mfe.cxx:45
INT manual_trigger(INT idx, void *prpc_param[])
Definition mfe.cxx:267
EQUIPMENT equipment[]
Main structure for midas equipment.
Definition feudp.cxx:52
void install_frontend_exit(INT(*f)())
Definition mfed.cxx:95
HNDLE hDB
Definition mana.cxx:207
const char * frontend_name
The frontend name (client name) as seen by other MIDAS clients.
Definition feudp.cxx:22
volatile int stop_all_threads
INT display_period
a frontend status page is displayed with this frequency in ms
Definition mfed.cxx:27
void rotate_wheel(void)
Definition mfe.cxx:1482
void mfe_set_error(void(*dispatcher)(const char *))
Definition mfe.cxx:2381
void * event_buffer
Definition mfe.cxx:65
void mfe_error_check(void)
Definition mfe.cxx:2414
BOOL lockout_readout_thread
Definition mfe.cxx:55
INT verbosity_level
Definition mfe.cxx:54
INT begin_of_run(INT run_number, char *error)
Begin of Run.
Definition feudp.cxx:361
void install_end_of_run(INT(*f)())
Definition mfed.cxx:127
INT frontend_loop(void)
Frontend loop.
Definition mfed.cxx:182
INT create_event_rb(int i)
Definition mfe.cxx:1129
int set_equipment_status(const char *name, const char *eq_status, const char *status_class)
Definition mfe.cxx:863
EQUIPMENT * interrupt_eq
Definition mfe.cxx:61
INT set_cache_size(std::string buffer, int size)
Definition mfed.cxx:74
void install_poll_event(INT(*f)(INT, INT, BOOL))
Definition mfed.cxx:55
void install_frontend_loop(INT(*f)())
Definition mfed.cxx:175
INT end_of_run(INT run_number, char *error)
End of Run.
Definition feudp.cxx:368
bool readout_enabled(void)
Definition mfe.cxx:1075
void * frag_buffer
Definition mfe.cxx:66
HNDLE hClient
Definition mfe.cxx:59
char host_name[HOST_NAME_LENGTH]
Definition mana.cxx:242
INT HNDLE
Definition midas.h:132
#define HOST_NAME_LENGTH
Definition midas.h:273
DWORD BOOL
Definition midas.h:105
int INT
Definition midas.h:129
#define POINTER_T
Definition midas.h:166
#define NAME_LENGTH
Definition midas.h:272
#define resume_run
#define display(s)
Definition midas_macro.h:25
#define name(x)
Definition midas_macro.h:24
#define pause_run
program test
Definition miniana.f:6
TH1X EXPRT * h1_book(const char *name, const char *title, int bins, double min, double max)
Definition rmidas.h:24