HP (Hewlett-Packard) B Network Router User Manual


 
/****************************************************************************/
void initiate(void)
{
int i = 0, readings = 40, swap = 0, bytes = 0, length = 1, *rdgs;
float rdy;
char lf_remove[1];
/* dynamically allocate memory for readings */
rdgs = malloc(40 * sizeof(float)); /* allocate computer memory for reading storage */
swap = sizeof(int); /* each reading in memory is two bytes */
bytes = 40 * swap; /* read 80 bytes */
IOOUTPUTS(ADDR_MEM, "INIT", 4); /* initiate the memory card */
IOOUTPUTS(ADDR_MEM, "*OPC?", 5); /* wait for INIT to parse before continuing */
IOENTER(ADDR_MEM, &rdy); /* enter *OPC? response from memory card */
IOOUTPUTS(ADDR_G, "INIT", 4); /* initiate the generator digitizer */
IOOUTPUTS(ADDR_I, "INIT", 4); /* initiate the inserter digitizer */
IOOUTPUTS(ADDR_G, "*OPC?", 5); /* wait for generator digitizer readings */
IOENTER(ADDR_G, &rdy); /* to complete */
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);
IOOUTPUTS(ADDR_G, "ABOR", 4); /* abort generator digitizer */
IOOUTPUTS(ADDR_I, "ABOR", 4); /* abort inserter digitizer */
/* convert and display the readings; the reading sequence is: */
/* inserter digitizer channel 2 reading 1 */
/* inserter digitizer channel 1 reading 1 */
/* generator digitizer channel 2 reading 1 */
/* generator digitizer channel 1 reading 1 */
/* inserter digitizer channel 2 reading 2 and so on */
for (i = 0; i < readings; i++)
{
rdgs[i] /= 16;
if (rdgs[i] >= 2047 || rdgs[i] <= -2046)
printf("\nReading overrange");
Appendix D Local Bus Interleaved Transfers 411