blob: d75ddd59f3fe19a958a0310b7bcfdfdad0a87f46 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
#include "vxi11.h"
#include <stdio.h>
#define IDENTIFY "*IDN?"
static char* geterrorstring(int errorcode) {
switch (errorcode) {
case 0:
return "no response from server";
default:
return "unknown error code";
}
}
int main() {
printf("VXI-11 test client\n");
int err = 0;
if (vxi11_open("192.168.2.250")) {
// write some bytes
int byteswritten = vxi11_write(IDENTIFY, sizeof(IDENTIFY));
if (byteswritten >= 0)
printf("Wrote %d bytes\n", byteswritten);
else
printf("Error writing data\n");
// read some bytes
int bytesread = vxi11_read();
if (bytesread >= 0)
printf("Read %d bytes\n", bytesread);
else
printf("Error reading data\n");
// trigger
if (vxi11_trigger())
printf("triggered\n");
// clear
if (vxi11_clear())
printf("cleared\n");
// abort
if ((err = vxi11_abort()))
printf("aborted\n");
else
printf("abort failed; %s\n", geterrorstring(err));
// lock
if (vxi11_lock())
printf("locked\n");
// unlock
if (vxi11_unlock())
printf("unlocked\n");
// remote
if (vxi11_remote())
printf("remote'd\n");
// local
if (vxi11_local())
printf("local'd\n");
// read the status byte
int statusbyte = vxi11_readstatusbyte();
if (statusbyte >= 0)
printf("Status byte is 0x%02x\n", statusbyte);
else
printf("Error reading status byte\n");
// create interrupt channel
vxi11_create_intr_chan();
// destroy interrupt channel
if ((err = vxi11_destroy_intr_chan()))
printf("destroyed interrupt channel\n");
else
printf("Error destroying interrupt channel; %s\n", geterrorstring(err));
// docmd
if ((err = vxi11_docmd(0x00)))
printf("did command, should fail!\n");
else
printf("Error calling docmd; %\n", geterrorstring(err));
// close
vxi11_close();
}
else {
exit(1);
}
}
|