source: MML/trunk/mml/doc_html/mml/links/tango/writeattribute.html @ 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: 8.4 KB
Line 
1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2                "http://www.w3.org/TR/REC-html40/loose.dtd">
3<html>
4<head>
5  <title>Description of writeattribute</title>
6  <meta name="keywords" content="writeattribute">
7  <meta name="description" content="WRITEATTRIBUTE - Writes a list of TANGO attributes">
8  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
9  <meta name="generator" content="m2html &copy; 2003 Guillaume Flandin">
10  <meta name="robots" content="index, follow">
11  <link type="text/css" rel="stylesheet" href="../../../m2html.css">
12</head>
13<body>
14<a name="_top"></a>
15<div><a href="../../../index.html">Home</a> &gt;  <a href="../../index.html">mml</a> &gt; <a href="#">links</a> &gt; <a href="index.html">tango</a> &gt; writeattribute.m</div>
16
17<!--<table width="100%"><tr><td align="left"><a href="../../../index.html"><img alt="<" border="0" src="../../../left.png">&nbsp;Master index</a></td>
18<td align="right"><a href="index.html">Index for mml/links/tango&nbsp;<img alt=">" border="0" src="../../../right.png"></a></td></tr></table>-->
19
20<h1>writeattribute
21</h1>
22
23<h2><a name="_name"></a>PURPOSE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
24<div class="box"><strong>WRITEATTRIBUTE - Writes a list of TANGO attributes</strong></div>
25
26<h2><a name="_synopsis"></a>SYNOPSIS <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
27<div class="box"><strong>function ErrorFlag = writeattribute(tangolist,val,varargin) </strong></div>
28
29<h2><a name="_description"></a>DESCRIPTION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
30<div class="fragment"><pre class="comment">WRITEATTRIBUTE - Writes a list of TANGO attributes
31 writeattribute(tangolist,val,type)
32
33 INPUTS
34 1. tangolist - list of tango attributes eg 'ANS-C01/DGsim/BPM.1/X'
35 2. val - vector of tango setpoint values
36
37 OPTIONAL
38 3. type - datatype {double by default}, int16
39 4. 'QueryDB' - Look for attribute typ in DB before writing attribute
40
41 OUTPUTS
42 1. ErrorFlag
43
44 See also <a href="readattribute.html" class="code" title="function [Data, tout, DataTime, ErrorFlag] = readattribute(tangolist, varargin)">readattribute</a></pre></div>
45
46<!-- crossreference -->
47<h2><a name="_cross"></a>CROSS-REFERENCE INFORMATION <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
48This function calls:
49<ul style="list-style-image:url(../../../matlabicon.gif)">
50<li><a href="getattribute.html" class="code" title="function [AttributeNames, DeviceNames] =  getattribute(varargin)">getattribute</a>  GETATTRIBUTE - Decomposes a full attributename into device and attribute names</li></ul>
51This function is called by:
52<ul style="list-style-image:url(../../../matlabicon.gif)">
53</ul>
54<!-- crossreference -->
55
56
57<h2><a name="_source"></a>SOURCE CODE <a href="#_top"><img alt="^" border="0" src="../../../up.png"></a></h2>
58<div class="fragment"><pre>0001 <a name="_sub0" href="#_subfunctions" class="code">function ErrorFlag = writeattribute(tangolist,val,varargin)</a>
590002 <span class="comment">%WRITEATTRIBUTE - Writes a list of TANGO attributes</span>
600003 <span class="comment">% writeattribute(tangolist,val,type)</span>
610004 <span class="comment">%</span>
620005 <span class="comment">% INPUTS</span>
630006 <span class="comment">% 1. tangolist - list of tango attributes eg 'ANS-C01/DGsim/BPM.1/X'</span>
640007 <span class="comment">% 2. val - vector of tango setpoint values</span>
650008 <span class="comment">%</span>
660009 <span class="comment">% OPTIONAL</span>
670010 <span class="comment">% 3. type - datatype {double by default}, int16</span>
680011 <span class="comment">% 4. 'QueryDB' - Look for attribute typ in DB before writing attribute</span>
690012 <span class="comment">%</span>
700013 <span class="comment">% OUTPUTS</span>
710014 <span class="comment">% 1. ErrorFlag</span>
720015 <span class="comment">%</span>
730016 <span class="comment">% See also readattribute</span>
740017
750018 <span class="comment">%</span>
760019 <span class="comment">% Written by Laurent S. Nadolski</span>
770020
780021
790022 QueryFlag = 0; <span class="comment">% query attribute type  in DB</span>
800023
810024 <span class="keyword">for</span> i = length(varargin):-1:1
820025     <span class="keyword">if</span> strcmpi(varargin{i},<span class="string">'QueryDB'</span>)
830026         QueryFlag = 1;
840027         varargin(i) = [];
850028     <span class="keyword">end</span>
860029 <span class="keyword">end</span>
870030
880031 [attribute device]  = <a href="getattribute.html" class="code" title="function [AttributeNames, DeviceNames] =  getattribute(varargin)">getattribute</a>(tangolist);
890032
900033 <span class="keyword">for</span> k = 1:size(attribute,1)
910034
920035     <span class="keyword">if</span> QueryFlag == 0
930036
940037         <span class="keyword">if</span> nargin &lt; 3
950038             tango_write_attribute(device{k},attribute{k},val(k));
960039         <span class="keyword">else</span>
970040             <span class="keyword">switch</span> lower(varargin{1})
980041                 <span class="keyword">case</span> <span class="string">'int16'</span>
990042                     tango_write_attribute(device{k},attribute{k},int16(val(k)));
1000043                 <span class="keyword">case</span> <span class="string">'int32'</span>
1010044                     tango_write_attribute(device{k},attribute{k},int32(val(k)));
1020045                 <span class="keyword">case</span> <span class="string">'double'</span>
1030046                     tango_write_attribute(device{k},attribute{k},val(k,:));
1040047                 <span class="keyword">case</span> <span class="string">'string'</span>
1050048                     <span class="comment">% Type char</span>
1060049                     tango_write_attribute(device{k},attribute{k},char(val(k,:)));
1070050                     <span class="comment">% OK pour mode</span>
1080051                     <span class="comment">%              tango_write_attribute(device{k},attribute{k},val{k});</span>
1090052                 <span class="keyword">case</span> {<span class="string">'1-by-1 uint16'</span>,<span class="string">'uint8'</span>} <span class="comment">%DEV_BOOLEAN</span>
1100053                     tango_write_attribute(device{k},attribute{k},uint8(val(k,:)));
1110054                 <span class="keyword">otherwise</span>
1120055                     error(<span class="string">'wrong format'</span>)
1130056             <span class="keyword">end</span>
1140057         <span class="keyword">end</span>
1150058
1160059     <span class="keyword">else</span> <span class="comment">% Look for attribute type in Tango DB</span>
1170060
1180061         AttrDesc = tango_attribute_query(device{k},attribute{k});
1190062
1200063         <span class="keyword">switch</span> AttrDesc.data_type_str
1210064             <span class="keyword">case</span> <span class="string">'1-by-1 double'</span>
1220065                 tango_write_attribute(device{k},attribute{k}, str2double(val(k,:)));
1230066             <span class="keyword">case</span> <span class="string">'1-by-n char'</span>  <span class="comment">% DEV_DOUBLE DEV_STRING</span>
1240067                 tango_write_attribute(device{k},attribute{k},char(val(k,:)));
1250068             <span class="keyword">case</span> <span class="string">'1-by-1 int32'</span> <span class="comment">% DEV_LONG</span>
1260069                 tango_write_attribute(device{k},attribute{k},int32(str2double(val(k,:))));
1270070             <span class="keyword">case</span> <span class="string">'1-by-1 int16'</span> <span class="comment">% DEV_SHORT</span>
1280071                 tango_write_attribute(device{k},attribute{k},int16(val(k)));
1290072             <span class="keyword">case</span> <span class="string">'1-by-1 uint16'</span> <span class="comment">% DEV_BOOLEAN</span>
1300073                 tango_write_attribute(device{k},attribute{k},uint8(val(k)));
1310074             <span class="keyword">otherwise</span>
1320075                 disp(<span class="string">'Do Nothing'</span>)
1330076         <span class="keyword">end</span>
1340077     <span class="keyword">end</span>
1350078
1360079     <span class="keyword">if</span> (tango_error == -1)
1370080         <span class="comment">%- handle error</span>
1380081         tango_print_error_stack;
1390082         error(<span class="string">'writeattribute for device'</span>);
1400083         <span class="keyword">return</span>;
1410084     <span class="keyword">end</span>
1420085 <span class="keyword">end</span></pre></div>
143<hr><address>Generated on Mon 21-May-2007 15:29:18 by <strong><a href="http://www.artefact.tk/software/matlab/m2html/">m2html</a></strong> &copy; 2003</address>
144</body>
145</html>
Note: See TracBrowser for help on using the repository browser.