17 #include "class/multi.h"
18 #include "phytron_mcc.h"
19 #include "tcpip_rs232.h"
50 {
"mirror_in", phytron_mcc_in, 3, tcpip_rs232, DF_INPUT | DF_PRIO_DEVICE },
51 {
"mirror_out", phytron_mcc_out, 2, tcpip_rs232, DF_OUTPUT },
83 INT
poll_event(INT source[], INT count, BOOL test) {
return 1;};
94 cm_deregister_transition(TR_START);
95 cm_deregister_transition(TR_STOP);
96 cm_deregister_transition(TR_PAUSE);
97 cm_deregister_transition(TR_RESUME);
122 static DWORD change_time;
123 static float prev_demand=294.76;
128 cm_get_experiment_database(&hDB, NULL);
131 sprintf(str,
"/Equipment/Mirror/Variables/Input");
132 db_find_key(hDB, 0, str, &hKey);
133 size =
sizeof(float);
134 db_get_data_index(hDB, hKey, &measured, &size, 0, TID_FLOAT);
137 sprintf(str,
"/Equipment/Mirror/Variables/Output");
138 db_find_key(hDB, 0, str, &hKey);
139 size =
sizeof(float);
140 db_get_data_index(hDB, hKey, &demand, &size, 0, TID_FLOAT);
142 if (fabs(demand-prev_demand) > 0.1) {
143 change_time = ss_time();
145 if (ss_time() - change_time > 60) {
146 if (fabs(demand-measured) > 0.1) {
147 sprintf(str,
"Mirror Demand = %0.1f, Measured = %0.1f: something is wrong!", demand, measured);
148 al_trigger_alarm(
"mirror_scfe", str,
"Warning", str, AT_INTERNAL);
INT interrupt_configure(INT cmd, INT source, PTYPE adr)
char * frontend_name
experiment specific ODB structures
INT max_event_size_frag
maximum event size for fragmented events (EQ_FRAGMENTED)
INT end_of_run(INT run_number, char *error)
BOOL frontend_call_loop
frontend_loop is called periodically if this variable is TRUE
INT max_event_size
maximum event size produced by this frontend
INT pause_run(INT run_number, char *error)
INT event_buffer_size
buffer size to hold events
char * frontend_file_name
The frontend file name, don't change it.
INT poll_event(INT source, INT count, BOOL test)
INT begin_of_run(INT run_number, char *error)
DEVICE_DRIVER mirror_driver[]
INT display_period
a frontend status page is displayed with this frequency in ms
INT resume_run(INT run_number, char *error)