#include #include #include #include ViSession FDIOpenSession(ViRsrc FDIname, ViSession rm0){ ViSession vi; viOpen(rm0,FDIname, VI_NULL,VI_NULL, &vi); viClear(vi); return vi; }; //FDIWrite function int FDIWrite(ViSession vi, char command[]){ ViUInt32 cnt, rcnt; ViBuf bufm; int retcnt; bufm=(ViBuf)command; cnt=(ViUInt32)strlen(command); Delay(0.5); viWrite (vi, bufm, cnt, &rcnt); retcnt=(int)rcnt; return(retcnt); } //FDI read function //viRead (ViSession vi, ViPBuf buf, ViUInt32 cnt, ViPUInt32 retCnt); int FDIRead(ViSession vi, ViPBuf buf){ ViUInt32 cnt, rcnt; int retcnt; //cnt=(ViUInt32)1024; cnt=(ViUInt32)20480; Delay(0.5); viRead (vi, buf, cnt, &rcnt); retcnt=(int)rcnt; return(retcnt); } //FDI Status query function int FDIReadStatus(ViSession vi, ViPBuf buf){ ViUInt32 cnt, rcnt; int retstat; char mes[200]; cnt=(ViUInt32)100; viRead (vi, buf, cnt, &rcnt); sprintf(mes,"%s",buf); retstat=atoi(mes); return(retstat); } int FDI_Init(ViSession vi){ int ret; ret=FDIWrite(vi,"*RST"); Delay(3); ret=FDIWrite(vi,":SENS:FUNC FLUX"); ret=FDIWrite(vi,":SENS:SAMP 500KHZ"); ret=FDIWrite(vi,":UNIT:VOLT 1"); ret=FDIWrite(vi,":INP:COUP GND"); ret=FDIWrite(vi,":INP:GAIN 100"); ret=FDIWrite(vi,":CALC:TIM 1"); //cumulate time values ret=FDIWrite(vi, ":SENS:CORR:MEM"); Delay(1); ret=FDIWrite(vi, ":SENS:CORR:SLOP"); Delay(20); ret=FDIWrite(vi, ":SENS:CORR:ZER"); Delay(10); ret=FDIWrite(vi, ":SENS:CORR:MEM"); return ret; } int FDI_Corr(ViSession vi){ int ret; ret=FDIWrite(vi, ":SENS:CORR:SLOP"); Delay(20); ret=FDIWrite(vi, ":SENS:CORR:ZER"); Delay(10); return ret; }