HP (Hewlett-Packard) B Network Router User Manual


 
IOOUTPUTS(ADDR_I, "INIT", 4); /* initiate the inserter digitizer */
IOOUTPUTS(ADDR_G, "*OPC?",5); /* wait for generator digitizer to finish */
IOENTER(ADDR_G, &rdy);
IOOUTPUTS(ADDR_MEM, "TRAC:DATA? SET1", 15); /* retrieve readings from memory card
*/
IOENTERAB(ADDR_MEM, rdgs, &bytes, swap); /* enter readings and remove block header
*/
/* remove line feed which trails the last data byte */
IOENTERS(ADDR_MEM, lf_remove, &length);
/* convert and display readings; the inserter digitizer readings */
/* occur first, followed by the generator digitizer readings */
for (i = 0; i < readings; i++)
{
rdgs[i] /= 16;
if (rdgs[i] >= 2047 || rdgs[i] <= -2046)
printf("\nReading overrange");
else
printf("\nReading %d = %.6E", i, (rdgs[i] * 0.0025));
}
free(rdgs);
}
/****************************************************************************/
long get_base_addr(void)
{
/* base address of generator digitizer’s (A24) offset register in A16 */
/* address space */
long base_addr = (0x1FC000 + (40 * 64)) + 6; /* generator digitizer logical address is 48 */
float a24offst; /* A24 offset from A16 offset register */
char rd_addr[80]; /* command string variable */
/* Create the command string which reads the A24 base address from the offset register */
sprintf(rd_addr, "DIAG:PEEK? %ld, %d", base_addr,16);
/* Send DIAG:PEEK? command */
IOOUTPUTS(CMD_MOD, rd_addr, strlen(rd_addr));
Continued on Next Page
Chapter 2 Usin
g
the Di
g
itizer 97