6-36
Remote Programming
printf("\n\n");
for (i=0;i<10;i++)
printf("%d %e\n",i,rfBuf[i]); /* this is simple since the values are already floats */
}
void printOutLIAResults(void)
{
/* calculates the first 10 values of R transferred in LIA float format by the SR850 */
int i,mant,exp;
int *ptr;
float val;
printf("\n\n");
ptr =(int *) rfBuf; /* ptr points to integers in rfBuf, not floats! */
for (i=0;i<10;i++) {
mant = *ptr++; /* first comes the mantissa (16 bits) */
exp = *ptr++ - 124; /* then the binary exponent (16 bits) offset by 124 */
val = (float) mant * (float) pow(2.0,(double) exp);
printf("%d %e\n",i,val);
}
}
void initGpib(char *devName)
{
if ((lia=ibfind(devName))<0) {
printf("\nCannot Find SR850 \n\a");
exit(1);
}
}
void txLia(char *str)
{
char serPol;
ibwrt(lia,str,strlen(str));
do {
ibrsp(lia,&serPol); /* now poll for IFC RDY */
} while ((serPol&2)==0); /* until the command finishes executing */
}
void setupLiaForSweep(void)
{
txLia("*RST"); /* initialize the lock-in */
txLia("FMOD1;SLLM10.;SULM100."); /* set sweep mode and sweep limits */
txLia("ILIN1"); /* put in the line notch filter */
txLia("SRAT10;SEND0;SLEN100"); /* set 64 Hz sample rate, stop at end of scan, 100 second
scan length */
txLia("SMOD0"); /* set single screen */
txLia("DTYP0,3;DTRC0,3"); /* set chart display, 'R' display */