763 lines
134 KiB
HTML
763 lines
134 KiB
HTML
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US">
|
||
<head>
|
||
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
|
||
<meta http-equiv="X-UA-Compatible" content="IE=11"/>
|
||
<meta name="generator" content="Doxygen 1.14.0"/>
|
||
<meta name="viewport" content="width=device-width, initial-scale=1"/>
|
||
<title>Modbus: E:/.WORK/STM32/Diod_Test/diode_tester/Core/Modbus/Src/rs_message.c Source File</title>
|
||
<link href="tabs.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="jquery.js"></script>
|
||
<script type="text/javascript" src="dynsections.js"></script>
|
||
<script type="text/javascript" src="clipboard.js"></script>
|
||
<link href="navtree.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="navtreedata.js"></script>
|
||
<script type="text/javascript" src="navtree.js"></script>
|
||
<script type="text/javascript" src="cookie.js"></script>
|
||
<link href="search/search.css" rel="stylesheet" type="text/css"/>
|
||
<script type="text/javascript" src="search/searchdata.js"></script>
|
||
<script type="text/javascript" src="search/search.js"></script>
|
||
<script type="text/x-mathjax-config">
|
||
MathJax.Hub.Config({
|
||
extensions: ["tex2jax.js"],
|
||
jax: ["input/TeX","output/HTML-CSS"],
|
||
});
|
||
</script>
|
||
<script type="text/javascript" async="async" src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js"></script>
|
||
<script type="text/javascript" src="darkmode_toggle.js"></script>
|
||
<link href="doxygen.css" rel="stylesheet" type="text/css" />
|
||
</head>
|
||
<body>
|
||
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
|
||
<div id="titlearea">
|
||
<table cellspacing="0" cellpadding="0">
|
||
<tbody>
|
||
<tr id="projectrow">
|
||
<td id="projectalign">
|
||
<div id="projectname">Modbus<span id="projectnumber"> 0.3</span>
|
||
</div>
|
||
<div id="projectbrief">Библиотека Modbus для STM</div>
|
||
</td>
|
||
</tr>
|
||
</tbody>
|
||
</table>
|
||
</div>
|
||
<!-- end header part -->
|
||
<!-- Generated by Doxygen 1.14.0 -->
|
||
<script type="text/javascript">
|
||
var searchBox = new SearchBox("searchBox", "search/",'.html');
|
||
</script>
|
||
<script type="text/javascript">
|
||
$(function() { codefold.init(); });
|
||
</script>
|
||
<script type="text/javascript" src="menudata.js"></script>
|
||
<script type="text/javascript" src="menu.js"></script>
|
||
<script type="text/javascript">
|
||
$(function() {
|
||
initMenu('',true,false,'search.php','Search',true);
|
||
$(function() { init_search(); });
|
||
});
|
||
</script>
|
||
<div id="main-nav"></div>
|
||
</div><!-- top -->
|
||
<div id="side-nav" class="ui-resizable side-nav-resizable">
|
||
<div id="nav-tree">
|
||
<div id="nav-tree-contents">
|
||
<div id="nav-sync" class="sync"></div>
|
||
</div>
|
||
</div>
|
||
<div id="splitbar" style="-moz-user-select:none;"
|
||
class="ui-resizable-handle">
|
||
</div>
|
||
</div>
|
||
<script type="text/javascript">
|
||
$(function(){initNavTree('rs__message_8c_source.html','',''); });
|
||
</script>
|
||
<div id="container">
|
||
<div id="doc-content">
|
||
<!-- window showing the filter options -->
|
||
<div id="MSearchSelectWindow"
|
||
onmouseover="return searchBox.OnSearchSelectShow()"
|
||
onmouseout="return searchBox.OnSearchSelectHide()"
|
||
onkeydown="return searchBox.OnSearchSelectKey(event)">
|
||
</div>
|
||
|
||
<!-- iframe showing the search results (closed by default) -->
|
||
<div id="MSearchResultsWindow">
|
||
<div id="MSearchResults">
|
||
<div class="SRPage">
|
||
<div id="SRIndex">
|
||
<div id="SRResults"></div>
|
||
<div class="SRStatus" id="Loading">Loading...</div>
|
||
<div class="SRStatus" id="Searching">Searching...</div>
|
||
<div class="SRStatus" id="NoMatches">No Matches</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="header">
|
||
<div class="headertitle"><div class="title">rs_message.c</div></div>
|
||
</div><!--header-->
|
||
<div class="contents">
|
||
<a href="rs__message_8c.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno"> 1</span><span class="comment">/**</span></div>
|
||
<div class="line"><a id="l00002" name="l00002"></a><span class="lineno"> 2</span><span class="comment">*******************************************************************************</span></div>
|
||
<div class="line"><a id="l00003" name="l00003"></a><span class="lineno"> 3</span><span class="comment">* @file rs_message.c</span></div>
|
||
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Реализация протоколов обмена по RS/UART</span></div>
|
||
<div class="line"><a id="l00005" name="l00005"></a><span class="lineno"> 5</span><span class="comment">*******************************************************************************</span></div>
|
||
<div class="line"><a id="l00006" name="l00006"></a><span class="lineno"> 6</span><span class="comment">* @details</span></div>
|
||
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">Модуль реализует асинхронный обмен сообщениями через UART с использованием:</span></div>
|
||
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">- Прерываний по приему/передаче</span></div>
|
||
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">- Детектирования конца фрейма по IDLE линии</span></div>
|
||
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">- Таймаутов через таймер</span></div>
|
||
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">- Двухстадийного приема (заголовок + данные)</span></div>
|
||
<div class="line"><a id="l00012" name="l00012"></a><span class="lineno"> 12</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00013" name="l00013"></a><span class="lineno"> 13</span><span class="comment">@section arch Архитектура:</span></div>
|
||
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="comment">В режиме слейв:</span></div>
|
||
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment"> - Инициализация приема с сообщения с максимальным размером MSG_SIZE_MAX</span></div>
|
||
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment"> - При срабатывании прерывания IDLE - обработка полученного сообщения</span></div>
|
||
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="comment">В режиме мастер (пока не реализовано):</span></div>
|
||
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="comment"> - Отправка запроса и переход в режим приема сообщения с максимальным размером MSG_SIZE_MAX</span></div>
|
||
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> - При срабатывании прерывания IDLE - обработка полученного ответа</span></div>
|
||
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> </span></div>
|
||
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment">@section ithandler Необходимые обработчики:</span></div>
|
||
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">- RS_UART_Handler() в UARTx_IRQHandler вместо HAL_UART_IRQHandler()</span></div>
|
||
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">- RS_TIM_Handler() в TIMx_IRQHandler вместо HAL_TIM_IRQHandler()</span></div>
|
||
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">******************************************************************************/</span></div>
|
||
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="preprocessor">#include "<a class="code" href="rs__message_8h.html">rs_message.h</a>"</span></div>
|
||
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="preprocessor">#include "<a class="code" href="modbus__diag_8h.html">modbus_diag.h</a>"</span></div>
|
||
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span> </div>
|
||
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span>uint8_t RS_Buffer[<a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga7d1e9e8bb8f40ce788836da0739f897c">MSG_SIZE_MAX</a>]; <span class="comment">// uart buffer</span></div>
|
||
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span> </div>
|
||
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="keyword">extern</span> <span class="keywordtype">void</span> RS_UART_Init(<span class="keywordtype">void</span>);</div>
|
||
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="keyword">extern</span> <span class="keywordtype">void</span> RS_UART_DeInit(UART_HandleTypeDef *huart);</div>
|
||
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="keyword">extern</span> <span class="keywordtype">void</span> RS_TIM_Init(<span class="keywordtype">void</span>);</div>
|
||
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="keyword">extern</span> <span class="keywordtype">void</span> RS_TIM_DeInit(TIM_HandleTypeDef *htim);</div>
|
||
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span> </div>
|
||
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment">//-------------------------------------------------------------------</span></div>
|
||
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment">//-------------------------GENERAL FUNCTIONS-------------------------</span><span class="comment"></span></div>
|
||
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">/**</span></div>
|
||
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment"> * @brief Начать прием по прерываниям.</span></div>
|
||
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><span class="comment"> * @param RS_msg Указатель на структуру сообщения.</span></div>
|
||
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment"> * @return RS_RES Статус о состоянии RS после инициализации приема.</span></div>
|
||
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00043" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f"> 43</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f">RS_Receive_IT</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</div>
|
||
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span>{</div>
|
||
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span> <a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> RS_RES = 0;</div>
|
||
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span> HAL_StatusTypeDef uart_res = 0;</div>
|
||
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span> </div>
|
||
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> <span class="comment">//-------------CHECK RS LINE----------------</span></div>
|
||
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span> <span class="comment">// check that receive isnt busy</span></div>
|
||
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span> <span class="keywordflow">if</span>( RS_Is_RX_Busy(hRS) ) <span class="comment">// if tx busy - return busy status</span></div>
|
||
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span> <span class="keywordflow">return</span> RS_BUSY; </div>
|
||
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> </div>
|
||
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span> <span class="comment">//-----------INITIALIZE RECEIVE-------------</span></div>
|
||
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> <span class="comment">// if all OK: start receiving</span></div>
|
||
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span> <a class="code hl_define" href="group___r_s___t_o_o_l_s.html#gae0f359f0af89adf45bac275a3f5ee34d">RS_EnableReceive</a>();</div>
|
||
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span> RS_Set_Busy(hRS); <span class="comment">// set RS busy </span></div>
|
||
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span> RS_Set_RX_Flags(hRS); <span class="comment">// initialize flags for receive</span></div>
|
||
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a> = RS_msg; <span class="comment">// set pointer to message structire for filling it from UARTHandler fucntions</span></div>
|
||
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> <span class="keywordflow">if</span>(!hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6fa98c2955d01e07dc59f73d072bb37e">f</a>.<a class="code hl_variable" href="struct_r_s___flags_type_def.html#a1513dc1265334c20a82b55b1090024c8">RX_Continue</a>) <span class="comment">// if not continue receiving</span></div>
|
||
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d">RS_Message_Size</a> = 0; <span class="comment">// set ptr to start buffer</span></div>
|
||
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span> </div>
|
||
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span> <span class="comment">// start receiving</span></div>
|
||
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> __HAL_UART_ENABLE_IT(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>, UART_IT_IDLE);</div>
|
||
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> uart_res = HAL_UART_Receive_IT(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>, &hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">pBufferPtr</a>[hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d">RS_Message_Size</a>], <a class="code hl_define" href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga7d1e9e8bb8f40ce788836da0739f897c">MSG_SIZE_MAX</a>); <span class="comment">// receive until ByteCnt+1 byte, </span></div>
|
||
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span> <span class="comment">// then in Callback restart receive for rest bytes </span></div>
|
||
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span> </div>
|
||
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span> <span class="comment">// if receive isnt started - abort RS</span></div>
|
||
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> <span class="keywordflow">if</span>(uart_res != HAL_OK)</div>
|
||
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span> {</div>
|
||
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span> RS_RES = <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">RS_Abort</a>(hRS, <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">ABORT_RS</a>);</div>
|
||
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga830a5ed90667bf50ab8c409dcadb2a39">printf_rs_err</a>(<span class="stringliteral">"Failed to start RS receiving..."</span>);</div>
|
||
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9">TrackerCnt_Err</a>(hRS->rs_err);</div>
|
||
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span> }</div>
|
||
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span> <span class="keywordflow">else</span></div>
|
||
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span> {</div>
|
||
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span> RS_RES = RS_OK;</div>
|
||
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga30a03e8d8912be85a203c829b581f999">printf_rs</a>(<span class="stringliteral">"Start Receiving..."</span>);</div>
|
||
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga23de0006aa08984cfeddb6aa5e512fa1">TrackerCnt_Ok</a>(hRS->rs_err);</div>
|
||
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span> }</div>
|
||
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span> </div>
|
||
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9">RS_STATUS</a> = RS_RES;</div>
|
||
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span> <span class="keywordflow">return</span> RS_RES; <span class="comment">// returns result of receive init </span></div>
|
||
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="comment">/**</span></div>
|
||
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</span><span class="comment"> * @brief Начать передачу по прерываниям.</span></div>
|
||
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> * @param RS_msg Указатель на структуру сообщения.</span></div>
|
||
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> * @return RS_RES Статус о состоянии RS после инициализации передачи.</span></div>
|
||
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00091" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9"> 91</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9">RS_Transmit_IT</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</div>
|
||
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span>{ </div>
|
||
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span> <a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> RS_RES = 0;</div>
|
||
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span> HAL_StatusTypeDef uart_res = 0;</div>
|
||
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span> </div>
|
||
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span> <span class="comment">//-------------CHECK RS LINE----------------</span></div>
|
||
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span> <span class="comment">// check that transmit isnt busy</span></div>
|
||
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span> <span class="keywordflow">if</span>( RS_Is_TX_Busy(hRS) ) <span class="comment">// if tx busy - return busy status</span></div>
|
||
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span> <span class="keywordflow">return</span> RS_BUSY;</div>
|
||
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span> <span class="comment">// check receive line</span></div>
|
||
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span> </div>
|
||
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span> </div>
|
||
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span> <span class="comment">//------------COLLECT MESSAGE---------------</span></div>
|
||
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span> RS_RES = <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5">RS_Collect_Message</a>(hRS, RS_msg, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">pBufferPtr</a>);</div>
|
||
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span> <span class="keywordflow">if</span> (RS_RES != RS_OK) <span class="comment">// if message isnt collect - stop RS and return error in RS_RES</span></div>
|
||
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> {<span class="comment">// need collect message status, so doesnt write abort to RS_RES</span></div>
|
||
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">RS_Abort</a>(hRS, <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">ABORT_RS</a>);</div>
|
||
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">RS_Handle_Receive_Start</a>(hRS, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>); <span class="comment">// restart receive</span></div>
|
||
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> }</div>
|
||
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span> <span class="keywordflow">else</span> <span class="comment">// if collect successful</span></div>
|
||
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span> {</div>
|
||
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span> </div>
|
||
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> <span class="comment">//----------INITIALIZE TRANSMIT-------------</span></div>
|
||
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> <a class="code hl_define" href="group___r_s___t_o_o_l_s.html#gaeddade966945ed376bb152151b493d6f">RS_EnableTransmit</a>();</div>
|
||
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span> </div>
|
||
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span> RS_Set_Busy(hRS); <span class="comment">// set RS busy</span></div>
|
||
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span> RS_Set_TX_Flags(hRS); <span class="comment">// initialize flags for transmit IT</span></div>
|
||
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a> = RS_msg; <span class="comment">// set pointer for filling given structure from UARTHandler fucntion</span></div>
|
||
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d">RS_Message_Size</a> <= 0)</div>
|
||
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span> {</div>
|
||
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span> RS_RES = <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">RS_Abort</a>(hRS, <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">ABORT_RS</a>);</div>
|
||
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9">TrackerCnt_Err</a>(hRS->rs_err);</div>
|
||
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span> <span class="keywordflow">return</span> RS_ERR;</div>
|
||
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> } </div>
|
||
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span> <span class="comment">// if all OK: start transmitting</span></div>
|
||
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span> uart_res = HAL_UART_Transmit_IT(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">pBufferPtr</a>, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d">RS_Message_Size</a>); </div>
|
||
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span> <span class="comment">// if transmit isnt started - abort RS</span></div>
|
||
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span> <span class="keywordflow">if</span>(uart_res != HAL_OK)</div>
|
||
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span> {</div>
|
||
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span> RS_RES = <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">RS_Abort</a>(hRS, <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">ABORT_RS</a>);</div>
|
||
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga830a5ed90667bf50ab8c409dcadb2a39">printf_rs_err</a>(<span class="stringliteral">"Failed to start RS transmitting..."</span>);</div>
|
||
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9">TrackerCnt_Err</a>(hRS->rs_err);</div>
|
||
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> }</div>
|
||
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> <span class="keywordflow">else</span></div>
|
||
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> {</div>
|
||
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> RS_RES = RS_OK;</div>
|
||
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga30a03e8d8912be85a203c829b581f999">printf_rs</a>(<span class="stringliteral">"Start Transmitting..."</span>);</div>
|
||
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga23de0006aa08984cfeddb6aa5e512fa1">TrackerCnt_Ok</a>(hRS->rs_err);</div>
|
||
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span> }</div>
|
||
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span> }</div>
|
||
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
|
||
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
|
||
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9">RS_STATUS</a> = RS_RES;</div>
|
||
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span> <span class="keywordflow">return</span> RS_RES; <span class="comment">// returns result of transmit init </span></div>
|
||
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="comment">/** </span></div>
|
||
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="comment"> * @brief Инициалазация структуры @ref RS_HandleTypeDef.</span></div>
|
||
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment"> * @param suart Указатель на структуру с настройками UART.</span></div>
|
||
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="comment"> * @param stim Указатель на структуру с настройками таймера.</span></div>
|
||
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="comment"> * @param pRS_BufferPtr Указатель на буффер для приема-передачи по UART. Если он NULL, то поставиться библиотечный буфер.</span></div>
|
||
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="comment"> * @return RS_RES Статус о состоянии RS после инициализации.</span></div>
|
||
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment"> * @details Инициализация перефирии и структуры для приема-передачи по RS.</span></div>
|
||
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00156" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#gaa261bb0d37e7f18f04fb4353aa0f5c45"> 156</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gaa261bb0d37e7f18f04fb4353aa0f5c45">RS_Init</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim, uint8_t *pRS_BufferPtr)</div>
|
||
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span>{</div>
|
||
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> <span class="comment">// check that hRS is defined</span></div>
|
||
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">if</span> (hRS == NULL)</div>
|
||
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> <span class="keywordflow">return</span> RS_ERR;</div>
|
||
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> <span class="comment">// check that huart is defined</span></div>
|
||
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> <span class="keywordflow">if</span> (huart == NULL) </div>
|
||
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span> <span class="keywordflow">return</span> RS_ERR;</div>
|
||
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span> </div>
|
||
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a> = huart;</div>
|
||
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span> </div>
|
||
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a> = htim;</div>
|
||
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span> </div>
|
||
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span> <span class="comment">// check that buffer is defined</span></div>
|
||
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span> <span class="keywordflow">if</span> (hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">pBufferPtr</a> == NULL)</div>
|
||
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span> {</div>
|
||
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">pBufferPtr</a> = RS_Buffer; <span class="comment">// if no - set default</span></div>
|
||
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span> }</div>
|
||
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> <span class="keywordflow">else</span></div>
|
||
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">pBufferPtr</a> = pRS_BufferPtr; <span class="comment">// if yes - set by user</span></div>
|
||
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span> </div>
|
||
<div class="line"><a id="l00177" name="l00177"></a><span class="lineno"> 177</span> <span class="keywordflow">return</span> RS_OK;</div>
|
||
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span> </div>
|
||
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span><span class="comment">/**</span></div>
|
||
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span><span class="comment"> * @brief Отменить прием/передачу RS/UART.</span></div>
|
||
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment"> * @param AbortMode Выбор, что надо отменить.</span></div>
|
||
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment"> - ABORT_TX: Отмена передачи по ЮАРТ, с очищением флагов TX,</span></div>
|
||
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span><span class="comment"> - ABORT_RX: Отмена приема по ЮАРТ, с очищением флагов RX,</span></div>
|
||
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span><span class="comment"> - ABORT_RX_TX: Отмена приема и передачи по ЮАРТ,</span></div>
|
||
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="comment"> - ABORT_RS: Отмена приема-передачи RS, с очищением всей структуры.</span></div>
|
||
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="comment"> * @return RS_RES Статус о состоянии RS после аборта.</span></div>
|
||
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="comment"> * @details Отмена работы UART в целом или отмена приема/передачи RS. </span></div>
|
||
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="comment"> Также очищается хендл hRS.</span></div>
|
||
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00193" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962"> 193</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">RS_Abort</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#gab7c55bd8bb15b0eecc8c525019d4a1cc">RS_AbortTypeDef</a> AbortMode)</div>
|
||
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span>{</div>
|
||
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span> HAL_StatusTypeDef uart_res = 0;</div>
|
||
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span> </div>
|
||
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd">RS_Timeout_Stop</a>(hRS);</div>
|
||
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span> </div>
|
||
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span> <span class="keywordflow">if</span>((AbortMode&<a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">ABORT_RS</a>) == 0x00)</div>
|
||
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span> { </div>
|
||
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span> <span class="keywordflow">if</span>((AbortMode&<a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1ccaf0519a0ddda6fff97dd61ce0f3320df9">ABORT_RX</a>) == <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1ccaf0519a0ddda6fff97dd61ce0f3320df9">ABORT_RX</a>)</div>
|
||
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span> {</div>
|
||
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span> uart_res = HAL_UART_AbortReceive(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>); <span class="comment">// abort receive</span></div>
|
||
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span> RS_Reset_RX_Flags(hRS);</div>
|
||
<div class="line"><a id="l00205" name="l00205"></a><span class="lineno"> 205</span> }</div>
|
||
<div class="line"><a id="l00206" name="l00206"></a><span class="lineno"> 206</span> </div>
|
||
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span> <span class="keywordflow">if</span>((AbortMode&<a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca95c6ce0fee466ba98e43213d001ecc16">ABORT_TX</a>) == <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca95c6ce0fee466ba98e43213d001ecc16">ABORT_TX</a>)</div>
|
||
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span> {</div>
|
||
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span> uart_res = HAL_UART_AbortTransmit(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>); <span class="comment">// abort transmit</span></div>
|
||
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span> RS_Reset_TX_Flags(hRS);</div>
|
||
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span> }</div>
|
||
<div class="line"><a id="l00212" name="l00212"></a><span class="lineno"> 212</span> }</div>
|
||
<div class="line"><a id="l00213" name="l00213"></a><span class="lineno"> 213</span> <span class="keywordflow">else</span></div>
|
||
<div class="line"><a id="l00214" name="l00214"></a><span class="lineno"> 214</span> {</div>
|
||
<div class="line"><a id="l00215" name="l00215"></a><span class="lineno"> 215</span> uart_res = HAL_UART_Abort(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>);</div>
|
||
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span> RS_Clear_All(hRS);</div>
|
||
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span> }</div>
|
||
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9">RS_STATUS</a> = RS_ABORTED;</div>
|
||
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span> <span class="keywordflow">return</span> RS_ABORTED;</div>
|
||
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00221" name="l00221"></a><span class="lineno"> 221</span> </div>
|
||
<div class="line"><a id="l00222" name="l00222"></a><span class="lineno"> 222</span> </div>
|
||
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</span><span class="comment">//-------------------------GENERAL FUNCTIONS-------------------------</span></div>
|
||
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment">//-------------------------------------------------------------------</span></div>
|
||
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</span> </div>
|
||
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span> </div>
|
||
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span> </div>
|
||
<div class="line"><a id="l00228" name="l00228"></a><span class="lineno"> 228</span><span class="comment">//-------------------------------------------------------------------</span></div>
|
||
<div class="line"><a id="l00229" name="l00229"></a><span class="lineno"> 229</span><span class="comment">//--------------------CALLBACK/HANDLER FUNCTIONS---------------------</span><span class="comment"></span></div>
|
||
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span><span class="comment">/**</span></div>
|
||
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="comment"> * @brief Обработчик для начала приема.</span></div>
|
||
<div class="line"><a id="l00232" name="l00232"></a><span class="lineno"> 232</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00233" name="l00233"></a><span class="lineno"> 233</span><span class="comment"> * @param RS_msg Указатель на структуру сообщения.</span></div>
|
||
<div class="line"><a id="l00234" name="l00234"></a><span class="lineno"> 234</span><span class="comment"> * @return RS_RES Статус о состоянии RS после инициализации приема или окончания общения.</span></div>
|
||
<div class="line"><a id="l00235" name="l00235"></a><span class="lineno"> 235</span><span class="comment"> * @details Определяет начинать прием команды/ответа или нет.</span></div>
|
||
<div class="line"><a id="l00236" name="l00236"></a><span class="lineno"> 236</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00237" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00237" name="l00237"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef"> 237</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">RS_Handle_Receive_Start</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</div>
|
||
<div class="line"><a id="l00238" name="l00238"></a><span class="lineno"> 238</span>{ </div>
|
||
<div class="line"><a id="l00239" name="l00239"></a><span class="lineno"> 239</span> <a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> RS_RES = 0;</div>
|
||
<div class="line"><a id="l00240" name="l00240"></a><span class="lineno"> 240</span> </div>
|
||
<div class="line"><a id="l00241" name="l00241"></a><span class="lineno"> 241</span> <span class="keywordflow">switch</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194">sRS_Mode</a>)</div>
|
||
<div class="line"><a id="l00242" name="l00242"></a><span class="lineno"> 242</span> {</div>
|
||
<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"> 243</span> <span class="comment">// В режиме мастер</span></div>
|
||
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7a15953c59b7f547b318edab14070873c5">RS_MASTER_REQUEST</a>: </div>
|
||
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8">RS_Timeout_Start</a>(hRS); <span class="comment">// сразу запускаем таймаут и начинаем прием</span></div>
|
||
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span> <span class="comment">// В режиме слейв</span></div>
|
||
<div class="line"><a id="l00247" name="l00247"></a><span class="lineno"> 247</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7aee8cfd8ce9edacc055a195ed454a49dc">RS_SLAVE_ALWAYS_WAIT</a>:</div>
|
||
<div class="line"><a id="l00248" name="l00248"></a><span class="lineno"> 248</span> RS_RES = <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f">RS_Receive_IT</a>(hRS, RS_msg); <span class="comment">// Просто запускаем фоновый прием</span></div>
|
||
<div class="line"><a id="l00249" name="l00249"></a><span class="lineno"> 249</span> <span class="keywordflow">break</span>; </div>
|
||
<div class="line"><a id="l00250" name="l00250"></a><span class="lineno"> 250</span> </div>
|
||
<div class="line"><a id="l00251" name="l00251"></a><span class="lineno"> 251</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7ad118e897a520ddc9c77a905684079550">RS_RESERVED</a>:</div>
|
||
<div class="line"><a id="l00252" name="l00252"></a><span class="lineno"> 252</span> RS_Set_Free(hRS); RS_RES = RS_OK; <span class="keywordflow">break</span>; <span class="comment">// end RS communication (set RS unbusy)</span></div>
|
||
<div class="line"><a id="l00253" name="l00253"></a><span class="lineno"> 253</span> }</div>
|
||
<div class="line"><a id="l00254" name="l00254"></a><span class="lineno"> 254</span> </div>
|
||
<div class="line"><a id="l00255" name="l00255"></a><span class="lineno"> 255</span> <span class="keywordflow">if</span>(RS_RES != RS_OK)</div>
|
||
<div class="line"><a id="l00256" name="l00256"></a><span class="lineno"> 256</span> {</div>
|
||
<div class="line"><a id="l00257" name="l00257"></a><span class="lineno"> 257</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9">TrackerCnt_Err</a>(hRS->rs_err);</div>
|
||
<div class="line"><a id="l00258" name="l00258"></a><span class="lineno"> 258</span> }</div>
|
||
<div class="line"><a id="l00259" name="l00259"></a><span class="lineno"> 259</span> </div>
|
||
<div class="line"><a id="l00260" name="l00260"></a><span class="lineno"> 260</span> <span class="keywordflow">return</span> RS_RES;</div>
|
||
<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"> 261</span>}<span class="comment"></span></div>
|
||
</div>
|
||
<div class="line"><a id="l00262" name="l00262"></a><span class="lineno"> 262</span><span class="comment">/** </span></div>
|
||
<div class="line"><a id="l00263" name="l00263"></a><span class="lineno"> 263</span><span class="comment"> * @brief Обработчик для начала передачи.</span></div>
|
||
<div class="line"><a id="l00264" name="l00264"></a><span class="lineno"> 264</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00265" name="l00265"></a><span class="lineno"> 265</span><span class="comment"> * @param RS_msg Указатель на структуру сообщения.</span></div>
|
||
<div class="line"><a id="l00266" name="l00266"></a><span class="lineno"> 266</span><span class="comment"> * @return RS_RES Статус о состоянии RS после инициализации передачи.</span></div>
|
||
<div class="line"><a id="l00267" name="l00267"></a><span class="lineno"> 267</span><span class="comment"> * @details Определяет отвечать ли на команду или нет.</span></div>
|
||
<div class="line"><a id="l00268" name="l00268"></a><span class="lineno"> 268</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00269" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00269" name="l00269"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga330f6cfcdaab1f239054c0d91be3c5bc"> 269</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga330f6cfcdaab1f239054c0d91be3c5bc">RS_Handle_Transmit_Start</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</div>
|
||
<div class="line"><a id="l00270" name="l00270"></a><span class="lineno"> 270</span>{ </div>
|
||
<div class="line"><a id="l00271" name="l00271"></a><span class="lineno"> 271</span> <a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> RS_RES = 0;</div>
|
||
<div class="line"><a id="l00272" name="l00272"></a><span class="lineno"> 272</span> </div>
|
||
<div class="line"><a id="l00273" name="l00273"></a><span class="lineno"> 273</span> <span class="keywordflow">switch</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194">sRS_Mode</a>)</div>
|
||
<div class="line"><a id="l00274" name="l00274"></a><span class="lineno"> 274</span> {</div>
|
||
<div class="line"><a id="l00275" name="l00275"></a><span class="lineno"> 275</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7aee8cfd8ce9edacc055a195ed454a49dc">RS_SLAVE_ALWAYS_WAIT</a>: <span class="comment">// in slave mode always response</span></div>
|
||
<div class="line"><a id="l00276" name="l00276"></a><span class="lineno"> 276</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7ad118e897a520ddc9c77a905684079550">RS_RESERVED</a>: <span class="comment">// transmit response</span></div>
|
||
<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"> 277</span> <span class="keywordflow">case</span> <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7a15953c59b7f547b318edab14070873c5">RS_MASTER_REQUEST</a>: <span class="comment">// transmit response</span></div>
|
||
<div class="line"><a id="l00278" name="l00278"></a><span class="lineno"> 278</span> RS_RES = <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9">RS_Transmit_IT</a>(hRS, RS_msg); <span class="keywordflow">break</span>; </div>
|
||
<div class="line"><a id="l00279" name="l00279"></a><span class="lineno"> 279</span> }</div>
|
||
<div class="line"><a id="l00280" name="l00280"></a><span class="lineno"> 280</span> </div>
|
||
<div class="line"><a id="l00281" name="l00281"></a><span class="lineno"> 281</span> <span class="keywordflow">if</span>(RS_RES != RS_OK)</div>
|
||
<div class="line"><a id="l00282" name="l00282"></a><span class="lineno"> 282</span> {</div>
|
||
<div class="line"><a id="l00283" name="l00283"></a><span class="lineno"> 283</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194">sRS_Mode</a> < <a class="code hl_define" href="group___r_s___t_o_o_l_s.html#ga9560ee688d4bcdd90a47c110be4ecf92">RS_MASTER_MODE_START</a>)</div>
|
||
<div class="line"><a id="l00284" name="l00284"></a><span class="lineno"> 284</span> {</div>
|
||
<div class="line"><a id="l00285" name="l00285"></a><span class="lineno"> 285</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">RS_Handle_Receive_Start</a>(hRS, RS_msg);</div>
|
||
<div class="line"><a id="l00286" name="l00286"></a><span class="lineno"> 286</span> }</div>
|
||
<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"> 287</span> </div>
|
||
<div class="line"><a id="l00288" name="l00288"></a><span class="lineno"> 288</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9">TrackerCnt_Err</a>(hRS->rs_err);</div>
|
||
<div class="line"><a id="l00289" name="l00289"></a><span class="lineno"> 289</span> }</div>
|
||
<div class="line"><a id="l00290" name="l00290"></a><span class="lineno"> 290</span> </div>
|
||
<div class="line"><a id="l00291" name="l00291"></a><span class="lineno"> 291</span> <span class="keywordflow">return</span> RS_RES;</div>
|
||
<div class="line"><a id="l00292" name="l00292"></a><span class="lineno"> 292</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00293" name="l00293"></a><span class="lineno"> 293</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"> 294</span><span class="comment">/** </span></div>
|
||
<div class="line"><a id="l00295" name="l00295"></a><span class="lineno"> 295</span><span class="comment"> * @brief UART TX Callback: коллбек после окончания передачи.</span></div>
|
||
<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"> 296</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00297" name="l00297"></a><span class="lineno"> 297</span><span class="comment"> * @return RS_RES Статус о состоянии RS после обработки приема.</span></div>
|
||
<div class="line"><a id="l00298" name="l00298"></a><span class="lineno"> 298</span><span class="comment"> * @details Определяет поведение RS после передачи сообщения.</span></div>
|
||
<div class="line"><a id="l00299" name="l00299"></a><span class="lineno"> 299</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00300" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00300" name="l00300"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac"> 300</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac">RS_UART_TxCpltCallback</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</div>
|
||
<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"> 301</span>{</div>
|
||
<div class="line"><a id="l00302" name="l00302"></a><span class="lineno"> 302</span> <a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> RS_RES = RS_OK;</div>
|
||
<div class="line"><a id="l00303" name="l00303"></a><span class="lineno"> 303</span> HAL_StatusTypeDef uart_res = 0;</div>
|
||
<div class="line"><a id="l00304" name="l00304"></a><span class="lineno"> 304</span> </div>
|
||
<div class="line"><a id="l00305" name="l00305"></a><span class="lineno"> 305</span> <span class="comment">//--------------ENDING TRANSMITTING-------------</span></div>
|
||
<div class="line"><a id="l00306" name="l00306"></a><span class="lineno"> 306</span> RS_Set_TX_End(hRS);</div>
|
||
<div class="line"><a id="l00307" name="l00307"></a><span class="lineno"> 307</span> </div>
|
||
<div class="line"><a id="l00308" name="l00308"></a><span class="lineno"> 308</span> <span class="comment">//-----------START RECEIVING or END RS----------</span></div>
|
||
<div class="line"><a id="l00309" name="l00309"></a><span class="lineno"> 309</span> RS_RES = <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">RS_Handle_Receive_Start</a>(hRS, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>);</div>
|
||
<div class="line"><a id="l00310" name="l00310"></a><span class="lineno"> 310</span> </div>
|
||
<div class="line"><a id="l00311" name="l00311"></a><span class="lineno"> 311</span> <span class="keywordflow">return</span> RS_RES;</div>
|
||
<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"> 312</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00313" name="l00313"></a><span class="lineno"> 313</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"> 314</span><span class="comment">/** </span></div>
|
||
<div class="line"><a id="l00315" name="l00315"></a><span class="lineno"> 315</span><span class="comment">* @brief Обработчик прерывания UART.</span></div>
|
||
<div class="line"><a id="l00316" name="l00316"></a><span class="lineno"> 316</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00317" name="l00317"></a><span class="lineno"> 317</span><span class="comment"> * @details Обрабатывает ошибки если есть и вызывает RS Коллбеки.</span></div>
|
||
<div class="line"><a id="l00318" name="l00318"></a><span class="lineno"> 318</span><span class="comment"> * Добавить вызов этой функции в UARTx_IRQHandler() ВМЕСТО HAL_UART_IRQHandler().</span></div>
|
||
<div class="line"><a id="l00319" name="l00319"></a><span class="lineno"> 319</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00320" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00320" name="l00320"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1"> 320</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1">RS_UART_Handler</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</div>
|
||
<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"> 321</span>{</div>
|
||
<div class="line"><a id="l00322" name="l00322"></a><span class="lineno"> 322</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a> == NULL)</div>
|
||
<div class="line"><a id="l00323" name="l00323"></a><span class="lineno"> 323</span> {</div>
|
||
<div class="line"><a id="l00324" name="l00324"></a><span class="lineno"> 324</span> <span class="keywordflow">return</span>;</div>
|
||
<div class="line"><a id="l00325" name="l00325"></a><span class="lineno"> 325</span> } </div>
|
||
<div class="line"><a id="l00326" name="l00326"></a><span class="lineno"> 326</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga8c401e4d5d440001c1d879984107bb79">RS_UART_Handler_ENTER</a>();</div>
|
||
<div class="line"><a id="l00327" name="l00327"></a><span class="lineno"> 327</span> <span class="comment">//-------------CHECK IDLE FLAG FIRST------------- </span></div>
|
||
<div class="line"><a id="l00328" name="l00328"></a><span class="lineno"> 328</span> <span class="comment">/* Проверяем флаг IDLE в первую очередь - это гарантирует обработку только после idle */</span></div>
|
||
<div class="line"><a id="l00329" name="l00329"></a><span class="lineno"> 329</span> <span class="keywordflow">if</span>(__HAL_UART_GET_FLAG(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>, UART_FLAG_IDLE) && __HAL_UART_GET_IT_SOURCE(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>, UART_IT_IDLE))</div>
|
||
<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"> 330</span> {</div>
|
||
<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"> 331</span> __HAL_UART_CLEAR_IDLEFLAG(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>); <span class="comment">// Важно: очистить флаг IDLE</span></div>
|
||
<div class="line"><a id="l00332" name="l00332"></a><span class="lineno"> 332</span> <span class="comment">//-------------STANDARD UART HANDLING-------------</span></div>
|
||
<div class="line"><a id="l00333" name="l00333"></a><span class="lineno"> 333</span> HAL_UART_IRQHandler(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>);</div>
|
||
<div class="line"><a id="l00334" name="l00334"></a><span class="lineno"> 334</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6fa98c2955d01e07dc59f73d072bb37e">f</a>.<a class="code hl_variable" href="struct_r_s___flags_type_def.html#a1513dc1265334c20a82b55b1090024c8">RX_Continue</a> = 0;</div>
|
||
<div class="line"><a id="l00335" name="l00335"></a><span class="lineno"> 335</span> </div>
|
||
<div class="line"><a id="l00336" name="l00336"></a><span class="lineno"> 336</span> <span class="comment">// Если прием активен и мы получили IDLE - это конец фрейма</span></div>
|
||
<div class="line"><a id="l00337" name="l00337"></a><span class="lineno"> 337</span> <span class="keywordflow">if</span>(RS_Is_RX_Busy(hRS) && hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6fa98c2955d01e07dc59f73d072bb37e">f</a>.<a class="code hl_variable" href="struct_r_s___flags_type_def.html#adfc04070a08e90f514072fff20efc744">RX_Ongoing</a>)</div>
|
||
<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"> 338</span> {</div>
|
||
<div class="line"><a id="l00339" name="l00339"></a><span class="lineno"> 339</span> <span class="comment">// Получаем количество фактически принятых байтов</span></div>
|
||
<div class="line"><a id="l00340" name="l00340"></a><span class="lineno"> 340</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d">RS_Message_Size</a> += hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>->RxXferSize - hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>->RxXferCount;</div>
|
||
<div class="line"><a id="l00341" name="l00341"></a><span class="lineno"> 341</span> </div>
|
||
<div class="line"><a id="l00342" name="l00342"></a><span class="lineno"> 342</span> </div>
|
||
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"> 343</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d">RS_Message_Size</a> > 0)</div>
|
||
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"> 344</span> { </div>
|
||
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> <span class="comment">// Принудительно завершаем прием (получили сообщение)</span></div>
|
||
<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"> 346</span> HAL_UART_AbortReceive(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>); <span class="comment">// abort receive </span></div>
|
||
<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> </div>
|
||
<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> <span class="comment">// Завершаем прием в нашей структуре</span></div>
|
||
<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> RS_Set_RX_End(hRS);</div>
|
||
<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"> 350</span> </div>
|
||
<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span> <span class="comment">// Парсим наше сообщение</span></div>
|
||
<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9">RS_STATUS</a> = <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5">RS_Parse_Message</a>(hRS, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">pBufferPtr</a>);</div>
|
||
<div class="line"><a id="l00353" name="l00353"></a><span class="lineno"> 353</span> </div>
|
||
<div class="line"><a id="l00354" name="l00354"></a><span class="lineno"> 354</span> <span class="comment">// Если сообещине принято корректно</span></div>
|
||
<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"> 355</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9">RS_STATUS</a> == RS_OK) </div>
|
||
<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> {</div>
|
||
<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"> 357</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd">RS_Timeout_Stop</a>(hRS);</div>
|
||
<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> </div>
|
||
<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a3b377cb0eabf384a7e715fb030218290">lastPacketTick</a> = local_time();</div>
|
||
<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194">sRS_Mode</a> < <a class="code hl_define" href="group___r_s___t_o_o_l_s.html#ga9560ee688d4bcdd90a47c110be4ecf92">RS_MASTER_MODE_START</a>)</div>
|
||
<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> {</div>
|
||
<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690">RS_Response</a>(hRS, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>); <span class="comment">// отвечаем на запрос</span></div>
|
||
<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> }</div>
|
||
<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> <span class="keywordflow">else</span></div>
|
||
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> {</div>
|
||
<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"> 366</span> RS_Set_Free(hRS); <span class="comment">// освобожднаем RS</span></div>
|
||
<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"> 367</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6e584c7559c702d3382dbb9aa572b71b">pCallback</a>)</div>
|
||
<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> {</div>
|
||
<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6e584c7559c702d3382dbb9aa572b71b">pCallback</a>(hRS, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>); <span class="comment">// обрабатываем ответ</span></div>
|
||
<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span> }</div>
|
||
<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> }</div>
|
||
<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> }</div>
|
||
<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> <span class="keywordflow">else</span></div>
|
||
<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> {</div>
|
||
<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"> 375</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">RS_Handle_Receive_Start</a>(hRS, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>); <span class="comment">// если сообщение пришло не полностью - продолжаем прием до таймаута</span></div>
|
||
<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span> }</div>
|
||
<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> }</div>
|
||
<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span> }</div>
|
||
<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> <span class="keywordflow">return</span>; <span class="comment">// Выходим после обработки IDLE</span></div>
|
||
<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"> 380</span> }</div>
|
||
<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <span class="keywordflow">else</span></div>
|
||
<div class="line"><a id="l00382" name="l00382"></a><span class="lineno"> 382</span> {</div>
|
||
<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"> 383</span> <span class="comment">//-------------STANDARD UART HANDLING-------------</span></div>
|
||
<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> HAL_UART_IRQHandler(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>);</div>
|
||
<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> }</div>
|
||
<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> </div>
|
||
<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> </div>
|
||
<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <span class="comment">//-------------CALL RS CALLBACKS------------ </span></div>
|
||
<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> <span class="comment">/* IF NO ERROR OCCURS */</span></div>
|
||
<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>->ErrorCode == 0) </div>
|
||
<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> {</div>
|
||
<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> </div>
|
||
<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> <span class="comment">// if first byte is received and receive is active</span></div>
|
||
<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <span class="keywordflow">if</span>((hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>->RxXferCount+1 == hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>->RxXferSize) && RS_Is_RX_Busy(hRS)) </div>
|
||
<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> {</div>
|
||
<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8">RS_Timeout_Start</a>(hRS);</div>
|
||
<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"> 397</span> }</div>
|
||
<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521">RS_Timeout_Update</a>(hRS);</div>
|
||
<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"> 399</span> </div>
|
||
<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"> 400</span> <span class="comment">/* RX Callback - теперь НЕ вызываем здесь, ждем IDLE */</span></div>
|
||
<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span> </div>
|
||
<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> <span class="comment">/* TX Callback */</span></div>
|
||
<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"> 403</span> <span class="keywordflow">if</span> ((hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>->TxXferCount == 0U) && RS_Is_TX_Busy(hRS) && <span class="comment">// if all bytes are transmited and transmit is active</span></div>
|
||
<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"> 404</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>->gState != HAL_UART_STATE_BUSY_TX) <span class="comment">// also check that receive "REALLY" isnt busy</span></div>
|
||
<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac">RS_UART_TxCpltCallback</a>(hRS);</div>
|
||
<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> </div>
|
||
<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> <span class="comment">/* NOTE: RX Callback больше не вызывается здесь - ждем IDLE для гарантии конца фрейма */</span></div>
|
||
<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"> 408</span> }</div>
|
||
<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"> 409</span> <span class="comment">//----------------ERRORS HANDLER----------------</span></div>
|
||
<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"> 410</span> <span class="keywordflow">else</span></div>
|
||
<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"> 411</span> {</div>
|
||
<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"> 412</span> <span class="keywordflow">if</span> (hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">huart</a>->ErrorCode & HAL_UART_ERROR_ORE)</div>
|
||
<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> {</div>
|
||
<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <a class="code hl_function" href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gaff7c464d7d66399232770bac78b653a4">MB_Diagnostics_CharacterOverrunCnt</a>(); <span class="comment">// <-- Обнаружено переполнение</span></div>
|
||
<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> }</div>
|
||
<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"> 416</span> <span class="comment">//TrackerCnt_Err(hRS->rs_err);</span></div>
|
||
<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"> 417</span> <span class="comment">/* de-init uart transfer */</span></div>
|
||
<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"> 418</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">RS_Abort</a>(hRS, <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">ABORT_RS</a>);</div>
|
||
<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"> 419</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">RS_Handle_Receive_Start</a>(hRS, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>);</div>
|
||
<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"> 420</span> </div>
|
||
<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"> 421</span> <span class="comment">// later, maybe, will be added specific handlers for err </span></div>
|
||
<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> }</div>
|
||
<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"> 423</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#gade69fd26928788dd6f0278fcd15885ff">RS_UART_Handler_EXIT</a>();</div>
|
||
<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"> 424</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> </div>
|
||
<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"> 426</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"> 427</span><span class="comment">/**</span></div>
|
||
<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span><span class="comment"> * @brief Обработчик прерывания TIM.</span></div>
|
||
<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"> 430</span><span class="comment"> * @details Попадание сюда = таймаут и перезапуск RS приема</span></div>
|
||
<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"> 431</span><span class="comment"> * Добавить вызов этой функции в TIMx_IRQHandler() ВМЕСТО HAL_TIM_IRQHandler().</span></div>
|
||
<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"> 432</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00433" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce"> 433</a></span><span class="keywordtype">void</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce">RS_TIM_Handler</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</div>
|
||
<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"> 434</span>{</div>
|
||
<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a> == NULL)</div>
|
||
<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"> 436</span> {</div>
|
||
<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> <span class="keywordflow">return</span>;</div>
|
||
<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span> }</div>
|
||
<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#gab9d308969f924234bc879a93ffb80473">RS_TIM_Handler_ENTER</a>();</div>
|
||
<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span> </div>
|
||
<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> HAL_TIM_IRQHandler(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>);</div>
|
||
<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"> 442</span> </div>
|
||
<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"> 443</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">RS_Abort</a>(hRS, <a class="code hl_enumvalue" href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">ABORT_RS</a>);</div>
|
||
<div class="line"><a id="l00444" name="l00444"></a><span class="lineno"> 444</span> </div>
|
||
<div class="line"><a id="l00445" name="l00445"></a><span class="lineno"> 445</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9">RS_STATUS</a> = RS_TIMEOUT;</div>
|
||
<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"> 446</span> </div>
|
||
<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194">sRS_Mode</a> < <a class="code hl_define" href="group___r_s___t_o_o_l_s.html#ga9560ee688d4bcdd90a47c110be4ecf92">RS_MASTER_MODE_START</a>)</div>
|
||
<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>-><a class="code hl_variable" href="struct_r_s___msg_type_def.html#a277ed439b65aedbf03bd112c073e6a32">MbAddr</a> == hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a01e2c95a23aa3eed1f002e2329a10942">ID</a>) <span class="comment">// ошибка если таймаут по нашему сообщению</span></div>
|
||
<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"> 449</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9">TrackerCnt_Err</a>(hRS->rs_err);</div>
|
||
<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span> </div>
|
||
<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194">sRS_Mode</a> >= <a class="code hl_define" href="group___r_s___t_o_o_l_s.html#ga9560ee688d4bcdd90a47c110be4ecf92">RS_MASTER_MODE_START</a>) </div>
|
||
<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span> { <span class="comment">// Мастер: коллбек и освобождение для нового запроса</span></div>
|
||
<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> RS_Set_Free(hRS);</div>
|
||
<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"> 454</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6e584c7559c702d3382dbb9aa572b71b">pCallback</a>)</div>
|
||
<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"> 455</span> {</div>
|
||
<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"> 456</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6e584c7559c702d3382dbb9aa572b71b">pCallback</a>(hRS, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>); <span class="comment">// обрабатываем ответ</span></div>
|
||
<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"> 457</span> }</div>
|
||
<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> } <span class="keywordflow">else</span> {</div>
|
||
<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> <span class="comment">// Слейв: перезапускаем прием</span></div>
|
||
<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"> 460</span> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">RS_Handle_Receive_Start</a>(hRS, hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">pMessagePtr</a>);</div>
|
||
<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> }</div>
|
||
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span> <a class="code hl_define" href="group___r_s___d_e_b_u_g.html#gaa026e9bf8672373cfe265f96ea0f6061">RS_TIM_Handler_EXIT</a>();</div>
|
||
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"> 464</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span><span class="comment">/**</span></div>
|
||
<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"> 466</span><span class="comment"> * @brief Запуск таймаута приема.</span></div>
|
||
<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span><span class="comment"> * @return RS_RES Статус операции.</span></div>
|
||
<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span><span class="comment"> * @details Запускает таймер для отсчета времени ожидания следующего байта.</span></div>
|
||
<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"> 470</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00471" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8"> 471</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8">RS_Timeout_Start</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</div>
|
||
<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span>{</div>
|
||
<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>)</div>
|
||
<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"> 474</span> {</div>
|
||
<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>->Instance->CNT = 0; <span class="comment">// reset cnt;</span></div>
|
||
<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aa6da72b8ad446f76484783ca8af0e565">sRS_Timeout</a>) <span class="comment">// if timeout setted</span></div>
|
||
<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> {</div>
|
||
<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>->Instance->ARR = hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aa6da72b8ad446f76484783ca8af0e565">sRS_Timeout</a>;</div>
|
||
<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"> 479</span> HAL_TIM_Base_Start_IT(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>);</div>
|
||
<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> RS_Set_RX_Active_Flags(hRS);</div>
|
||
<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> }</div>
|
||
<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> }</div>
|
||
<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <span class="keywordflow">return</span> RS_OK;</div>
|
||
<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span>}<span class="comment"></span></div>
|
||
</div>
|
||
<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span><span class="comment">/**</span></div>
|
||
<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span><span class="comment"> * @brief Остановка таймаута приема.</span></div>
|
||
<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span><span class="comment"> * @return RS_RES Статус операции.</span></div>
|
||
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span><span class="comment"> * @details Останавливает таймер ожидания.</span></div>
|
||
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00491" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd"> 491</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd">RS_Timeout_Stop</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</div>
|
||
<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span>{</div>
|
||
<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>)</div>
|
||
<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> {</div>
|
||
<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="comment">// Останавливаем таймаут</span></div>
|
||
<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aa6da72b8ad446f76484783ca8af0e565">sRS_Timeout</a>) </div>
|
||
<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> HAL_TIM_Base_Stop_IT(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>);</div>
|
||
<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>->Instance->CNT = 0;</div>
|
||
<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> __HAL_TIM_CLEAR_IT(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>, TIM_IT_UPDATE);</div>
|
||
<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> }</div>
|
||
<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="keywordflow">return</span> RS_OK;</div>
|
||
<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span>}<span class="comment"></span></div>
|
||
</div>
|
||
<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span><span class="comment">/**</span></div>
|
||
<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span><span class="comment"> * @brief Обновление (сброс) таймаута приема.</span></div>
|
||
<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span><span class="comment"> * @return RS_RES Статус операции.</span></div>
|
||
<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span><span class="comment"> * @details Сбрасывает счетчик таймера в 0.</span></div>
|
||
<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00509" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521"> 509</a></span><a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521">RS_Timeout_Update</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS)</div>
|
||
<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span>{</div>
|
||
<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> <span class="keywordflow">if</span>(hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>)</div>
|
||
<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> {</div>
|
||
<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> hRS-><a class="code hl_variable" href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">htim</a>->Instance->CNT = 0; <span class="comment">// reset cnt;</span></div>
|
||
<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> }</div>
|
||
<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> <span class="keywordflow">return</span> RS_OK;</div>
|
||
<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> </div>
|
||
<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span><span class="comment">//--------------------CALLBACK/HANDLER FUNCTIONS---------------------</span></div>
|
||
<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span><span class="comment">//-------------------------------------------------------------------</span></div>
|
||
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> </div>
|
||
<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span> </div>
|
||
<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> </div>
|
||
<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span><span class="comment">//-------------------------------------------------------------------</span></div>
|
||
<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span><span class="comment">//--------------WEAK PROTOTYPES FOR PROCESSING MESSAGE---------------</span><span class="comment"></span></div>
|
||
<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span><span class="comment">/** </span></div>
|
||
<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span><span class="comment"> * @brief Пользовательская функция для ответа на запрос по UART.</span></div>
|
||
<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"> 528</span><span class="comment"> * @param RS_msg Указатель на структуру сообщения.</span></div>
|
||
<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span><span class="comment"> * @return RS_RES Статус о результате ответа на комманду.</span></div>
|
||
<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00531" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690"> 531</a></span>__weak <a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690">RS_Response</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg)</div>
|
||
<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span>{</div>
|
||
<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span> <span class="comment">/* Redefine function for user purposes */</span></div>
|
||
<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <span class="keywordflow">return</span> RS_ERR;</div>
|
||
<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span><span class="comment">/** </span></div>
|
||
<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span><span class="comment"> * @brief Пользовательская функция для сбора сообщения в буфер UART.</span></div>
|
||
<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"> 539</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span><span class="comment"> * @param RS_msg Указатель на структуру сообщения.</span></div>
|
||
<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span><span class="comment"> * @param msg_uart_buff Указатель на буффер UART.</span></div>
|
||
<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span><span class="comment"> * @return RS_RES Статус о результате заполнения буфера.</span></div>
|
||
<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00544" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5"> 544</a></span>__weak <a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5">RS_Collect_Message</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg, uint8_t *msg_uart_buff)</div>
|
||
<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span>{</div>
|
||
<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="comment">/* Redefine function for user purposes */</span></div>
|
||
<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="keywordflow">return</span> RS_ERR;</div>
|
||
<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span><span class="comment"></span> </div>
|
||
<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span><span class="comment">/** </span></div>
|
||
<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span><span class="comment"> * @brief Пользовательская функция для парса сообщения из буфера UART.</span></div>
|
||
<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span><span class="comment"> * @param hRS Указатель на хендлер RS.</span></div>
|
||
<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span><span class="comment"> * @param RS_msg Указатель на структуру сообщения.</span></div>
|
||
<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span><span class="comment"> * @param msg_uart_buff Указатель на буффер UART.</span></div>
|
||
<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span><span class="comment"> * @return RS_RES Статус о результате заполнения структуры.</span></div>
|
||
<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span><span class="comment"> */</span></div>
|
||
<div class="foldopen" id="foldopen00557" data-start="{" data-end="}">
|
||
<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5"> 557</a></span>__weak <a class="code hl_enumeration" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a> <a class="code hl_function" href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5">RS_Parse_Message</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hRS, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *RS_msg, uint8_t *msg_uart_buff)</div>
|
||
<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span>{</div>
|
||
<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> <span class="comment">/* Redefine function for user purposes */</span></div>
|
||
<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span> <span class="keywordflow">return</span> RS_ERR;</div>
|
||
<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span>}</div>
|
||
</div>
|
||
<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span><span class="comment">//--------------WEAK PROTOTYPES FOR PROCESSING MESSAGE---------------</span></div>
|
||
<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span><span class="comment">//-------------------------------------------------------------------</span></div>
|
||
<div class="ttc" id="agroup___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s_html_gaff7c464d7d66399232770bac78b653a4"><div class="ttname"><a href="group___m_o_d_b_u_s___d_a_t_a___a_c_c_e_s_s___f_u_n_c_t_i_o_n_s.html#gaff7c464d7d66399232770bac78b653a4">MB_Diagnostics_CharacterOverrunCnt</a></div><div class="ttdeci">void MB_Diagnostics_CharacterOverrunCnt(void)</div><div class="ttdoc">Увеличивает счетчик переполнения символов</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00241">modbus_diag.c:241</a></div></div>
|
||
<div class="ttc" id="agroup___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s_html_ga7d1e9e8bb8f40ce788836da0739f897c"><div class="ttname"><a href="group___m_o_d_b_u_s___m_e_s_s_a_g_e___d_e_f_i_n_e_s.html#ga7d1e9e8bb8f40ce788836da0739f897c">MSG_SIZE_MAX</a></div><div class="ttdeci">#define MSG_SIZE_MAX</div><div class="ttdoc">Size of buffer: max size of whole message.</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00069">modbus_core.h:69</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___d_e_b_u_g_html_ga23de0006aa08984cfeddb6aa5e512fa1"><div class="ttname"><a href="group___r_s___d_e_b_u_g.html#ga23de0006aa08984cfeddb6aa5e512fa1">TrackerCnt_Ok</a></div><div class="ttdeci">#define TrackerCnt_Ok(_cntstruct_)</div><div class="ttdoc">Инкрементировать переменную - успешных событий</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00106">rs_message.h:106</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___d_e_b_u_g_html_ga30a03e8d8912be85a203c829b581f999"><div class="ttname"><a href="group___r_s___d_e_b_u_g.html#ga30a03e8d8912be85a203c829b581f999">printf_rs</a></div><div class="ttdeci">#define printf_rs(...)</div><div class="ttdoc">Printf обычных событий RS/UART/TIM.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00116">rs_message.h:116</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___d_e_b_u_g_html_ga49af29ab3927cad105c1d2b018a767e9"><div class="ttname"><a href="group___r_s___d_e_b_u_g.html#ga49af29ab3927cad105c1d2b018a767e9">TrackerCnt_Err</a></div><div class="ttdeci">#define TrackerCnt_Err(_cntstruct_)</div><div class="ttdoc">Инкрементировать переменную - ошибок</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00108">rs_message.h:108</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___d_e_b_u_g_html_ga830a5ed90667bf50ab8c409dcadb2a39"><div class="ttname"><a href="group___r_s___d_e_b_u_g.html#ga830a5ed90667bf50ab8c409dcadb2a39">printf_rs_err</a></div><div class="ttdeci">#define printf_rs_err(...)</div><div class="ttdoc">Printf ошибок RS/UART/TIM.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00121">rs_message.h:121</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___d_e_b_u_g_html_ga8c401e4d5d440001c1d879984107bb79"><div class="ttname"><a href="group___r_s___d_e_b_u_g.html#ga8c401e4d5d440001c1d879984107bb79">RS_UART_Handler_ENTER</a></div><div class="ttdeci">#define RS_UART_Handler_ENTER()</div><div class="ttdoc">Действия при заходе в прерывания UART.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00136">rs_message.h:136</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___d_e_b_u_g_html_gaa026e9bf8672373cfe265f96ea0f6061"><div class="ttname"><a href="group___r_s___d_e_b_u_g.html#gaa026e9bf8672373cfe265f96ea0f6061">RS_TIM_Handler_EXIT</a></div><div class="ttdeci">#define RS_TIM_Handler_EXIT()</div><div class="ttdoc">Действия при выходе из прерывания таймера</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00131">rs_message.h:131</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___d_e_b_u_g_html_gab9d308969f924234bc879a93ffb80473"><div class="ttname"><a href="group___r_s___d_e_b_u_g.html#gab9d308969f924234bc879a93ffb80473">RS_TIM_Handler_ENTER</a></div><div class="ttdeci">#define RS_TIM_Handler_ENTER()</div><div class="ttdoc">Действия при заходе в прерывания таймера</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00127">rs_message.h:127</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___d_e_b_u_g_html_gade69fd26928788dd6f0278fcd15885ff"><div class="ttname"><a href="group___r_s___d_e_b_u_g.html#gade69fd26928788dd6f0278fcd15885ff">RS_UART_Handler_EXIT</a></div><div class="ttdeci">#define RS_UART_Handler_EXIT()</div><div class="ttdoc">Действия при выходе из прерывания UART.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00140">rs_message.h:140</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga1b59697f4b7fad81f9d5fd9fffebac2f"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga1b59697f4b7fad81f9d5fd9fffebac2f">RS_Receive_IT</a></div><div class="ttdeci">RS_StatusTypeDef RS_Receive_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)</div><div class="ttdoc">Начать прием по прерываниям.</div><div class="ttdef"><b>Definition</b> <a href="#l00043">rs_message.c:43</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga1cd98c55f6f359e3ab93d0f9cf912ab5"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga1cd98c55f6f359e3ab93d0f9cf912ab5">RS_Collect_Message</a></div><div class="ttdeci">__weak RS_StatusTypeDef RS_Collect_Message(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff)</div><div class="ttdoc">Пользовательская функция для сбора сообщения в буфер UART.</div><div class="ttdef"><b>Definition</b> <a href="#l00544">rs_message.c:544</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga1de0a597d043b64d0a19bc393cc1b3fd"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga1de0a597d043b64d0a19bc393cc1b3fd">RS_Timeout_Stop</a></div><div class="ttdeci">RS_StatusTypeDef RS_Timeout_Stop(RS_HandleTypeDef *hRS)</div><div class="ttdoc">Остановка таймаута приема.</div><div class="ttdef"><b>Definition</b> <a href="#l00491">rs_message.c:491</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga1ffe808b3640f253b1783295d6990962"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga1ffe808b3640f253b1783295d6990962">RS_Abort</a></div><div class="ttdeci">RS_StatusTypeDef RS_Abort(RS_HandleTypeDef *hRS, RS_AbortTypeDef AbortMode)</div><div class="ttdoc">Отменить прием/передачу RS/UART.</div><div class="ttdef"><b>Definition</b> <a href="#l00193">rs_message.c:193</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga2d356b2a0b4af43460bb2cacb81779ce"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga2d356b2a0b4af43460bb2cacb81779ce">RS_TIM_Handler</a></div><div class="ttdeci">void RS_TIM_Handler(RS_HandleTypeDef *hRS)</div><div class="ttdoc">Обработчик прерывания TIM.</div><div class="ttdef"><b>Definition</b> <a href="#l00433">rs_message.c:433</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga2e69a97a8b6e0b5855116d88c0e17cb9"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga2e69a97a8b6e0b5855116d88c0e17cb9">RS_Transmit_IT</a></div><div class="ttdeci">RS_StatusTypeDef RS_Transmit_IT(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)</div><div class="ttdoc">Начать передачу по прерываниям.</div><div class="ttdef"><b>Definition</b> <a href="#l00091">rs_message.c:91</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga330f6cfcdaab1f239054c0d91be3c5bc"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga330f6cfcdaab1f239054c0d91be3c5bc">RS_Handle_Transmit_Start</a></div><div class="ttdeci">RS_StatusTypeDef RS_Handle_Transmit_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)</div><div class="ttdoc">Обработчик для начала передачи.</div><div class="ttdef"><b>Definition</b> <a href="#l00269">rs_message.c:269</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga3500b3fa91d05a94cf8da5cc5ce338f5"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga3500b3fa91d05a94cf8da5cc5ce338f5">RS_Parse_Message</a></div><div class="ttdeci">__weak RS_StatusTypeDef RS_Parse_Message(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg, uint8_t *msg_uart_buff)</div><div class="ttdoc">Пользовательская функция для парса сообщения из буфера UART.</div><div class="ttdef"><b>Definition</b> <a href="#l00557">rs_message.c:557</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga7180b913ba795c07637680982d7f45ac"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga7180b913ba795c07637680982d7f45ac">RS_UART_TxCpltCallback</a></div><div class="ttdeci">RS_StatusTypeDef RS_UART_TxCpltCallback(RS_HandleTypeDef *hRS)</div><div class="ttdoc">UART TX Callback: коллбек после окончания передачи.</div><div class="ttdef"><b>Definition</b> <a href="#l00300">rs_message.c:300</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga727154b368397b4796aa892de12a2289"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a></div><div class="ttdeci">RS_StatusTypeDef</div><div class="ttdoc">Enums for respond CMD about RS status.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00163">rs_message.h:164</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga8b7bcc84cb8192a58fe87b662fbd9690"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga8b7bcc84cb8192a58fe87b662fbd9690">RS_Response</a></div><div class="ttdeci">__weak RS_StatusTypeDef RS_Response(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)</div><div class="ttdoc">Пользовательская функция для ответа на запрос по UART.</div><div class="ttdef"><b>Definition</b> <a href="#l00531">rs_message.c:531</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ga9560ee688d4bcdd90a47c110be4ecf92"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ga9560ee688d4bcdd90a47c110be4ecf92">RS_MASTER_MODE_START</a></div><div class="ttdeci">#define RS_MASTER_MODE_START</div><div class="ttdoc">Начало режимов мастера (до него - режим слейв)</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00181">rs_message.h:181</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gaa261bb0d37e7f18f04fb4353aa0f5c45"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gaa261bb0d37e7f18f04fb4353aa0f5c45">RS_Init</a></div><div class="ttdeci">RS_StatusTypeDef RS_Init(RS_HandleTypeDef *hRS, UART_HandleTypeDef *huart, TIM_HandleTypeDef *htim, uint8_t *pRS_BufferPtr)</div><div class="ttdoc">Инициалазация структуры RS_HandleTypeDef.</div><div class="ttdef"><b>Definition</b> <a href="#l00156">rs_message.c:156</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gab27567456df0329130c7fe4fc43c6ee1"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gab27567456df0329130c7fe4fc43c6ee1">RS_UART_Handler</a></div><div class="ttdeci">void RS_UART_Handler(RS_HandleTypeDef *hRS)</div><div class="ttdoc">Обработчик прерывания UART.</div><div class="ttdef"><b>Definition</b> <a href="#l00320">rs_message.c:320</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gab43a3b93c85adee5e3c561922d7ea2ef"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gab43a3b93c85adee5e3c561922d7ea2ef">RS_Handle_Receive_Start</a></div><div class="ttdeci">RS_StatusTypeDef RS_Handle_Receive_Start(RS_HandleTypeDef *hRS, RS_MsgTypeDef *RS_msg)</div><div class="ttdoc">Обработчик для начала приема.</div><div class="ttdef"><b>Definition</b> <a href="#l00237">rs_message.c:237</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gab7c55bd8bb15b0eecc8c525019d4a1cc"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gab7c55bd8bb15b0eecc8c525019d4a1cc">RS_AbortTypeDef</a></div><div class="ttdeci">RS_AbortTypeDef</div><div class="ttdoc">Enums for Abort modes.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00192">rs_message.h:193</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gac3a7bbc060a4250c160d51f0a0ca6cf8"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gac3a7bbc060a4250c160d51f0a0ca6cf8">RS_Timeout_Start</a></div><div class="ttdeci">RS_StatusTypeDef RS_Timeout_Start(RS_HandleTypeDef *hRS)</div><div class="ttdoc">Запуск таймаута приема.</div><div class="ttdef"><b>Definition</b> <a href="#l00471">rs_message.c:471</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gad3d2e8fb9c2879e1ddb967cff6124521"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gad3d2e8fb9c2879e1ddb967cff6124521">RS_Timeout_Update</a></div><div class="ttdeci">RS_StatusTypeDef RS_Timeout_Update(RS_HandleTypeDef *hRS)</div><div class="ttdoc">Обновление (сброс) таймаута приема.</div><div class="ttdef"><b>Definition</b> <a href="#l00509">rs_message.c:509</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gae0f359f0af89adf45bac275a3f5ee34d"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gae0f359f0af89adf45bac275a3f5ee34d">RS_EnableReceive</a></div><div class="ttdeci">#define RS_EnableReceive()</div><div class="ttdoc">Функция изменения направления передачи на ПРИЕМ для RS-485.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00150">rs_message.h:150</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gaeddade966945ed376bb152151b493d6f"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gaeddade966945ed376bb152151b493d6f">RS_EnableTransmit</a></div><div class="ttdeci">#define RS_EnableTransmit()</div><div class="ttdoc">Функция изменения направления передачи на ПЕРЕДАЧУ для RS-485.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00153">rs_message.h:153</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gga13e1c056947b06c7dc29b90d22f683a7a15953c59b7f547b318edab14070873c5"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7a15953c59b7f547b318edab14070873c5">RS_MASTER_REQUEST</a></div><div class="ttdeci">@ RS_MASTER_REQUEST</div><div class="ttdoc">Мастер с ручным запросом</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00187">rs_message.h:187</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gga13e1c056947b06c7dc29b90d22f683a7ad118e897a520ddc9c77a905684079550"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7ad118e897a520ddc9c77a905684079550">RS_RESERVED</a></div><div class="ttdeci">@ RS_RESERVED</div><div class="ttdoc">резерв</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00186">rs_message.h:186</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_gga13e1c056947b06c7dc29b90d22f683a7aee8cfd8ce9edacc055a195ed454a49dc"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#gga13e1c056947b06c7dc29b90d22f683a7aee8cfd8ce9edacc055a195ed454a49dc">RS_SLAVE_ALWAYS_WAIT</a></div><div class="ttdeci">@ RS_SLAVE_ALWAYS_WAIT</div><div class="ttdoc">Слейв в постоянном ожидании</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00185">rs_message.h:185</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca5699efe0ab3cdfd4f6ef175ecb809306">ABORT_RS</a></div><div class="ttdeci">@ ABORT_RS</div><div class="ttdoc">Отменить любую работу UART в целом</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00197">rs_message.h:197</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ggab7c55bd8bb15b0eecc8c525019d4a1cca95c6ce0fee466ba98e43213d001ecc16"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1cca95c6ce0fee466ba98e43213d001ecc16">ABORT_TX</a></div><div class="ttdeci">@ ABORT_TX</div><div class="ttdoc">Отменить передачу</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00194">rs_message.h:194</a></div></div>
|
||
<div class="ttc" id="agroup___r_s___t_o_o_l_s_html_ggab7c55bd8bb15b0eecc8c525019d4a1ccaf0519a0ddda6fff97dd61ce0f3320df9"><div class="ttname"><a href="group___r_s___t_o_o_l_s.html#ggab7c55bd8bb15b0eecc8c525019d4a1ccaf0519a0ddda6fff97dd61ce0f3320df9">ABORT_RX</a></div><div class="ttdeci">@ ABORT_RX</div><div class="ttdoc">Отменить прием</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00195">rs_message.h:195</a></div></div>
|
||
<div class="ttc" id="amodbus__diag_8h_html"><div class="ttname"><a href="modbus__diag_8h.html">modbus_diag.h</a></div><div class="ttdoc">Диагностика устройства Modbus.</div></div>
|
||
<div class="ttc" id="ars__message_8h_html"><div class="ttname"><a href="rs__message_8h.html">rs_message.h</a></div><div class="ttdoc">Библиотека обмена сообщениями по RS-интерфейсу</div></div>
|
||
<div class="ttc" id="astruct_r_s___flags_type_def_html_a1513dc1265334c20a82b55b1090024c8"><div class="ttname"><a href="struct_r_s___flags_type_def.html#a1513dc1265334c20a82b55b1090024c8">RS_FlagsTypeDef::RX_Continue</a></div><div class="ttdeci">unsigned RX_Continue</div><div class="ttdoc">0 - Продолжить принимать, 0 - Начать прием сначала</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00214">rs_message.h:214</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___flags_type_def_html_adfc04070a08e90f514072fff20efc744"><div class="ttname"><a href="struct_r_s___flags_type_def.html#adfc04070a08e90f514072fff20efc744">RS_FlagsTypeDef::RX_Ongoing</a></div><div class="ttdeci">unsigned RX_Ongoing</div><div class="ttdoc">1 - Прием данных в активном состоянии, 0 - Ожидаем начало приема данных</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00205">rs_message.h:205</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html"><div class="ttname"><a href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a></div><div class="ttdoc">Handle for RS communication.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00227">rs_message.h:228</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_a01e2c95a23aa3eed1f002e2329a10942"><div class="ttname"><a href="struct_r_s___handle_type_def.html#a01e2c95a23aa3eed1f002e2329a10942">RS_HandleTypeDef::ID</a></div><div class="ttdeci">uint8_t ID</div><div class="ttdoc">ID хендла</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00230">rs_message.h:230</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_a1bc8d1ccb57c20cad4f70a04f751a67a"><div class="ttname"><a href="struct_r_s___handle_type_def.html#a1bc8d1ccb57c20cad4f70a04f751a67a">RS_HandleTypeDef::pBufferPtr</a></div><div class="ttdeci">uint8_t * pBufferPtr</div><div class="ttdoc">Указатеь на буфер UART.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00232">rs_message.h:232</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_a3b377cb0eabf384a7e715fb030218290"><div class="ttname"><a href="struct_r_s___handle_type_def.html#a3b377cb0eabf384a7e715fb030218290">RS_HandleTypeDef::lastPacketTick</a></div><div class="ttdeci">uint32_t lastPacketTick</div><div class="ttdoc">Время последнего принятого пакета</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00246">rs_message.h:246</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_a495a29011412451e53459f9e1513814d"><div class="ttname"><a href="struct_r_s___handle_type_def.html#a495a29011412451e53459f9e1513814d">RS_HandleTypeDef::RS_Message_Size</a></div><div class="ttdeci">int32_t RS_Message_Size</div><div class="ttdoc">size of whole message, not only data</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00233">rs_message.h:233</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_a6a3f47a1a3476d6e9df997e1dc9da8c4"><div class="ttname"><a href="struct_r_s___handle_type_def.html#a6a3f47a1a3476d6e9df997e1dc9da8c4">RS_HandleTypeDef::pMessagePtr</a></div><div class="ttdeci">RS_MsgTypeDef * pMessagePtr</div><div class="ttdoc">Указатель на структуру протокола</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00231">rs_message.h:231</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_a6e584c7559c702d3382dbb9aa572b71b"><div class="ttname"><a href="struct_r_s___handle_type_def.html#a6e584c7559c702d3382dbb9aa572b71b">RS_HandleTypeDef::pCallback</a></div><div class="ttdeci">void(* pCallback)(void *, void *)</div><div class="ttdoc">Указатель на коллбек: принят ответ в режиме мастер</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00240">rs_message.h:240</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_a6fa98c2955d01e07dc59f73d072bb37e"><div class="ttname"><a href="struct_r_s___handle_type_def.html#a6fa98c2955d01e07dc59f73d072bb37e">RS_HandleTypeDef::f</a></div><div class="ttdeci">RS_FlagsTypeDef f</div><div class="ttdoc">Флаги для контроля приема/передачи</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00243">rs_message.h:243</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_a82f0ad79cd234cd26076bfcfbc5c1194"><div class="ttname"><a href="struct_r_s___handle_type_def.html#a82f0ad79cd234cd26076bfcfbc5c1194">RS_HandleTypeDef::sRS_Mode</a></div><div class="ttdeci">RS_ModeTypeDef sRS_Mode</div><div class="ttdoc">Настройка: слейв/мастер RS_ModeTypeDef.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00238">rs_message.h:238</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_a8bbcb263ae7a61790b559bcb55cd9aa9"><div class="ttname"><a href="struct_r_s___handle_type_def.html#a8bbcb263ae7a61790b559bcb55cd9aa9">RS_HandleTypeDef::RS_STATUS</a></div><div class="ttdeci">RS_StatusTypeDef RS_STATUS</div><div class="ttdoc">Статус RS.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00247">rs_message.h:247</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_aa6da72b8ad446f76484783ca8af0e565"><div class="ttname"><a href="struct_r_s___handle_type_def.html#aa6da72b8ad446f76484783ca8af0e565">RS_HandleTypeDef::sRS_Timeout</a></div><div class="ttdeci">uint16_t sRS_Timeout</div><div class="ttdoc">Настройка: Таймаут в тиках таймера</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00239">rs_message.h:239</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_ade93e3a680f5fbc5275f58e20227198b"><div class="ttname"><a href="struct_r_s___handle_type_def.html#ade93e3a680f5fbc5275f58e20227198b">RS_HandleTypeDef::huart</a></div><div class="ttdeci">UART_HandleTypeDef * huart</div><div class="ttdoc">Хендл UART.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00236">rs_message.h:236</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___handle_type_def_html_aef8875f7628f280ed88f74eb762e0d99"><div class="ttname"><a href="struct_r_s___handle_type_def.html#aef8875f7628f280ed88f74eb762e0d99">RS_HandleTypeDef::htim</a></div><div class="ttdeci">TIM_HandleTypeDef * htim</div><div class="ttdoc">Хендл TIM.</div><div class="ttdef"><b>Definition</b> <a href="rs__message_8h_source.html#l00237">rs_message.h:237</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___msg_type_def_html"><div class="ttname"><a href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a></div><div class="ttdoc">Structure for modbus messsage.</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00176">modbus_core.h:177</a></div></div>
|
||
<div class="ttc" id="astruct_r_s___msg_type_def_html_a277ed439b65aedbf03bd112c073e6a32"><div class="ttname"><a href="struct_r_s___msg_type_def.html#a277ed439b65aedbf03bd112c073e6a32">RS_MsgTypeDef::MbAddr</a></div><div class="ttdeci">uint8_t MbAddr</div><div class="ttdoc">Modbus Slave Address.</div><div class="ttdef"><b>Definition</b> <a href="modbus__core_8h_source.html#l00184">modbus_core.h:184</a></div></div>
|
||
</div><!-- fragment --></div><!-- contents -->
|
||
</div><!-- doc-content -->
|
||
</div><!-- container -->
|
||
<!-- start footer part -->
|
||
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
|
||
<ul>
|
||
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="rs__message_8c.html">rs_message.c</a></li>
|
||
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
|
||
</ul>
|
||
</div>
|
||
</body>
|
||
</html>
|