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));
45
46// following items are available inside mfe.c to be used by the user frontend
47// look inside mfe.c to find out what they do.
48
49extern INT rpc_mode;
50extern INT run_state; /* STATE_RUNNING, STATE_STOPPED, STATE_PAUSED */
51extern INT run_number;
52extern DWORD actual_time; /* current time in seconds since 1970 */
53extern DWORD actual_millitime; /* current time in milliseconds */
54extern DWORD rate_period; /* period in ms for rate calculations */
55
56extern int gWriteCacheSize;
57
58extern char host_name[HOST_NAME_LENGTH];
59extern char exp_name[NAME_LENGTH];
60extern char full_frontend_name[256];
61
63extern INT optimize; /* set this to one to opimize TCP buffer size */
64extern INT fe_stop; /* stop switch for VxWorks */
65extern BOOL debug; /* disable watchdog messages from server */
66extern DWORD auto_restart; /* restart run after event limit reached stop */
67extern INT manual_trigger_event_id; /* set from the manual_trigger callback */
68extern INT verbosity_level; /* can be used by user code for debugging output */
69extern BOOL lockout_readout_thread; /* manual triggers, periodic events and 1Hz flush cache lockout the readout thread */
70
71extern HNDLE hDB;
72extern HNDLE hClient;
73
74extern volatile int stop_all_threads;
75
76
79extern BOOL slowcont_eq;
80extern void *event_buffer;
81extern void *frag_buffer;
82extern int *n_events;
83extern void mfe_error_check(void);
84extern void readout_enable(bool flag);
85extern bool readout_enabled(void);
86extern void display(BOOL bInit);
87extern void rotate_wheel(void);
88extern BOOL logger_root(void);
89extern void set_rate_period(int ms);
90extern int get_rate_period(void);
91
92extern INT manual_trigger(INT idx, void *prpc_param[]);
93
94/*---- frontend functions from midas.h ----*/
96void mfe_get_args(int *argc, char ***argv);
98void mfe_error(const char *error);
99void mfe_set_error(void (*dispatcher) (const char *));
100int set_equipment_status(const char *name, const char *eq_status, const char *status_class);
102INT get_event_rbh(int i);
103void stop_readout_threads(void);
108
109#endif
110
111/* emacs
112 * Local Variables:
113 * tab-width: 8
114 * c-basic-offset: 3
115 * indent-tabs-mode: nil
116 * End:
117 */
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:91
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:1518
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:1100
void set_max_event_size(int size)
Definition mfed.cxx:40
INT frontend_exit(void)
Frontend exit.
Definition mfed.cxx:80
INT get_frontend_index(void)
Definition mfe.cxx:2391
bool is_readout_thread_enabled(void)
Definition mfe.cxx:1168
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:1160
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:1180
DWORD actual_time
Definition mfe.cxx:37
void stop_readout_threads(void)
Definition mfe.cxx:1164
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:1172
BOOL equipment_common_overwrite
Definition feudp.cxx:50
void mfe_get_args(int *argc, char ***argv)
Definition mfe.cxx:2454
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:139
int gWriteCacheSize
Definition mfe.cxx:41
void mfe_error(const char *error)
Definition mfe.cxx:2418
void install_pause_run(INT(*f)())
Definition mfed.cxx:123
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:75
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:1503
void mfe_set_error(void(*dispatcher)(const char *))
Definition mfe.cxx:2404
void * event_buffer
Definition mfe.cxx:65
void mfe_error_check(void)
Definition mfe.cxx:2437
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:107
INT frontend_loop(void)
Frontend loop.
Definition mfed.cxx:162
INT create_event_rb(int i)
Definition mfe.cxx:1150
int set_equipment_status(const char *name, const char *eq_status, const char *status_class)
Definition mfe.cxx:884
EQUIPMENT * interrupt_eq
Definition mfe.cxx:61
void install_poll_event(INT(*f)(INT, INT, BOOL))
Definition mfed.cxx:54
void install_frontend_loop(INT(*f)())
Definition mfed.cxx:155
INT end_of_run(INT run_number, char *error)
End of Run.
Definition feudp.cxx:368
bool readout_enabled(void)
Definition mfe.cxx:1096
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