74 char Alarm[128] =
"/Equipment/SeparatorMonitor/Variables/Alarm_Triggered";
105 {
"SEPA", TID_FLOAT, 4, NULL },
172 cm_get_experiment_database(&
hDB, NULL);
229 static char oldtimestamp[80];
234 static float lastHVs[4] = {-1., -1., -1., -1.};
235 static int initDone = 0;
239 db_get_value(
hDB,0,
"/Experiment/Edit on start/Separator HV",
244 infile=fopen(
"/tmp/separator.txt",
"r");
247 "Could not open tempfile. separator_daemon.pl not running?");
248 separator_data.
hv =-1;
249 separator_data.
vac =-1;
253 fscanf(infile,
"%s\n%f\n%f\n%f\n%f",timestamp,&separator_data.
hv,
258 if(!strcmp(oldtimestamp, timestamp)){
259 separator_data.
hv=-1;
260 separator_data.
vac=-1;
266 for(i=0; i<4; i++) lastHVs[i] = separator_data.
hv;
270 for(i=0; i<3; i++) lastHVs[i] = lastHVs[i+1];
271 lastHVs[3] = separator_data.
hv;
279 bk_create(pevent,
"SEPA",TID_FLOAT,&pdata);
280 pdata[0] = separator_data.
hv;
281 pdata[1] = separator_data.
current;
282 pdata[2] = separator_data.
vac;
284 bk_close(pevent,pdata+4);
289 if((
int)lastHVs[i] ==
sepDemand) sepError = 0;
293 if(strcmp(oldtimestamp, timestamp)){
294 cm_msg(MERROR,
frontend_name,
"Separator high voltage not same as demand!");
298 cm_msg(MERROR,
frontend_name,
"Old and new timestamps identical."
299 " Refresh too high or separator_daemon.pl not running.");
302 db_set_value(
hDB, 0,
Alarm, &on,
sizeof(on), 1, TID_INT);
306 db_set_value(
hDB, 0,
Alarm, &off,
sizeof(off), 1, TID_INT);
309 strcpy(oldtimestamp,timestamp);
311 return bk_size(pevent);