Subversion Repositories f9daq

Compare Revisions

Ignore whitespace Rev 280 → Rev 297

/cvi/instr/pw18-1.8aq/pw18-1.8aq.c
349,7 → 349,7
int radiob[4]={P1_BOX_1,P1_BOX_2,P1_BOX_3,P1_BOX_4 };
 
int cvcc[4]={P1_CVCC_1,P1_CVCC_2,P1_CVCC_3,P1_CVCC_4 };
const unsigned char Pre_1 = 1;
int gMask=0xF;
 
int pnl;
357,7 → 357,7
int main (int argc, char *argv[])
{
int DeviceId=0;
unsigned char MainOutput;
unsigned char MainOutput, preset;
double Voltage, Current, tinterval;
char str[0xFF];
if (InitCVIRTE (0, argv, 0) == 0)
375,11 → 375,21
SetCtrlVal(pnl, P1_ONOFF, MainOutput);
GetCtrlVal(pnl, P1_TINTERVAL, &tinterval);
SetCtrlAttribute (pnl, P1_TIMER, ATTR_INTERVAL, tinterval);
TMI_PresetQ(TMI_DeviceId, &preset);
SetCtrlVal(pnl, P1_PRESET, preset);
SetTraceAttributeEx (pnl, P1_GRAPH_IMON, 1, ATTR_TRACE_LG_TEXT, "CH +18V");
SetTraceAttributeEx (pnl, P1_GRAPH_IMON, 2, ATTR_TRACE_LG_TEXT, "CH -18V");
SetTraceAttributeEx (pnl, P1_GRAPH_IMON, 3, ATTR_TRACE_LG_TEXT, "CH +6V");
SetTraceAttributeEx (pnl, P1_GRAPH_IMON, 4, ATTR_TRACE_LG_TEXT, "CH -6V");
SetTraceAttributeEx (pnl, P1_GRAPH_VMON, 1, ATTR_TRACE_LG_TEXT, "CH +18V");
SetTraceAttributeEx (pnl, P1_GRAPH_VMON, 2, ATTR_TRACE_LG_TEXT, "CH -18V");
SetTraceAttributeEx (pnl, P1_GRAPH_VMON, 3, ATTR_TRACE_LG_TEXT, "CH +6V");
SetTraceAttributeEx (pnl, P1_GRAPH_VMON, 4, ATTR_TRACE_LG_TEXT, "CH -6V");
for (unsigned char ch=0;ch<4;ch++){
int ison;
TMI_VoltageQ(TMI_DeviceId, ch+1, Pre_1, &Voltage);
TMI_CurrentQ(TMI_DeviceId, ch+1, Pre_1, &Current);
TMI_VoltageQ(TMI_DeviceId, ch+1, preset, &Voltage);
TMI_CurrentQ(TMI_DeviceId, ch+1, preset, &Current);
SetCtrlVal(pnl, vset[ch], Voltage);
SetCtrlVal(pnl, iset[ch], Current);
GetCtrlVal(pnl, radiob[ch], &ison);
419,24 → 429,28
switch (event)
{
case EVENT_COMMIT:
case EVENT_COMMIT:{
unsigned char preset;
TMI_PresetQ(TMI_DeviceId, &preset);
SetCtrlVal(pnl, P1_PRESET, preset);
for (unsigned char ch = 0; ch<4;ch++){
//printf("ch %d %x\n", ch, gMask);
if (gMask & (1<<ch)){
double Voltage;
double Current;
GetCtrlVal(panel, vset[ch], &Voltage);
GetCtrlVal(panel, iset[ch], &Current);
printf("->ch %d VSet %g Iset %g\n", ch, Voltage, Current);
TMI_Voltage(TMI_DeviceId, ch+1, Pre_1, Voltage);
TMI_VoltageQ(TMI_DeviceId, ch+1, Pre_1, &Voltage);
TMI_Current(TMI_DeviceId, ch+1, Pre_1, Current);
TMI_CurrentQ(TMI_DeviceId, ch+1, Pre_1, &Current);
printf("<-ch %d VSet %g Iset %g\n", ch, Voltage, Current);
//printf("->ch %d VSet %g Iset %g\n", ch, Voltage, Current);
TMI_Voltage(TMI_DeviceId, ch+1, preset, Voltage);
TMI_VoltageQ(TMI_DeviceId, ch+1, preset, &Voltage);
TMI_Current(TMI_DeviceId, ch+1, preset, Current);
TMI_CurrentQ(TMI_DeviceId, ch+1, preset, &Current);
//printf("<-ch %d VSet %g Iset %g\n", ch, Voltage, Current);
}
}
}
break;
}
return 0;
459,7 → 473,7
iRet = TMI_TimeOut(TMI_DeviceId, 1);
iRet = TMI_Refresh(TMI_DeviceId);
iRet = TMI_MoniDataQ(TMI_DeviceId, ch+1, &Voltage, &Current, &cv_cc);
printf("ch %d VSet %g Iset %g\n", ch, Voltage, Current);
//printf("ch %d VSet %g Iset %g\n", ch, Voltage, Current);
SetCtrlVal(panel, vmon[ch], Voltage);
SetCtrlVal(panel, imon[ch], Current);
SetCtrlVal(panel, cvcc[ch], cv_cc);
549,7 → 563,7
unsigned char ch;
double current[4];
double voltage;
double voltage[4];
char cv_cc;
case EVENT_TIMER_TICK:
for (ch = 0; ch<4;ch++){
556,8 → 570,8
if (gMask & (1<<ch)){
TMI_TimeOut(TMI_DeviceId, 1);
TMI_Refresh(TMI_DeviceId);
TMI_MoniDataQ(TMI_DeviceId, ch+1, &voltage, &current[ch], &cv_cc);
SetCtrlVal(panel, vmon[ch], voltage);
TMI_MoniDataQ(TMI_DeviceId, ch+1, &voltage[ch], &current[ch], &cv_cc);
SetCtrlVal(panel, vmon[ch], voltage[ch]);
SetCtrlVal(panel, imon[ch], current[ch]);
SetCtrlVal(panel, cvcc[ch], cv_cc);
if (gLogToFile){
565,14 → 579,42
gFp= fopen("pw18-1.8aq.log","w");
fprintf(gFp,"#time\tch\tU\tI\tCV_CC\n");
}
fprintf(gFp,"%ul\t%d\t%g\t%g\t%d\n", time(NULL), ch+1, voltage, current[ch], cv_cc);
fprintf(gFp,"%ul\t%d\t%g\t%g\t%d\n", time(NULL), ch+1, voltage[ch], current[ch], cv_cc);
}
}
}
PlotStripChart (panel, P1_GRAPH, current, 4, 0, 0, VAL_DOUBLE);
PlotStripChart (panel, P1_GRAPH_IMON, current, 4, 0, 0, VAL_DOUBLE);
PlotStripChart (panel, P1_GRAPH_VMON, voltage, 4, 0, 0, VAL_DOUBLE);
break;
}
return 0;
}
 
int CVICALLBACK SetPresetCB (int panel, int control, int event,
void *callbackData, int eventData1, int eventData2) {
 
switch (event) {
case EVENT_COMMIT:{
unsigned char preset;
double Voltage, Current;
GetCtrlVal(panel, control, &preset);
TMI_Preset(TMI_DeviceId, preset);
for (unsigned char ch=0;ch<4;ch++){
int ison;
TMI_VoltageQ(TMI_DeviceId, ch+1, preset, &Voltage);
TMI_CurrentQ(TMI_DeviceId, ch+1, preset, &Current);
SetCtrlVal(pnl, vset[ch], Voltage);
SetCtrlVal(pnl, iset[ch], Current);
GetCtrlVal(pnl, radiob[ch], &ison);
if (ison) SETREG(gMask,(1<<ch)); else RSTREG(gMask,(1<<ch));
}
break;
}
}
return 0;
}
 
 
#endif MAIN