36 remote programming – SRS Labs SR850 User Manual
Page 212

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 */