Initial Commit
[apps/agl-service-unicens.git] / ucs2-lib / doc / html / group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
6 <title>UNICENS: Ucs_I2c_WritePort</title>
7 <link href="tabs.css" rel="stylesheet" type="text/css"/>
8 <link rel="shortcut icon" type="image/x-icon" href="favicon.ico">
9 <script type="text/javascript" src="jquery.js"></script>
10 <script type="text/javascript" src="dynsections.js"></script>
11 <link href="navtree.css" rel="stylesheet" type="text/css"/>
12 <script type="text/javascript" src="resize.js"></script>
13 <script type="text/javascript" src="navtree.js"></script>
14 <script type="text/javascript">
15   $(document).ready(initResizable);
16 </script>
17 <link href="search/search.css" rel="stylesheet" type="text/css"/>
18 <script type="text/javascript" src="search/search.js"></script>
19 <script type="text/javascript">
20   $(document).ready(function() { searchBox.OnSelectItem(0); });
21 </script>
22 <link href="style_html.css" rel="stylesheet" type="text/css" />
23 <link href="inic.css" rel="stylesheet" type="text/css"/>
24 </head>
25 <body>
26 <div class="GlobalWrapper">
27 <div id="top"><!-- do not remove this div, it is closed by doxygen! -->
28 <div id="titlearea">
29 <table cellspacing="0" cellpadding="0">
30  <tbody>
31  <tr>
32   <td><a href="index.html"><img alt="Logo" src="logo.png"/></a></td>
33   <td>
34    <div id="projectname">UNICENS&#160;<span id="projectnumber">V2.1.0-3491</span></div>
35    <div id="projectbrief">User Manual and API Reference</div>
36     <div id="searchbox">        <div id="MSearchBox" class="MSearchBoxInactive">
37         <span class="left">
38           <img id="MSearchSelect" src="search/mag_sel.png"
39                onmouseover="return searchBox.OnSearchSelectShow()"
40                onmouseout="return searchBox.OnSearchSelectHide()"
41                alt=""/>
42           <input type="text" id="MSearchField" value="Search" accesskey="S"
43                onfocus="searchBox.OnSearchFieldFocus(true)" 
44                onblur="searchBox.OnSearchFieldFocus(false)" 
45                onkeyup="searchBox.OnSearchFieldChange(event)"/>
46           </span><span class="right">
47             <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
48           </span>
49         </div>
50 </div>
51   </td>
52  </tr>
53  </tbody>
54 </table>
55 </div>
56 <!-- end header part -->
57 <!-- Generated by Doxygen 1.8.2 -->
58 <script type="text/javascript">
59 var searchBox = new SearchBox("searchBox", "search",false,'Search');
60 </script>
61 </div><!-- top -->
62 <div id="side-nav" class="ui-resizable side-nav-resizable">
63   <div id="nav-tree">
64     <div id="nav-tree-contents">
65       <div id="nav-sync" class="sync"></div>
66     </div>
67   </div>
68   <div id="splitbar" style="-moz-user-select:none;" 
69        class="ui-resizable-handle">
70   </div>
71 </div>
72 <script type="text/javascript">
73 $(document).ready(function(){initNavTree('group___g___u_c_s___i2_c.html','');});
74 </script>
75 <div id="doc-content">
76 <!-- window showing the filter options -->
77 <div id="MSearchSelectWindow"
78      onmouseover="return searchBox.OnSearchSelectShow()"
79      onmouseout="return searchBox.OnSearchSelectHide()"
80      onkeydown="return searchBox.OnSearchSelectKey(event)">
81 <a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Pages</a></div>
82
83 <!-- iframe showing the search results (closed by default) -->
84 <div id="MSearchResultsWindow">
85 <iframe src="javascript:void(0)" frameborder="0" 
86         name="MSearchResults" id="MSearchResults">
87 </iframe>
88 </div>
89
90 <div class="contents">
91 <a class="anchor" id="gade4a94669fe4f29f18fe5bfd4e102474"></a>
92 <div class="memitem">
93 <div class="memproto">
94       <table class="memname">
95         <tr>
96           <td class="memname"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd">Ucs_Return_t</a> Ucs_I2c_WritePort </td>
97           <td>(</td>
98           <td class="paramtype"><a class="el" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga074c04d40d00986e0c869adaec8fadda.html#ga074c04d40d00986e0c869adaec8fadda">Ucs_Inst_t</a> *&#160;</td>
99           <td class="paramname"><em>self</em>, </td>
100         </tr>
101         <tr>
102           <td class="paramkey"></td>
103           <td></td>
104           <td class="paramtype">uint16_t&#160;</td>
105           <td class="paramname"><em>destination_address</em>, </td>
106         </tr>
107         <tr>
108           <td class="paramkey"></td>
109           <td></td>
110           <td class="paramtype">uint16_t&#160;</td>
111           <td class="paramname"><em>port_handle</em>, </td>
112         </tr>
113         <tr>
114           <td class="paramkey"></td>
115           <td></td>
116           <td class="paramtype"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#ga631c2b70299a4c07ac77b6741b5b5e44">Ucs_I2c_TrMode_t</a>&#160;</td>
117           <td class="paramname"><em>mode</em>, </td>
118         </tr>
119         <tr>
120           <td class="paramkey"></td>
121           <td></td>
122           <td class="paramtype">uint8_t&#160;</td>
123           <td class="paramname"><em>block_count</em>, </td>
124         </tr>
125         <tr>
126           <td class="paramkey"></td>
127           <td></td>
128           <td class="paramtype">uint8_t&#160;</td>
129           <td class="paramname"><em>slave_address</em>, </td>
130         </tr>
131         <tr>
132           <td class="paramkey"></td>
133           <td></td>
134           <td class="paramtype">uint16_t&#160;</td>
135           <td class="paramname"><em>timeout</em>, </td>
136         </tr>
137         <tr>
138           <td class="paramkey"></td>
139           <td></td>
140           <td class="paramtype">uint8_t&#160;</td>
141           <td class="paramname"><em>data_len</em>, </td>
142         </tr>
143         <tr>
144           <td class="paramkey"></td>
145           <td></td>
146           <td class="paramtype">uint8_t *&#160;</td>
147           <td class="paramname"><em>data_ptr</em>, </td>
148         </tr>
149         <tr>
150           <td class="paramkey"></td>
151           <td></td>
152           <td class="paramtype"><a class="el" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga50029da1794f34d3ddac9df8d537c234.html#ga50029da1794f34d3ddac9df8d537c234">Ucs_I2c_WritePortResCb_t</a>&#160;</td>
153           <td class="paramname"><em>result_fptr</em>&#160;</td>
154         </tr>
155         <tr>
156           <td></td>
157           <td>)</td>
158           <td></td><td></td>
159         </tr>
160       </table>
161 </div><div class="memdoc">
162
163 <p>Writes a block of bytes to an I2C device at a specified I2C address. </p>
164 <table  class="mns_ic_table">
165 <tr>
166 <td id="mns_ic_inic">&#160;</td><td>This function corresponds with the INIC function <a href="_p__u_m__o_s81118.html#MNSH3-I2CPortWrite6C4">INIC.I2CPortWrite</a>.</td></tr>
167 </table>
168 <dl class="params"><dt>Parameters</dt><dd>
169   <table class="params">
170     <tr><td class="paramname">self</td><td>The UNICENS instance pointer </td></tr>
171     <tr><td class="paramname">destination_address</td><td>Address of the target device. Use the <code>UCS_ADDR_LOCAL_DEV</code> macro to target the local device. <br/>
172  The following address ranges are supported:<ul>
173 <li>[0x10 ... 0x2FF]</li>
174 <li>[0x500 ... 0xFEF]</li>
175 <li>UCS_ADDR_LOCAL_DEV </li>
176 </ul>
177 </td></tr>
178     <tr><td class="paramname">port_handle</td><td>Port resource handle. <table  class="mns_param_table">
179 <tr>
180 <td id="mns_param_small">&#160;</td><td><code>I2CPortHandle</code></td></tr>
181 </table>
182 </td></tr>
183     <tr><td class="paramname">mode</td><td>The write transfer mode. <table  class="mns_param_table">
184 <tr>
185 <td id="mns_param_small">&#160;</td><td><code>Mode</code></td></tr>
186 </table>
187 </td></tr>
188     <tr><td class="paramname">block_count</td><td>The number of blocks to be written to the I2C address. If parameter <em>mode</em> is <b>not</b> set to Burst Mode, the value of <em>block_count</em> has to be set to <b>0</b>. Otherwise the valid range of this parameter goes from 1 to 30. <table  class="mns_param_table">
189 <tr>
190 <td id="mns_param_small">&#160;</td><td><code>BlockCount</code></td></tr>
191 </table>
192 </td></tr>
193     <tr><td class="paramname">slave_address</td><td>The 7-bit I2C slave address of the peripheral to be read. <table  class="mns_param_table">
194 <tr>
195 <td id="mns_param_small">&#160;</td><td><code>SlaveAddress</code></td></tr>
196 </table>
197 </td></tr>
198     <tr><td class="paramname">timeout</td><td>The timeout for the I2C Port write. <table  class="mns_param_table">
199 <tr>
200 <td id="mns_param_small">&#160;</td><td><code>Timeout</code></td></tr>
201 </table>
202 </td></tr>
203     <tr><td class="paramname">data_len</td><td>The total number of bytes to be written to the addressed I2C peripheral. Even if parameter <em>mode</em> is set to Burst Mode, the <em>data_len</em> shall correspond to the whole size of the burst transfer. That is, the <em>data_len</em> shall equal the size of a block <b>times</b> the <em>block_count</em> value. </td></tr>
204     <tr><td class="paramname">data_ptr</td><td>Reference to the data to be written. </td></tr>
205     <tr><td class="paramname">result_fptr</td><td>Required result callback function pointer. </td></tr>
206   </table>
207   </dd>
208 </dl>
209 <dl class="section return"><dt>Returns</dt><dd>Possible return values are shown in the table below. <table class="doxtable">
210 <tr>
211 <th>Value </th><th>Description</th></tr>
212 <tr>
213 <td>UCS_RET_SUCCESS </td><td>No error </td></tr>
214 <tr>
215 <td>UCS_RET_ERR_PARAM </td><td>At least one parameter is wrong </td></tr>
216 <tr>
217 <td>UCS_RET_ERR_BUFFER_OVERFLOW </td><td>No message buffer available </td></tr>
218 <tr>
219 <td>UCS_RET_ERR_API_LOCKED </td><td>API is currently locked </td></tr>
220 <tr>
221 <td>UCS_RET_ERR_NOT_INITIALIZED </td><td>UNICENS is not initialized </td></tr>
222 </table>
223 </dd></dl>
224 <p><br/>
225  <b>Example</b> </p>
226 <div class="fragment"><div class="line">uint8_t myData[] = {0x4U, 0x3U, 0x2U, 0x1U, 0x0U, 0x4U, 0x3U, 0x2U, 0x1U, 0x0U, 0x05U, 0x05U};    </div>
227 <div class="line"></div>
228 <div class="line"><span class="comment">// Main function</span></div>
229 <div class="line"><span class="keywordtype">void</span> main()</div>
230 <div class="line">{</div>
231 <div class="line">    <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#ga886138f5d13e84ffaa3df5769830e1cd" title="Standard return codes used for synchronous response.">Ucs_Return_t</a> result = <a class="code" href="group___g___u_c_s___i2_c_gade4a94669fe4f29f18fe5bfd4e102474.html#gade4a94669fe4f29f18fe5bfd4e102474" title="Writes a block of bytes to an I2C device at a specified I2C address.">Ucs_I2c_WritePort</a>(0x15U, 0x0F00U, <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga631c2b70299a4c07ac77b6741b5b5e44.html#gga631c2b70299a4c07ac77b6741b5b5e44a3380b0b2a253a389aec424ef348a34b7" title="Burst mode of the I2C write transfer.">UCS_I2C_BURST_MODE</a>, 4U, 0x20U, 0x0FU, 12U, myData, &amp;App_I2cWritePortResCb);</div>
232 <div class="line">    <span class="keywordflow">if</span> (result != <a class="code" href="group___g___u_c_s___i_n_i_t___a_n_d___s_r_v___t_y_p_e_s_ga886138f5d13e84ffaa3df5769830e1cd.html#gga886138f5d13e84ffaa3df5769830e1cda3fb51656e17ee4802f23706f35e349bc" title="Operation successfully completed.">UCS_RET_SUCCESS</a>)</div>
233 <div class="line">    {</div>
234 <div class="line">        <span class="comment">// Error handling here </span></div>
235 <div class="line">    }</div>
236 <div class="line">}</div>
237 <div class="line"></div>
238 <div class="line"><span class="comment">// The event handler function</span></div>
239 <div class="line"><span class="comment">// Handle I2cWritePort event</span></div>
240 <div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> App_I2cWritePortResCb(uint16_t device_id, uint16_t port_handle, uint8_t i2c_slave_address, uint8_t data_len, <a class="code" href="struct_ucs___i2c___result__t.html" title="Result structure of the I2C Module.">Ucs_I2c_Result_t</a> result, <span class="keywordtype">void</span> * user_ptr)</div>
241 <div class="line">{</div>
242 <div class="line">    <span class="keywordflow">if</span> (result.<a class="code" href="struct_ucs___i2c___result__t_aacd0e1eabaa18a3fe226a2b4f849832b.html#aacd0e1eabaa18a3fe226a2b4f849832b" title="Result code.">code</a> == <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga930e829c3c689b8ead8f9fbf7f2ca237.html#gga930e829c3c689b8ead8f9fbf7f2ca237a1f0bb0636d1fbe3a3c94541d3725b864" title="I2C command succeeded.">UCS_I2C_RES_SUCCESS</a>)</div>
243 <div class="line">    {</div>
244 <div class="line">        <span class="comment">// Do what needs to be..</span></div>
245 <div class="line">    }</div>
246 <div class="line">    <span class="keywordflow">else</span></div>
247 <div class="line">    {</div>
248 <div class="line">        <span class="comment">// Error handling here</span></div>
249 <div class="line">        <span class="keywordflow">switch</span>(result.<a class="code" href="struct_ucs___i2c___result__t_a288b89d26129791b83b01a3b464d7351.html#a288b89d26129791b83b01a3b464d7351" title="Detailed information on the returned result.">details</a>.<a class="code" href="struct_ucs___i2c___result_details__t_afbf6b21e51e2114bd8165bc6b9d920a5.html#afbf6b21e51e2114bd8165bc6b9d920a5" title="Specifies the type of the current asynchronous result.">result_type</a>)</div>
250 <div class="line">        {</div>
251 <div class="line">            <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da5f9dc425604e39a96af53cc4fb940cd6" title="Specifies the target results, typically INIC function-specific error from target device.">UCS_I2C_RESULT_TYPE_TGT</a>:</div>
252 <div class="line">            <span class="comment">// Handle the target results</span></div>
253 <div class="line">            <span class="keywordflow">break</span>;</div>
254 <div class="line"></div>
255 <div class="line">            <span class="keywordflow">case</span> <a class="code" href="group___g___u_c_s___i2_c___t_y_p_e_s_ga7c7b4521cb5391bd20c02104876a811d.html#gga7c7b4521cb5391bd20c02104876a811da1e9f8a38a7bf67986bb52aae45326f0e" title="Specifies the transmission error information that occurred on the MOST network.">UCS_I2C_RESULT_TYPE_TX</a>:</div>
256 <div class="line">            <span class="keywordflow">default</span>:</div>
257 <div class="line">            <span class="comment">// Handle transmission error</span></div>
258 <div class="line">            <span class="keywordflow">break</span>;</div>
259 <div class="line">        }</div>
260 <div class="line">    }</div>
261 <div class="line"> }</div>
262 </div><!-- fragment --> 
263 </div>
264 </div>
265 </div><!-- contents -->
266 </div><!-- doc-content -->
267 <!-- start footer part -->
268 <div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
269   <ul>
270     <li class="navelem"><a class="el" href="group___g___u_c_s___i2_c.html">I2C</a></li>
271     <li class="footer">&copy; 2017 Microchip Technology Inc. All rights reserved. <a href="http://www.microchip.com" target="_blank">www.microchip.com</a></li>
272   </ul>
273 </div>
274 </body>
275 <!--
276 Generated on Mon Apr 3 2017 13:53:00 for UNICENS by
277 Doxygen 1.8.2
278 -->
279 <script language="javascript">
280 <!--
281 $('#MSearchResults').wrap('<div style="position: absolute; margin-left: 444px;"></div>');
282 -->
283 </script>
284 </html>