source: MML/trunk/mml/links/tango/setpvonline.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 1.7 KB
Line 
1function ErrorFlag = setpvonline(TangoNames, NewSP, varargin)
2%SETPVONLINE - Set value to online machine
3%  ErrorFlag = setpvonline(ChannelNames, NewSP, DataType);
4%
5%  INPUTS
6%  1. TangoNames - Tango attribute names
7%  2. NewSP - Setpoint value
8%  Optional
9%      1. DataType - 'double' or 'string'
10%      2. 'Retry' - try several time if tango communication is down
11%
12%  OUTPUTS
13%  1. ErrorFlag
14%
15% See also getpvonline
16
17%
18%  Written for by Laurent S. Nadolski
19%  29 Sept. 2009 - Add Retry flag
20% ErrorFlag missing, Corrected September 12, 2012
21
22% TODO group
23
24RetryFlag   = 0; % Retry Flag
25RetryTime   = 1; % Pause between retries
26RetryNumber = 3; % number of times to try connection
27
28
29for i = length(varargin):-1:1
30    if strcmpi(varargin{i},'Retry')
31        RetryFlag = 1;
32        varargin(i) = [];
33    elseif strcmpi(varargin{i},'NoRetry')
34        RetryFlag = 0;
35        varargin(i) = [];
36    end
37end
38
39if ~exist('TangoNames', 'var') || ~exist('NewSP', 'var')
40    error('Must have at least two inputs');
41end
42
43if length(varargin) > 2
44   if length(varargin) < 2
45      DataType = varargin{1};
46   end
47end
48
49ErrorFlag = 0;
50
51[attribute device]  = getattribute(TangoNames);
52
53for k = 1:size(attribute,1)
54    tango_write_attribute2(device{k},attribute{k},NewSP(k));
55    ErrorFlag = tango_error;
56    %% if error retry several time if RetryFlag is on
57    if (ErrorFlag == -1) && RetryFlag
58        for ik=1:RetryNumber,
59            fprintf('Try %2d Communication issue, pause %f s\n',ik, RetryTime);
60            pause(RetryTime);
61            tango_write_attribute2(device{k},attribute{k},NewSP(k));
62            ErrorFlag = tango_error; % missing, Corrected September 12, 2011
63            if ErrorFlag ~=-1
64                break;
65            end
66        end
67    end
68end   
Note: See TracBrowser for help on using the repository browser.