62 lines
2.0 KiB
Matlab
62 lines
2.0 KiB
Matlab
function varargout = mcaopen(varargin);
|
|
%MCAOPEN - open a Channel Access connection to an EPICS Process Variable
|
|
%
|
|
% H = MCAOPEN(PVNAME);
|
|
% If successful H is a unique nonzero integer handle associated with this PV.
|
|
% Returned handle is 0 if a connection could not be established
|
|
%
|
|
% [H1, ... ,Hn] = MCAOPEN(PVNAME1, ... ,PVNAMEn);
|
|
% Is equivalent to but more efficient than multiple single-argument calls
|
|
% H1 = MCAOPEN(PVNAME1);
|
|
% ...
|
|
% Hn = MCAOPEN(PVNAMEn);
|
|
%
|
|
% HANDLES = MCAOPEN(NAMES) is convenient when working with long lists of PV names
|
|
% HANDLES is a numeric array of assigned handles
|
|
% NAMES is a cell array of strings with PV names
|
|
%
|
|
% [HANDLES, NAMES] = MCAOPEN with no arguments returns a list of PV Names for all open connections.
|
|
% HANDLES is a numeric array of handles
|
|
% NAMES is a cell array of strings with PV names
|
|
%
|
|
% Note:
|
|
% When done, one should probably use MCACLOSE on the handle.
|
|
% When you use the same channel again "later", you might keep it open.
|
|
% See MCACHECKOPEN for a lazy person's bookkeeping helper.
|
|
%
|
|
% See also: MCACHECKOPEN, MCAISOPEN, MCACLOSE
|
|
|
|
if nargin>1 && nargin ~= nargout
|
|
error('Number of outputs must match the number of inputs')
|
|
end
|
|
|
|
|
|
if nargin==0
|
|
[varargout{1} varargout{2}] = mocha('getHandles'); %mca(3);
|
|
|
|
elseif iscellstr(varargin) && nargin ==1
|
|
varargout{1} = mocha('open', varargin{1} );
|
|
|
|
elseif iscellstr(varargin{1}) && nargin==1
|
|
if length(varargin{1}) > 1
|
|
mocha ('openPrepare');
|
|
varargout{1} = mocha('open', varargin{1} );
|
|
mocha ('openNow')
|
|
else
|
|
varargout{1} = mocha('open', varargin{1} ); % mca(2,varargin{1});
|
|
end
|
|
|
|
elseif iscellstr(varargin)
|
|
mocha('openPrepare');
|
|
%[varargout{1:nargin}] =
|
|
h1=mocha('openArray',{varargin{:}}) %mca(1,varargin{:});
|
|
for i = 1:length(h1)
|
|
[varargout{i}] = h1(i);
|
|
end
|
|
mocha('openNow');
|
|
else
|
|
error('All arguments must be strings')
|
|
end
|
|
|
|
|