Skip to content

Commit c52a091

Browse files
Updates to scan, context, top-level wrappers
Signed-off-by: Pagadarai <[email protected]>
1 parent bcb65a0 commit c52a091

File tree

5 files changed

+731
-17
lines changed

5 files changed

+731
-17
lines changed

+adi/+libiio/attribute.m

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,8 @@
115115

116116
if ~status
117117
value = valPtr.value;
118+
else
119+
value = false;
118120
end
119121
end
120122

@@ -128,6 +130,8 @@
128130

129131
if ~status
130132
value = valPtr.value;
133+
else
134+
value = 0;
131135
end
132136
end
133137

@@ -141,6 +145,8 @@
141145

142146
if ~status
143147
value = valPtr.value;
148+
else
149+
value = 0;
144150
end
145151
end
146152

+adi/+libiio/base.m

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
classdef (Abstract) base < adi.libiio.top & ...
2-
adi.libiio.low_level & ...
3-
matlab.System
1+
classdef (Abstract) base < matlab.System
42
properties (Hidden, Access = {?handle}, Abstract)
53
iioCtx % The LibIIO context pointer
64
iioDev% The LibIIO device pointer
@@ -59,10 +57,54 @@
5957
% end
6058
end
6159

60+
% methods(Hidden, Access = protected)
61+
% function setupImpl(obj)
62+
% % Setup LibIIO
63+
% [notfound,warnings]=loadlibrary(obj.libName,'iio.h');
64+
% obj.libIsLoaded = true;
65+
%
66+
% % Initialize pointers and variables
67+
% obj.iioCtx = libpointer;
68+
% obj.iioCtxParams = libpointer;
69+
% obj.iioDev = libpointer;
70+
% obj.iioBuf = libpointer;
71+
% obj.contextTimeout = uint32(0);
72+
%
73+
% % Get context
74+
% % obj.iioCtx = calllib(obj.libName, 'iio_create_context', obj.iioCtxParams, obj.uri);
75+
% obj.iioCtx = adi.libiio.context.iio_create_context(obj.iioCtxParams, obj.uri);
76+
% status = -int32(isNull(obj.iioCtx));% cPtrCheck(obj,obj.iioCtx);
77+
%
78+
% % Set context timeout
79+
% % status = calllib(obj.libName, 'iio_context_set_timeout', obj.iioCtx, obj.contextTimeout);
80+
%
81+
% % Get AD9361 PHY device
82+
% % obj.iioDev = calllib(obj.libName, 'iio_context_find_device', obj.iioCtx, 'ad9361-phy');
83+
% obj.iioDev = adi.libiio.context.iio_context_find_device(obj.iioCtx, 'ad9361-phy');
84+
%
85+
% obj.needsTeardown = true;
86+
%
87+
% % Device-specific setup
88+
% configureChanBuffers(obj);
89+
%
90+
% % Find AD9361 LO channel
91+
% % obj.iioChn = calllib(obj.libName, 'iio_device_find_channel', obj.iioDev, 'altvoltage0', true);
92+
% obj.iioChn = adi.libiio.device.iio_device_find_channel(obj.iioDev, 'altvoltage0', true);
93+
%
94+
% % obj.iioAttr = calllib(obj.libName, 'iio_channel_find_attr', obj.iioChn, 'frequency');
95+
%
96+
% % status = calllib(obj.libName, 'iio_attr_write_longlong', obj.iioAttr, obj.CenterFrequency);
97+
% end
98+
%
99+
% function releaseImpl(obj)
100+
% unloadlibrary(obj.libName);
101+
% end
102+
% end
103+
62104
methods(Hidden, Access = protected)
63105
function setupImpl(obj)
64106
% Setup LibIIO
65-
[notfound,warnings]=loadlibrary(obj.libName,'iio.h');
107+
[notfound, warnings]=loadlibrary(obj.libName,'iio.h');
66108
obj.libIsLoaded = true;
67109

68110
% Initialize pointers and variables
@@ -73,15 +115,10 @@ function setupImpl(obj)
73115
obj.contextTimeout = uint32(0);
74116

75117
% Get context
76-
% obj.iioCtx = calllib(obj.libName, 'iio_create_context', obj.iioCtxParams, obj.uri);
77118
obj.iioCtx = adi.libiio.context.iio_create_context(obj.iioCtxParams, obj.uri);
78-
status = -int32(isNull(obj.iioCtx));% cPtrCheck(obj,obj.iioCtx);
119+
status = -int32(isNull(obj.iioCtx));
79120

80-
% Set context timeout
81-
% status = calllib(obj.libName, 'iio_context_set_timeout', obj.iioCtx, obj.contextTimeout);
82-
83121
% Get AD9361 PHY device
84-
% obj.iioDev = calllib(obj.libName, 'iio_context_find_device', obj.iioCtx, 'ad9361-phy');
85122
obj.iioDev = adi.libiio.context.iio_context_find_device(obj.iioCtx, 'ad9361-phy');
86123

87124
obj.needsTeardown = true;
@@ -90,12 +127,7 @@ function setupImpl(obj)
90127
configureChanBuffers(obj);
91128

92129
% Find AD9361 LO channel
93-
% obj.iioChn = calllib(obj.libName, 'iio_device_find_channel', obj.iioDev, 'altvoltage0', true);
94130
obj.iioChn = adi.libiio.device.iio_device_find_channel(obj.iioDev, 'altvoltage0', true);
95-
96-
% obj.iioAttr = calllib(obj.libName, 'iio_channel_find_attr', obj.iioChn, 'frequency');
97-
98-
% status = calllib(obj.libName, 'iio_attr_write_longlong', obj.iioAttr, obj.CenterFrequency);
99131
end
100132

101133
function releaseImpl(obj)

0 commit comments

Comments
 (0)