midas_macro.h File Reference

Go to the source code of this file.

Defines

#define name(x)   char *frontend_name = #x; char *frontend_file_name = __FILE__;
#define display(s)   INT display_period = s*1000;
#define mask(slot)   (1<<(slot-1))
#define equipment_begin   EQUIPMENT equipment[] = {
#define equipment_end   { "" }};
#define equipment(name, id, type, source, readon, period, readout, cd, driver)
#define equipment_trigger(id, type, s)
#define equipment_periodic(name, id, period)
#define equipment_hv(id, period)
#define hv_driver_begin   DEVICE_DRIVER hv_driver[] = {
#define driver(name, count)   { #name, name, count },
#define hv_driver_end   { "" }};
#define trigger_update_begin   void trigger_update(void) {
#define trigger_update_end   }
#define init_begin   void user_init() {
#define init_end   }
#define exit_begin   void user_exit() {
#define exit_end   }
#define begin_run   INT begin_of_run(INT run_number, char *error) {
#define begin_run_end   return SUCCESS; }
#define end_run   INT end_of_run(INT run_number, char *error) {
#define end_run_end   return SUCCESS; }
#define pause_run   INT pause_run(INT run_number, char *error) {
#define pause_run_end   return SUCCESS; }
#define resume_run   INT resume_run(INT run_number, char *error) {
#define resume_run_end   return SUCCESS; }
#define readout_begin(name)
#define readout_end   } return bk_size(pevent); }
#define readout_abort   return 0;
#define trigger_mask   TRIGGER_MASK(pevent)
#define event_id   EVENT_ID(pevent)
#define serial_number   SERIAL_NUMBER(pevent)
#define time_stamp   TIME_STAMP(pevent)
#define bank(name)   bk_create(pevent, #name, TID_WORD, &pdata);
#define bank32(name)   bk_create(pevent, #name, TID_DWORD, &pdata);
#define bank_end   bk_close(pevent, pdata);
#define read(n, a, f)   cam16i(_crate,n,a,f,pdata++);
#define read_into(n, a, f, d)   cam16i(_crate,n,a,f,&d);
#define read32(n, a, f)   { cam24i(_crate,n,a,f,(DWORD*)pdata); ((DWORD*)pdata)++; }
#define write(n, a, f, d)   cam24o(_crate,n,a,f,d);
#define control(n, a, f)   camc(_crate,n,a,f);
#define test_q(n, a, f, q)   camc_q(_crate,n,a,f,&q);
#define wait_q(n, a, f)   { int _q; do { camc_q(_crate,n,a,f,&_q); } while(!_q); }
#define last_read   *(pdata-1)
#define last_read32   *(((DWORD *)pdata)-1)
#define camac_init   cam_init();
#define camac_set_crate(c)   _crate = c;
#define camac_crate_clear   cam_crate_clear(_crate);
#define camac_crate_zinit   cam_crate_zinit(_crate);
#define camac_inhibit_clear   cam_inhibit_clear(_crate);
#define camac_inhibit_set   cam_inhibit_set(_crate);
#define camac_lam_enable(n)   cam_lam_enable(_crate,n);
#define camac_lam_clear(n)   cam_lam_clear(_crate,n);
#define message(type, str)   cm_msg(M##type, "user code", str);
#define odb_set(path, value, type)   db_set_value(hdb, 0, #path, &value, sizeof(value), 1, TID_##type);
#define sleep(ms)   ss_sleep(ms);
#define variable(name)   int name;
#define constant(name, value)   int name=value;
#define increment(var)   var++;
#define decrement(var)   var--;
#define set(var, value)   var = value;
#define loop(var, c1, c2)   for (var=c1 ; var<=c2 ; var++)
#define call(sub)   sub();
#define begin   {
#define end   }
#define equal   ==
#define or   ||
#define and   &&

Functions

INT frontend_init ()
INT frontend_exit ()
INT begin_of_run (INT run_number, char *error)
INT end_of_run (INT run_number, char *error)
INT pause_run (INT run_number, char *error)
INT resume_run (INT run_number, char *error)
INT frontend_loop ()
INT read_trigger (char *pevent)
INT read_scaler (char *pevent)
INT poll_event (INT source, INT count, BOOL test)
INT interrupt_configure (INT cmd, INT source, PTYPE adr)
void user_init (void)
void user_exit (void)

Variables

BOOL frontend_call_loop = FALSE
HNDLE hdb
INT _crate = 0


Define Documentation

#define and   &&

Definition at line 287 of file midas_macro.h.

#define bank ( name   )     bk_create(pevent, #name, TID_WORD, &pdata);

Definition at line 238 of file midas_macro.h.

#define bank32 ( name   )     bk_create(pevent, #name, TID_DWORD, &pdata);

Definition at line 239 of file midas_macro.h.

#define bank_end   bk_close(pevent, pdata);

Definition at line 240 of file midas_macro.h.

#define begin   {

Definition at line 282 of file midas_macro.h.

#define begin_run   INT begin_of_run(INT run_number, char *error) {

Definition at line 204 of file midas_macro.h.

#define begin_run_end   return SUCCESS; }

Definition at line 205 of file midas_macro.h.

#define call ( sub   )     sub();

Definition at line 281 of file midas_macro.h.

#define camac_crate_clear   cam_crate_clear(_crate);

Definition at line 254 of file midas_macro.h.

#define camac_crate_zinit   cam_crate_zinit(_crate);

Definition at line 255 of file midas_macro.h.

#define camac_inhibit_clear   cam_inhibit_clear(_crate);

Definition at line 256 of file midas_macro.h.

#define camac_inhibit_set   cam_inhibit_set(_crate);

Definition at line 257 of file midas_macro.h.

#define camac_init   cam_init();

Definition at line 252 of file midas_macro.h.

#define camac_lam_clear ( n   )     cam_lam_clear(_crate,n);

Definition at line 260 of file midas_macro.h.

#define camac_lam_enable ( n   )     cam_lam_enable(_crate,n);

Definition at line 258 of file midas_macro.h.

#define camac_set_crate (  )     _crate = c;

Definition at line 253 of file midas_macro.h.

#define constant ( name,
value   )     int name=value;

Definition at line 274 of file midas_macro.h.

#define control ( n,
a,
 )     camc(_crate,n,a,f);

Definition at line 246 of file midas_macro.h.

#define decrement ( var   )     var--;

Definition at line 277 of file midas_macro.h.

#define display (  )     INT display_period = s*1000;

Definition at line 25 of file midas_macro.h.

Referenced by main(), and manual_trigger().

#define driver ( name,
count   )     { #name, name, count },

Definition at line 80 of file midas_macro.h.

Referenced by main().

#define end   }

Definition at line 283 of file midas_macro.h.

#define end_run   INT end_of_run(INT run_number, char *error) {

Definition at line 206 of file midas_macro.h.

#define end_run_end   return SUCCESS; }

Definition at line 207 of file midas_macro.h.

#define equal   ==

Definition at line 285 of file midas_macro.h.

#define equipment ( name,
id,
type,
source,
readon,
period,
readout,
cd,
driver   ) 

Value:

{ #name, id, 0, "SYSTEM", type, source, "MIDAS", TRUE, readon, period, 0, 0, "","","", \
    readout, cd, driver },

Definition at line 60 of file midas_macro.h.

Referenced by check_polled_events(), display(), initialize_equipment(), load_fragment(), main(), manual_trigger(), process_event(), register_equipment(), scan_fragment(), scheduler(), send_all_periodic_events(), send_event(), set_equipment_status(), show_status_page(), tr_start(), tr_start_fal(), and tr_stop().

#define equipment_begin   EQUIPMENT equipment[] = {

Definition at line 56 of file midas_macro.h.

#define equipment_end   { "" }};

Definition at line 58 of file midas_macro.h.

#define equipment_hv ( id,
period   ) 

Value:

equipment(HV, id, EQ_SLOW, 0,\
  RO_RUNNING|RO_TRANSITIONS, period*1000,\
  cd_hv_read, cd_hv, hv_driver)

Definition at line 73 of file midas_macro.h.

#define equipment_periodic ( name,
id,
period   ) 

Value:

equipment(name, id, EQ_PERIODIC, 0,\
  RO_RUNNING|RO_TRANSITIONS|RO_ODB, period*1000,\
  read_##name, NULL, NULL)

Definition at line 68 of file midas_macro.h.

#define equipment_trigger ( id,
type,
 ) 

Value:

equipment(Trigger, id, EQ_##type, s, RO_RUNNING|RO_ODB, 500, \
  read_trigger, NULL, NULL)

Definition at line 64 of file midas_macro.h.

#define event_id   EVENT_ID(pevent)

Definition at line 234 of file midas_macro.h.

Referenced by export_hist(), MidasHistory::GetEventsFromOdbTags(), MidasHistory::GetTagsFromOdb(), MidasHistory::hs_define_event(), MidasHistory::hs_read(), MidasHistory::hs_write_event(), interprete(), load_fragment(), main(), md_event_swap(), source_booking(), and MidasHistory::xhs_event_id().

#define exit_begin   void user_exit() {

Definition at line 199 of file midas_macro.h.

#define exit_end   }

Definition at line 200 of file midas_macro.h.

#define hv_driver_begin   DEVICE_DRIVER hv_driver[] = {

Definition at line 78 of file midas_macro.h.

#define hv_driver_end   { "" }};

Definition at line 82 of file midas_macro.h.

#define increment ( var   )     var++;

Definition at line 276 of file midas_macro.h.

Referenced by bm_wait_for_free_space().

#define init_begin   void user_init() {

Definition at line 197 of file midas_macro.h.

#define init_end   }

Definition at line 198 of file midas_macro.h.

#define last_read   *(pdata-1)

Definition at line 249 of file midas_macro.h.

#define last_read32   *(((DWORD *)pdata)-1)

Definition at line 250 of file midas_macro.h.

#define loop ( var,
c1,
c2   )     for (var=c1 ; var<=c2 ; var++)

Definition at line 280 of file midas_macro.h.

#define mask ( slot   )     (1<<(slot-1))

Definition at line 54 of file midas_macro.h.

Referenced by assemble_prompt(), v1720_ChannelGet(), and v1720_ChannelSet().

#define message ( type,
str   )     cm_msg(M##type, "user code", str);

Definition at line 262 of file midas_macro.h.

Referenced by command_loop(), and SqlODBC::ReportErrors().

#define name (  )     char *frontend_name = #x; char *frontend_file_name = __FILE__;

Definition at line 24 of file midas_macro.h.

Referenced by adc_calib_init(), ascii_write(), cm_check_client(), cm_connect_client(), cm_connect_experiment1(), cm_deregister_transition(), cm_list_experiments(), cm_register_deferred_transition(), cm_register_transition(), cm_scan_experiments(), cm_set_client_info(), cm_set_transition_sequence(), cm_transition1(), command_loop(), db_open_database(), device_driver(), dump_write(), get_event_id(), get_variable_id(), SqlHistory::hs_define_event(), hs_define_event_odbc(), hs_get_tags_odbc(), initialize_equipment(), lazy_maintain_check(), lazy_select_purge(), main(), PrintTags(), readHstFile(), register_equipment(), show_hist_config_page(), show_programs_page(), show_sc_page(), show_status_page(), test_register(), test_write(), and tr_start().

#define odb_set ( path,
value,
type   )     db_set_value(hdb, 0, #path, &value, sizeof(value), 1, TID_##type);

Definition at line 266 of file midas_macro.h.

#define or   ||

Definition at line 286 of file midas_macro.h.

#define pause_run   INT pause_run(INT run_number, char *error) {

Definition at line 208 of file midas_macro.h.

Referenced by tr_pause().

#define pause_run_end   return SUCCESS; }

Definition at line 209 of file midas_macro.h.

#define read ( n,
a,
 )     cam16i(_crate,n,a,f,pdata++);

Definition at line 242 of file midas_macro.h.

Referenced by cm_execute(), command_loop(), db_load(), el_submit(), ftp_put(), hs_dump(), md_dev_os_read(), show_custom_gif(), show_custom_page(), show_elog_page(), and submit_elog().

#define read32 ( n,
a,
 )     { cam24i(_crate,n,a,f,(DWORD*)pdata); ((DWORD*)pdata)++; }

Definition at line 244 of file midas_macro.h.

#define read_into ( n,
a,
f,
 )     cam16i(_crate,n,a,f,&d);

Definition at line 243 of file midas_macro.h.

#define readout_abort   return 0;

Definition at line 231 of file midas_macro.h.

#define readout_begin ( name   ) 

Value:

INT read_##name(char *pevent) \
{                                                         \
WORD *pdata; INT source;                                  \
                                                          \
  source = *((INT *)pevent);                              \
  bk_init(pevent); {

Definition at line 222 of file midas_macro.h.

#define readout_end   } return bk_size(pevent); }

Definition at line 229 of file midas_macro.h.

#define resume_run   INT resume_run(INT run_number, char *error) {

Definition at line 210 of file midas_macro.h.

Referenced by tr_resume().

#define resume_run_end   return SUCCESS; }

Definition at line 211 of file midas_macro.h.

#define serial_number   SERIAL_NUMBER(pevent)

Definition at line 235 of file midas_macro.h.

Referenced by eb_user(), handFlush(), tr_start(), and tr_start_fal().

#define set ( var,
value   )     var = value;

Definition at line 278 of file midas_macro.h.

#define sleep ( ms   )     ss_sleep(ms);

Definition at line 269 of file midas_macro.h.

Referenced by v1729_PedestalRun(), and VPPGLoad().

#define test_q ( n,
a,
f,
 )     camc_q(_crate,n,a,f,&q);

Definition at line 247 of file midas_macro.h.

#define time_stamp   TIME_STAMP(pevent)

Definition at line 236 of file midas_macro.h.

#define trigger_mask   TRIGGER_MASK(pevent)

Definition at line 233 of file midas_macro.h.

Referenced by load_fragment(), and source_booking().

#define trigger_update_begin   void trigger_update(void) {

Definition at line 135 of file midas_macro.h.

#define trigger_update_end   }

Definition at line 136 of file midas_macro.h.

#define variable ( name   )     int name;

Definition at line 273 of file midas_macro.h.

#define wait_q ( n,
a,
 )     { int _q; do { camc_q(_crate,n,a,f,&_q); } while(!_q); }

Definition at line 248 of file midas_macro.h.

#define write ( n,
a,
f,
 )     cam24o(_crate,n,a,f,d);

Definition at line 245 of file midas_macro.h.

Referenced by cm_msg_log(), create_experim_h(), db_save(), db_save_struct(), dump_write(), el_submit(), ftp_get(), md_dev_os_write(), midas_flush_buffer(), show_elog_page(), and show_hist_page().


Function Documentation

INT begin_of_run ( INT  run_number,
char *  error 
)

Definition at line 184 of file frontend.c.

Referenced by tr_start(), and tr_start_fal().

00185 {
00186    /* put here clear scalers etc. */
00187 
00188    return SUCCESS;
00189 }

INT end_of_run ( INT  run_number,
char *  error 
)

Definition at line 193 of file frontend.c.

Referenced by tr_stop(), and tr_stop_fal().

00194 {
00195    return SUCCESS;
00196 }

INT frontend_exit (  ) 

Definition at line 191 of file midas_macro.h.

Referenced by main().

00192 {
00193    user_exit();
00194    return SUCCESS;
00195 }

INT frontend_init (  ) 

Definition at line 143 of file midas_macro.h.

Referenced by main().

00144 {
00145    HNDLE hkey;
00146 #ifdef EXP_PARAM_DEFINED
00147    EXP_PARAM_STR(exp_param_str);
00148 #endif
00149 #ifdef TRIGGER_SETTINGS_DEFINED
00150    TRIGGER_SETTINGS_STR(trigger_settings_str);
00151 #endif
00152 #ifdef SCALER_SETTINGS_STR
00153    SCALER_SETTINGS_STR(scaler_settings_str);
00154 #endif
00155 
00156    cm_get_experiment_database(&hdb, &hkey);
00157 
00158 #ifdef EXP_PARAM_DEFINED
00159    db_create_record(hdb, 0, "/Experiment/Run Parameters", strcomb(exp_param_str));
00160    db_find_key(hdb, 0, "/Experiment/Run Parameters", &hkey);
00161    if (db_open_record(hdb, hkey, &exp_param,
00162                       sizeof(exp_param), MODE_READ, NULL, NULL) != DB_SUCCESS) {
00163       cm_msg(MERROR, "frontend_init", "Cannot open Run Parameters in ODB");
00164       return -1;
00165    }
00166 #endif
00167 #ifdef TRIGGER_SETTINGS_DEFINED
00168    db_create_record(hdb, 0, "/Equipment/Trigger/Settings", strcomb(trigger_settings_str));
00169    db_find_key(hdb, 0, "/Equipment/Trigger/Settings", &hkey);
00170    if (db_open_record(hdb, hkey, &trigger_settings,
00171                       sizeof(trigger_settings), MODE_READ,
00172                       trigger_upd, NULL) != DB_SUCCESS) {
00173       cm_msg(MERROR, "frontend_init", "Cannot open Trigger Settings in ODB");
00174       return -1;
00175    }
00176 #endif
00177 #ifdef SCALER_SETTINGS_DEFINED
00178    db_create_record(hdb, 0, "/Equipment/Scaler/Settings", strcomb(scaler_settings_str));
00179    db_find_key(hdb, 0, "/Equipment/Scaler/Settings", &hkey);
00180    if (db_open_record(hdb, hkey, &scaler_settings,
00181                       sizeof(scaler_settings), MODE_READ, NULL, NULL) != DB_SUCCESS) {
00182       cm_msg(MERROR, "frontend_init", "Cannot open Scaler Settings in ODB");
00183       return -1;
00184    }
00185 #endif
00186 
00187    user_init();
00188    return SUCCESS;
00189 }

INT frontend_loop (  ) 

Definition at line 215 of file midas_macro.h.

00216 {
00217    return SUCCESS;
00218 }

INT interrupt_configure ( INT  cmd,
INT  source,
PTYPE  adr 
)

Definition at line 105 of file midas_macro.h.

Referenced by initialize_equipment(), interrupt_enable(), main(), and readout_enable().

00106 {
00107    switch (cmd) {
00108    case CMD_INTERRUPT_ENABLE:
00109       cam_interrupt_enable();
00110       break;
00111    case CMD_INTERRUPT_DISABLE:
00112       cam_interrupt_disable();
00113       break;
00114    case CMD_INTERRUPT_ATTACH:
00115       cam_interrupt_attach((void (*)()) adr);
00116       break;
00117    case CMD_INTERRUPT_DETACH:
00118       cam_interrupt_detach();
00119       break;
00120    }
00121    return SUCCESS;
00122 }

INT pause_run ( INT  run_number,
char *  error 
)

Definition at line 200 of file frontend.c.

00201 {
00202    return SUCCESS;
00203 }

INT poll_event ( INT  source,
INT  count,
BOOL  test 
)

Definition at line 86 of file midas_macro.h.

Referenced by check_polled_events(), and readout_thread().

00090 {
00091    INT i, lam;
00092 
00093    for (i = 0; i < count; i++) {
00094       cam_lam_read(source >> 24, &lam);
00095       if (lam)
00096          if (!test)
00097             return TRUE;
00098    }
00099 
00100    return FALSE;
00101 }

INT read_scaler ( char *  pevent  ) 

INT read_trigger ( char *  pevent  ) 

INT resume_run ( INT  run_number,
char *  error 
)

Definition at line 207 of file frontend.c.

00208 {
00209    return SUCCESS;
00210 }

void user_exit ( void   ) 

Referenced by frontend_exit().

void user_init ( void   ) 

Referenced by frontend_init().


Variable Documentation

INT _crate = 0

Definition at line 22 of file midas_macro.h.

BOOL frontend_call_loop = FALSE

Definition at line 20 of file midas_macro.h.

HNDLE hdb

Definition at line 21 of file midas_macro.h.

Referenced by frontend_init().


Midas DOC Version 3.0.0 ---- PSI Stefan Ritt ----
Contributions: Pierre-Andre Amaudruz - Sergio Ballestrero - Suzannah Daviel - Doxygen - Peter Green - Qing Gu - Greg Hackman - Gertjan Hofman - Paul Knowles - Exaos Lee - Rudi Meier - Glenn Moloney - Dave Morris - John M O'Donnell - Konstantin Olchanski - Renee Poutissou - Tamsen Schurman - Andreas Suter - Jan M.Wouters - Piotr Adam Zolnierczuk