summaryrefslogtreecommitdiff
path: root/libvxi11client/libvxi11client.c
blob: bfe56fa88ac1002d9d7ac25877eac217db177b5d (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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
#include "vxi11.h"

#define	VXI11_DEFAULT_TIMEOUT	1000

static CLIENT* clnt = NULL;
static Device_Link link;

void vxi11_open(char* address, char* device) {
	clnt = clnt_create(address, DEVICE_CORE, DEVICE_CORE_VERSION, "tcp");
	if (clnt == NULL) {
		printf("error creating client\n");
	}
	else {
		Create_LinkParms link_parms;
		link_parms.clientId = (long) clnt;
		link_parms.lockDevice = 0;
		link_parms.lock_timeout = VXI11_DEFAULT_TIMEOUT;
		link_parms.device = device;

		Create_LinkResp* linkresp = create_link_1(&link_parms, clnt);
		link = linkresp->lid;
	}
}

void vxi11_readstatusbyte() {

}

void vxi11_write() {
	if (clnt == NULL) {
		return;
	}

	char* IDENTIFY = "*IDN?";

	Device_WriteParms
	params = {.lid = link, .io_timeout = VXI11_DEFAULT_TIMEOUT, .lock_timeout = VXI11_DEFAULT_TIMEOUT, .flags = 0x0};
	params.data.data_len = sizeof(IDENTIFY);
	params.data.data_val = IDENTIFY;

	Device_WriteResp* resp = device_write_1(&params, clnt);
}

void vxi11_read() {
	if (clnt == NULL) {
		return;
	}

	Device_ReadParms
	params = {.lid = link, .requestSize = 256, .io_timeout = VXI11_DEFAULT_TIMEOUT, .lock_timeout = VXI11_DEFAULT_TIMEOUT, .flags = 0x0, .termChar = 0x0};

	Device_ReadResp* resp = device_read_1(&params, clnt);
}

void vxi11_docmd() {

}

void vxi11_trigger() {
	if (clnt == NULL)
		return;

	Device_GenericParms
	params = {.lid = link, .flags = 0x0, .lock_timeout = VXI11_DEFAULT_TIMEOUT, .io_timeout=VXI11_DEFAULT_TIMEOUT};
	device_trigger_1(&params, clnt);
}

void vxi11_clear() {
	if (clnt == NULL)
		return;
	Device_GenericParms
	params = {.lid = link, .flags = 0x0, .lock_timeout = VXI11_DEFAULT_TIMEOUT, .io_timeout=VXI11_DEFAULT_TIMEOUT};
	device_clear_1(&params, clnt);
}

void vxi11_remote() {
	if (clnt == NULL)
		return;
	Device_GenericParms
	params = {.lid = link, .flags = 0x0, .lock_timeout = VXI11_DEFAULT_TIMEOUT, .io_timeout=VXI11_DEFAULT_TIMEOUT};
	device_remote_1(&params, clnt);
}

void vxi11_local() {
	if (clnt == NULL)
		return;
	Device_GenericParms
	params = {.lid = link, .flags = 0x0, .lock_timeout = VXI11_DEFAULT_TIMEOUT, .io_timeout=VXI11_DEFAULT_TIMEOUT};
	device_local_1(&params, clnt);
}

void vxi11_lock() {
	if (clnt == NULL)
		return;
	Device_LockParms
	params = {.lid = link, .flags = 0x0, .lock_timeout = VXI11_DEFAULT_TIMEOUT};
	device_lock_1(&params, clnt);
}

void vxi11_unlock() {
	if (clnt == NULL)
		return;
	device_unlock_1(&link, clnt);
}

void vxi11_create_intr_chan() {
	if (clnt == NULL)
		return;

}

void vxi11_destroy_intr_chan() {
	if (clnt == NULL)
		return;

}

void vxi11_abort() {
	if (clnt == NULL)
		return;
	device_abort_1(&link, clnt);
}

void vxi11_close() {
	destroy_link_1(&link, clnt);
	clnt_destroy(clnt);
	clnt = NULL;
}