Files
UKSI_TEST/AllLibs/Modbus/Doc/html/modbus__diag_8h_source.html
2025-12-16 17:57:59 +03:00

271 lines
42 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!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/Inc/modbus_diag.h 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">&#160;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('modbus__diag_8h_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">modbus_diag.h</div></div>
</div><!--header-->
<div class="contents">
<a href="modbus__diag_8h.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 modbus_diag.h</span></div>
<div class="line"><a id="l00004" name="l00004"></a><span class="lineno"> 4</span><span class="comment">* @brief Диагностика устройства Modbus</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">@addtogroup MODBUS_DIAG Diagnostics Tools</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">@ingroup MODBUS_INTERNAL</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">@brief Функции для работы с диагностикой</span></div>
<div class="line"><a id="l00009" name="l00009"></a><span class="lineno"> 9</span><span class="comment">*******************************************************************************</span></div>
<div class="line"><a id="l00010" name="l00010"></a><span class="lineno"> 10</span><span class="comment">* @details</span></div>
<div class="line"><a id="l00011" name="l00011"></a><span class="lineno"> 11</span><span class="comment">Модуль реализации Diagnostics (Serial Line only) (0x08):</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">- Возможность выставить/сбросить любой бит в диагностическом регистре</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">- Управление режимами работы</span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">******************************************************************************/</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="preprocessor">#ifndef __MODBUS_DIAG_H_</span></div>
<div class="line"><a id="l00018" name="l00018"></a><span class="lineno"> 18</span><span class="preprocessor">#define __MODBUS_DIAG_H_ </span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="preprocessor">#include &quot;<a class="code" href="modbus__core_8h.html">modbus_core.h</a>&quot;</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">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">/////////////////---DEVICE DIAGNOSTICS DEFINES---////////////////////</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"></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="comment"> * @addtogroup MODBUS_DIAG</span></div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> */</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span> <span class="comment"></span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">/** @brief Режимы работы устройства */</span></div>
<div class="foldopen" id="foldopen00030" data-start="{" data-end="};">
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"><a class="line" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a"> 30</a></span><span class="keyword">typedef</span> <span class="keyword">enum</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span>{</div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span> MODBUS_NORMAL_MODE = 0,</div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span> MODBUS_LISTEN_ONLY_MODE = 1</div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span>} <a class="code hl_enumeration" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a">MB_DeviceModeTypeDef</a>;</div>
</div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span> </div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"></span> </div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment">/** @brief Структура со диагностической информацией устройства модбас */</span></div>
<div class="foldopen" id="foldopen00038" data-start="{" data-end="};">
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html"> 38</a></span><span class="keyword">typedef</span> <span class="keyword">struct</span></div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span>{</div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#a9bbda0c24217f018af56f7bcb46515b1"> 40</a></span> uint16_t <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#a9bbda0c24217f018af56f7bcb46515b1">DiagnosticRegister</a>; <span class="comment">///&lt; Регистр диагностики. 0 бит - overrun. Остальное заполняется пользователем</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#af26e2a0b62c5f2926db63e2125bddc3a"> 41</a></span> <a class="code hl_enumeration" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a">MB_DeviceModeTypeDef</a> <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#af26e2a0b62c5f2926db63e2125bddc3a">DeviceMode</a>;<span class="comment">///&lt; Режим устройства - NORMAL/LISTEN_ONLY</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span> <span class="keyword">struct</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span> {</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#a0630515f367a8efd8a17a6335e073a59"> 44</a></span> uint16_t <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#a0630515f367a8efd8a17a6335e073a59">BusMessage</a>; <span class="comment">///&lt; Все принятые фреймы modbus на линии (с всех адресов)</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#aed6ee3bf2286f07a709e885b88bd4439"> 45</a></span> uint16_t <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#aed6ee3bf2286f07a709e885b88bd4439">BusCommunicationErr</a>; <span class="comment">///&lt; Ошибки при приеме фрейма modbus</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#a95433ac4dbdb75804b1cc04b736b9791"> 46</a></span> uint16_t <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#a95433ac4dbdb75804b1cc04b736b9791">BusExceptionErr</a>; <span class="comment">///&lt; Ошибки при обработке фрейма modbus</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#a57b66f80d2b787eb08e73a43d5550efa"> 47</a></span> uint16_t <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#a57b66f80d2b787eb08e73a43d5550efa">SlaveMessage</a>; <span class="comment">///&lt; Принятые сообщения (только запросы на адрес данного устройства)</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#ad2f014e8e289ad4241a53bc1ad83f411"> 48</a></span> uint16_t <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#ad2f014e8e289ad4241a53bc1ad83f411">SlaveNoResponse</a>; <span class="comment">///&lt; Счетчик сколько мы раз не ответили на запрос </span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#a944999cfdaffab608a70b02e1421dd75"> 49</a></span> uint16_t <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#a944999cfdaffab608a70b02e1421dd75">SlaveNAK</a>; <span class="comment">///&lt; Счетчик аномальной ошибки при обработке фрейма</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#a16f3410ce798eb9693e849de1c5d5556"> 50</a></span> uint16_t <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#a16f3410ce798eb9693e849de1c5d5556">SlaveBusy</a>; <span class="comment">///&lt; Счетчик принятых запросов когда устройство занято. Здесь не работает: из-за архитектуры отследить невозможно</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"><a class="line" href="struct_m_b___diagnostics_info_type_def.html#a6d9ae4feaf8f1e25b4a10589b417da4e"> 51</a></span> uint16_t <a class="code hl_variable" href="struct_m_b___diagnostics_info_type_def.html#a6d9ae4feaf8f1e25b4a10589b417da4e">BusCharacterOverrun</a>; <span class="comment">///&lt; Overrun Error</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span> } Counters;</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span>} <a class="code hl_struct" href="struct_m_b___diagnostics_info_type_def.html">MB_DiagnosticsInfoTypeDef</a>;</div>
</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span> </div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="keyword">extern</span> <a class="code hl_struct" href="struct_m_b___diagnostics_info_type_def.html">MB_DiagnosticsInfoTypeDef</a> <a class="code hl_variable" href="group___m_o_d_b_u_s___d_i_a_g.html#ga4ba6111ac80e342396f9703239323936">MB_DIAG</a>;</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="comment"></span> </div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="comment">/////////////////---DEVICE DIAGNOSTICS DEFINES---////////////////////</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="comment"></span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="comment">/////////////////////////////////////////////////////////////////////</span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment">/////////////////////////---FUNCTIONS---/////////////////////////////</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">/* Инициализация диагностических счетчиков */</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="keywordtype">void</span> <a class="code hl_function" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9b61a6d4139bac318868e93f03cd82c7">MB_DiagnosticsInit</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"></span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment">/** MODBUS_DIAG</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"> * @} </span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"> */</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span> </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> </div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span> </div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span> </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> </div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="comment"></span> </div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="comment">/** </span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment">* @addtogroup MODBUS_DATA_ACCESS_FUNCTIONS</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment">@{</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment">*/</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><span class="comment">/* Выставить бит в регистре диагностике */</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="keywordtype">int</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#gab1237f28e2db2cd2e8a93b31cd9a61be">MB_Diagnostics_WriteBit</a>(<span class="keywordtype">int</span> bit_num, <span class="keywordtype">int</span> bit_state);</div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment">/*ь Прочитать состояние бита диагностического регистра */</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="keywordtype">int</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#ga5588ddb15ee2580e7659701e5e671e8f">MB_Diagnostics_GetBit</a>(<span class="keywordtype">int</span> bit_num);</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><a class="code hl_enumeration" href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a">MB_DeviceModeTypeDef</a> <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#gae7b613f24e9e3d9d95a789c404a3a485">MB_GetDeviceMode</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> </div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment">/* Функции для обновления счетчиков диагностики */</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="keywordtype">void</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#gae379458fa9cea50d5e313a68e716cb83">MB_Diagnostics_BusMessageCnt</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="keywordtype">void</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#ga10f9e4dd9f3dda4bb0f66c323d6b29d7">MB_Diagnostics_CommunicationErrorCnt</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="keywordtype">void</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#ga82e0bf0c4452c25bf3f05a20abb7cc74">MB_Diagnostics_ExceptionErrorCnt</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="keywordtype">void</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="keywordtype">void</span>);</div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="keywordtype">void</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#ga22a48a04ef64f74b5974c4fdb1445936">MB_Diagnostics_SlaveMessageCnt</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="keywordtype">void</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#gabf80c0e24a0ed3736338218c003d001d">MB_Diagnostics_SlaveNoResponseCnt</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="keywordtype">void</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#ga2585ebac184f7fa56059c81419c614b9">MB_Diagnostics_SlaveNAKCnt</a>(<span class="keywordtype">void</span>);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="keywordtype">void</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#ga4baad1102ba3f09cf3cc121b8d548ddb">MB_Diagnostics_SlaveBusyCnt</a>(<span class="keywordtype">void</span>);<span class="comment"></span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment">/** MODBUS_CMD_PROCESS_FUNCTIONS</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"> * @} </span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> */</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"></span> </div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment">/** </span></div>
<div class="line"><a id="l00103" name="l00103"></a><span class="lineno"> 103</span><span class="comment"> * @addtogroup MODBUS_CMD_PROCESS_FUNCTIONS</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment"> */</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment">/* Обработка команды диагностики (0x08) */</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span>uint8_t <a class="code hl_function" href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6bbfc53b20b4698a08d79851b5db65f0">MB_Process_Diagnostics</a>(<a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg);</div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"></span> </div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment">/** MODBUS_CMD_PROCESS_FUNCTIONS</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> * @} </span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"> */</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span> </div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span> </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><span class="comment"></span> </div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment">/////////////////////////---FUNCTIONS---/////////////////////////////</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span> </div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="preprocessor">#endif </span><span class="comment">//__MODBUS_DIAG_H_</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"></span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment">/** MODBUS_DIAG</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"> * @} </span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment"> */</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span> </div>
<div class="ttc" id="agroup___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s_html_ga6bbfc53b20b4698a08d79851b5db65f0"><div class="ttname"><a href="group___m_o_d_b_u_s___c_m_d___p_r_o_c_e_s_s___f_u_n_c_t_i_o_n_s.html#ga6bbfc53b20b4698a08d79851b5db65f0">MB_Process_Diagnostics</a></div><div class="ttdeci">uint8_t MB_Process_Diagnostics(RS_MsgTypeDef *modbus_msg)</div><div class="ttdoc">Обработать функцию Diagnostics (Serial Line only) (0x08)</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00075">modbus_diag.c:75</a></div></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_ga10f9e4dd9f3dda4bb0f66c323d6b29d7"><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#ga10f9e4dd9f3dda4bb0f66c323d6b29d7">MB_Diagnostics_CommunicationErrorCnt</a></div><div class="ttdeci">void MB_Diagnostics_CommunicationErrorCnt(void)</div><div class="ttdoc">Увеличивает счетчик ошибок связи</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00223">modbus_diag.c:223</a></div></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_ga22a48a04ef64f74b5974c4fdb1445936"><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#ga22a48a04ef64f74b5974c4fdb1445936">MB_Diagnostics_SlaveMessageCnt</a></div><div class="ttdeci">void MB_Diagnostics_SlaveMessageCnt(void)</div><div class="ttdoc">Увеличивает счетчик отсутствия ответов</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00254">modbus_diag.c:254</a></div></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_ga2585ebac184f7fa56059c81419c614b9"><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#ga2585ebac184f7fa56059c81419c614b9">MB_Diagnostics_SlaveNAKCnt</a></div><div class="ttdeci">void MB_Diagnostics_SlaveNAKCnt(void)</div><div class="ttdoc">Увеличивает счетчик NAK ответов</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00272">modbus_diag.c:272</a></div></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_ga4baad1102ba3f09cf3cc121b8d548ddb"><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#ga4baad1102ba3f09cf3cc121b8d548ddb">MB_Diagnostics_SlaveBusyCnt</a></div><div class="ttdeci">void MB_Diagnostics_SlaveBusyCnt(void)</div><div class="ttdoc">Увеличивает счетчик занятости устройства</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00281">modbus_diag.c:281</a></div></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_ga5588ddb15ee2580e7659701e5e671e8f"><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#ga5588ddb15ee2580e7659701e5e671e8f">MB_Diagnostics_GetBit</a></div><div class="ttdeci">int MB_Diagnostics_GetBit(int bit_num)</div><div class="ttdoc">Прочитать состояние бита диагностического регистра</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00062">modbus_diag.c:62</a></div></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_ga82e0bf0c4452c25bf3f05a20abb7cc74"><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#ga82e0bf0c4452c25bf3f05a20abb7cc74">MB_Diagnostics_ExceptionErrorCnt</a></div><div class="ttdeci">void MB_Diagnostics_ExceptionErrorCnt(void)</div><div class="ttdoc">Увеличивает счетчик исключений</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00232">modbus_diag.c:232</a></div></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_gab1237f28e2db2cd2e8a93b31cd9a61be"><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#gab1237f28e2db2cd2e8a93b31cd9a61be">MB_Diagnostics_WriteBit</a></div><div class="ttdeci">int MB_Diagnostics_WriteBit(int bit_num, int bit_state)</div><div class="ttdoc">Выставить бит в регистре диагностике</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00045">modbus_diag.c:45</a></div></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_gabf80c0e24a0ed3736338218c003d001d"><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#gabf80c0e24a0ed3736338218c003d001d">MB_Diagnostics_SlaveNoResponseCnt</a></div><div class="ttdeci">void MB_Diagnostics_SlaveNoResponseCnt(void)</div><div class="ttdoc">Увеличивает счетчик отсутствия ответов</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00263">modbus_diag.c:263</a></div></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_gae379458fa9cea50d5e313a68e716cb83"><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#gae379458fa9cea50d5e313a68e716cb83">MB_Diagnostics_BusMessageCnt</a></div><div class="ttdeci">void MB_Diagnostics_BusMessageCnt(void)</div><div class="ttdoc">Увеличивает счетчик сообщений на шине</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00215">modbus_diag.c:215</a></div></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_gae7b613f24e9e3d9d95a789c404a3a485"><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#gae7b613f24e9e3d9d95a789c404a3a485">MB_GetDeviceMode</a></div><div class="ttdeci">MB_DeviceModeTypeDef MB_GetDeviceMode(void)</div><div class="ttdoc">Получение текущего режима устройства</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00291">modbus_diag.c:291</a></div></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___d_i_a_g_html_ga4ba6111ac80e342396f9703239323936"><div class="ttname"><a href="group___m_o_d_b_u_s___d_i_a_g.html#ga4ba6111ac80e342396f9703239323936">MB_DIAG</a></div><div class="ttdeci">MB_DiagnosticsInfoTypeDef MB_DIAG</div><div class="ttdoc">Глобальная структура диагностики</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00017">modbus_diag.c:17</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___d_i_a_g_html_ga9b61a6d4139bac318868e93f03cd82c7"><div class="ttname"><a href="group___m_o_d_b_u_s___d_i_a_g.html#ga9b61a6d4139bac318868e93f03cd82c7">MB_DiagnosticsInit</a></div><div class="ttdeci">void MB_DiagnosticsInit(void)</div><div class="ttdoc">Инициализация диагностических счетчиков</div><div class="ttdef"><b>Definition</b> <a href="modbus__diag_8c_source.html#l00022">modbus_diag.c:22</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___d_i_a_g_html_ga9d139168bb88bfa1ba1597eeff9ebf6a"><div class="ttname"><a href="group___m_o_d_b_u_s___d_i_a_g.html#ga9d139168bb88bfa1ba1597eeff9ebf6a">MB_DeviceModeTypeDef</a></div><div class="ttdeci">MB_DeviceModeTypeDef</div><div class="ttdoc">Режимы работы устройства</div><div class="ttdef"><b>Definition</b> <a href="#l00030">modbus_diag.h:31</a></div></div>
<div class="ttc" id="amodbus__core_8h_html"><div class="ttname"><a href="modbus__core_8h.html">modbus_core.h</a></div><div class="ttdoc">Ядро Modbus протокола - определения и структуры</div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html">MB_DiagnosticsInfoTypeDef</a></div><div class="ttdoc">Структура со диагностической информацией устройства модбас</div><div class="ttdef"><b>Definition</b> <a href="#l00038">modbus_diag.h:39</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_a0630515f367a8efd8a17a6335e073a59"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#a0630515f367a8efd8a17a6335e073a59">MB_DiagnosticsInfoTypeDef::BusMessage</a></div><div class="ttdeci">uint16_t BusMessage</div><div class="ttdoc">Все принятые фреймы modbus на линии (с всех адресов)</div><div class="ttdef"><b>Definition</b> <a href="#l00044">modbus_diag.h:44</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_a16f3410ce798eb9693e849de1c5d5556"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#a16f3410ce798eb9693e849de1c5d5556">MB_DiagnosticsInfoTypeDef::SlaveBusy</a></div><div class="ttdeci">uint16_t SlaveBusy</div><div class="ttdoc">Счетчик принятых запросов когда устройство занято. Здесь не работает: из-за архитектуры отследить нев...</div><div class="ttdef"><b>Definition</b> <a href="#l00050">modbus_diag.h:50</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_a57b66f80d2b787eb08e73a43d5550efa"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#a57b66f80d2b787eb08e73a43d5550efa">MB_DiagnosticsInfoTypeDef::SlaveMessage</a></div><div class="ttdeci">uint16_t SlaveMessage</div><div class="ttdoc">Принятые сообщения (только запросы на адрес данного устройства)</div><div class="ttdef"><b>Definition</b> <a href="#l00047">modbus_diag.h:47</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_a6d9ae4feaf8f1e25b4a10589b417da4e"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#a6d9ae4feaf8f1e25b4a10589b417da4e">MB_DiagnosticsInfoTypeDef::BusCharacterOverrun</a></div><div class="ttdeci">uint16_t BusCharacterOverrun</div><div class="ttdoc">Overrun Error.</div><div class="ttdef"><b>Definition</b> <a href="#l00051">modbus_diag.h:51</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_a944999cfdaffab608a70b02e1421dd75"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#a944999cfdaffab608a70b02e1421dd75">MB_DiagnosticsInfoTypeDef::SlaveNAK</a></div><div class="ttdeci">uint16_t SlaveNAK</div><div class="ttdoc">Счетчик аномальной ошибки при обработке фрейма</div><div class="ttdef"><b>Definition</b> <a href="#l00049">modbus_diag.h:49</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_a95433ac4dbdb75804b1cc04b736b9791"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#a95433ac4dbdb75804b1cc04b736b9791">MB_DiagnosticsInfoTypeDef::BusExceptionErr</a></div><div class="ttdeci">uint16_t BusExceptionErr</div><div class="ttdoc">Ошибки при обработке фрейма modbus.</div><div class="ttdef"><b>Definition</b> <a href="#l00046">modbus_diag.h:46</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_a9bbda0c24217f018af56f7bcb46515b1"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#a9bbda0c24217f018af56f7bcb46515b1">MB_DiagnosticsInfoTypeDef::DiagnosticRegister</a></div><div class="ttdeci">uint16_t DiagnosticRegister</div><div class="ttdoc">Регистр диагностики. 0 бит - overrun. Остальное заполняется пользователем</div><div class="ttdef"><b>Definition</b> <a href="#l00040">modbus_diag.h:40</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_ad2f014e8e289ad4241a53bc1ad83f411"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#ad2f014e8e289ad4241a53bc1ad83f411">MB_DiagnosticsInfoTypeDef::SlaveNoResponse</a></div><div class="ttdeci">uint16_t SlaveNoResponse</div><div class="ttdoc">Счетчик сколько мы раз не ответили на запрос</div><div class="ttdef"><b>Definition</b> <a href="#l00048">modbus_diag.h:48</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_aed6ee3bf2286f07a709e885b88bd4439"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#aed6ee3bf2286f07a709e885b88bd4439">MB_DiagnosticsInfoTypeDef::BusCommunicationErr</a></div><div class="ttdeci">uint16_t BusCommunicationErr</div><div class="ttdoc">Ошибки при приеме фрейма modbus.</div><div class="ttdef"><b>Definition</b> <a href="#l00045">modbus_diag.h:45</a></div></div>
<div class="ttc" id="astruct_m_b___diagnostics_info_type_def_html_af26e2a0b62c5f2926db63e2125bddc3a"><div class="ttname"><a href="struct_m_b___diagnostics_info_type_def.html#af26e2a0b62c5f2926db63e2125bddc3a">MB_DiagnosticsInfoTypeDef::DeviceMode</a></div><div class="ttdeci">MB_DeviceModeTypeDef DeviceMode</div><div class="ttdoc">Режим устройства - NORMAL/LISTEN_ONLY.</div><div class="ttdef"><b>Definition</b> <a href="#l00041">modbus_diag.h:41</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><!-- 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_f93dfce691d792349f1c14ede440e2e6.html">Inc</a></li><li class="navelem"><a href="modbus__diag_8h.html">modbus_diag.h</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>