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

368 lines
56 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_master.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__master_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_master.h</div></div>
</div><!--header-->
<div class="contents">
<a href="modbus__master_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_master.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_MASTER Modbus master funtions</span></div>
<div class="line"><a id="l00007" name="l00007"></a><span class="lineno"> 7</span><span class="comment">@ingroup MODBUS_CMD_PROCESS_FUNCTIONS</span></div>
<div class="line"><a id="l00008" name="l00008"></a><span class="lineno"> 8</span><span class="comment">@brief Функции для работы в режиме Master</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">Модуль реализации Modbus в режиме мастер</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="preprocessor">#ifndef __MODBUS_MASTER_H_</span></div>
<div class="line"><a id="l00014" name="l00014"></a><span class="lineno"> 14</span><span class="preprocessor">#define __MODBUS_MASTER_H_</span></div>
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span> </div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="preprocessor">#include &quot;<a class="code" href="rs__message_8h.html">rs_message.h</a>&quot;</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">/**</span></div>
<div class="line"><a id="l00019" name="l00019"></a><span class="lineno"> 19</span><span class="comment"> * @addtogroup MODBUS_REQUEST_MSG API for Master Requests</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> * @ingroup MODBUS_FUNCTIONS</span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> * @brief API для формирования фрейма-запроса в режиме мастер</span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"> * @details Примеры использования:</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"> * @code</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"> * // Чтение 10 holding registers начиная с адреса 0</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"> * RS_MsgTypeDef read_msg = MB_REQUEST_READ_HOLDING_REGS(1, 0, 10);</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"> * // Запись одного coil</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> * RS_MsgTypeDef write_coil_msg = MB_REQUEST_WRITE_SINGLE_COIL(1, 5, 1);</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment"> * </span></div>
<div class="line"><a id="l00030" name="l00030"></a><span class="lineno"> 30</span><span class="comment"> * // Диагностический запрос</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"> * RS_MsgTypeDef diag_msg = MB_REQUEST_RETURN_BUS_MESSAGE_COUNT(1);</span></div>
<div class="line"><a id="l00032" name="l00032"></a><span class="lineno"> 32</span><span class="comment"> * </span></div>
<div class="line"><a id="l00033" name="l00033"></a><span class="lineno"> 33</span><span class="comment"> * // Идентификация устройства</span></div>
<div class="line"><a id="l00034" name="l00034"></a><span class="lineno"> 34</span><span class="comment"> * RS_MsgTypeDef dev_id_msg = MB_REQUEST_READ_DEVICE_ID_BASIC(1);</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"> * @endcode</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"> */</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span> </div>
<div class="line"><a id="l00039" name="l00039"></a><span class="lineno"> 39</span><span class="comment">//---------КЛАССИЧЕСКИЕ ДАННЫЕ-----------</span></div>
<div class="line"><a id="l00040" name="l00040"></a><span class="lineno"> 40</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gadb1b59bd6832b017b7ff4f5d694f59aa">MB_REQUEST_READ_COILS</a>(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity);</div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga85028c4de63ca63cb04e332a3fdcd676">MB_REQUEST_READ_DISCRETE_INPUTS</a>(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity);</div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga4a4798a15608f3aac04150115a628f8e">MB_REQUEST_READ_HOLDING_REGS</a>(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity);</div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga72f91a70586546171fe9190a4e0e5518">MB_REQUEST_READ_INPUT_REGS</a>(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity);</div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga1ac5f38ac244039a63b2714044778ffc">MB_REQUEST_WRITE_SINGLE_COIL</a>(uint8_t slave_addr, uint16_t coil_addr, uint8_t value);</div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga0126cfaf44c73d84d521b16c0f6ab7b6">MB_REQUEST_WRITE_SINGLE_REG</a>(uint8_t slave_addr, uint16_t reg_addr, uint16_t value);</div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga92c7c61bc6b3e249350d93d20b530fa3">MB_REQUEST_WRITE_MULTIPLE_COILS</a>(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity, uint8_t *coils_data);</div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga9b89a034f1c5ed96572621b2ebe7f6af">MB_REQUEST_WRITE_MULTIPLE_REGS</a>(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity, uint16_t *regs_data);</div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span> </div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment">//---------ДИАГНОСТИЧЕСКИЕ ДАННЫЕ-----------</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_DIAGNOSTIC_QUERY(uint8_t slave_addr, uint16_t sub_function, uint16_t data);</div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_QUERY_DATA(uint8_t slave_addr);</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RESTART_COMMUNICATIONS(uint8_t slave_addr, uint16_t data);</div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_DIAGNOSTIC_REGISTER(uint8_t slave_addr);</div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_FORCE_LISTEN_ONLY_MODE(uint8_t slave_addr);</div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_CLEAR_COUNTERS_AND_DIAGNOSTIC_REGISTER(uint8_t slave_addr);</div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_BUS_MESSAGE_COUNT(uint8_t slave_addr);</div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_BUS_COMMUNICATION_ERROR_COUNT(uint8_t slave_addr);</div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_SLAVE_EXCEPTION_ERROR_COUNT(uint8_t slave_addr);</div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_SLAVE_MESSAGE_COUNT(uint8_t slave_addr);</div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_SLAVE_NO_RESPONSE_COUNT(uint8_t slave_addr);</div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_SLAVE_NAK_COUNT(uint8_t slave_addr);</div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_SLAVE_BUSY_COUNT(uint8_t slave_addr);</div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_RETURN_BUS_CHARACTER_OVERRUN_COUNT(uint8_t slave_addr);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment">//---------ИДЕНТИФИКАТОРЫ МОДБАС-----------</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_READ_DEVICE_ID_BASIC(uint8_t slave_addr);</div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_READ_DEVICE_ID_REGULAR(uint8_t slave_addr);</div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_READ_DEVICE_ID_EXTENDED(uint8_t slave_addr);</div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> MB_REQUEST_READ_DEVICE_ID_SPECIFIC(uint8_t slave_addr, uint8_t object_id);<span class="comment"></span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="comment">/** MODBUS_REQUEST_MSG</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="comment"> * @} </span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="comment"> */</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> <span class="comment"></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"> * @addtogroup MODBUS_REGS_API API for Registers</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"> * @ingroup MODBUS_REQUEST_MSG</span></div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> * @brief API для чтения регистров из ответа в режиме мастер</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> * @details Примеры использования:</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment"> * </span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment"> * @code</span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment"> * // Пример: Запросили 10 регистров с адреса 100, хотим получить значение регистра 105</span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment"> * uint16_t reg_value;</span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment"> * if(MB_RespGet_RegisterValue(modbus_msg, 105, &amp;reg_value))</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"> * printf(&quot;Register 105 value: %d\n&quot;, reg_value);</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span><span class="comment"> * }</span></div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span><span class="comment"> * </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="comment"> * uint16_t reg_value[125];</span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment"> * MB_RespGet_RegisterAll(modbus_msg)</span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment"> * @endcode</span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"> 94</span><span class="comment"> */</span></div>
<div class="line"><a id="l00095" name="l00095"></a><span class="lineno"> 95</span><span class="comment">/* Получить значение ВСЕХ регистров в ответе */</span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga86160c23899d6ece041e3680ba863019">MB_RespGet_RegisterAll</a>(<a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint16_t *reg_arr);</div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment">/* Получить значение регистра в ответе по его адресу */</span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga1f80317087624a23f84224c6f2c1d596">MB_RespGet_RegisterValue</a>(<a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint16_t reg_addr, uint16_t *reg_value);</div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</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">/** MODBUS_REQ_REGS_API</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"> */</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</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><span class="comment">/**</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span><span class="comment"> * @addtogroup MODBUS_REQ_COILS_API API for Coils </span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span><span class="comment"> * @ingroup MODBUS_REQUEST_MSG</span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"> * @brief API для чтения coils из ответа в режиме мастер</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> * @details Примеры использования:</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"> * @code</span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"> * // Пример: Запросили 10 coils с адреса 20, хотим узнать состояние coil 25</span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment"> * int coil_state;</span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment"> * if(MB_RespGet_CoilState(modbus_msg, 25, &amp;coil_state))</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"> * printf(&quot;Coil 25 state: %s\n&quot;, coil_state ? &quot;ON&quot; : &quot;OFF&quot;);</span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"> * }</span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"> 119</span><span class="comment"> * </span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"> * // Пример: Получить состояние всех запрошенных coils</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"> * for(int addr = MODBUS_MSG.Addr; addr &lt; MODBUS_MSG.Addr + MODBUS_MSG.Qnt; addr++)</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"> * int state;</span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> * if(MB_RespGet_CoilState(modbus_msg, addr, &amp;state))</span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> * {</span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> * printf(&quot;Coil %d: %s\n&quot;, addr, state ? &quot;ON&quot; : &quot;OFF&quot;);</span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment"> * }</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> * }</span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> * @endcode</span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> */</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span><span class="comment">/* Получить состояние ВСЕХ coil в ответе */</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga14750bad3976a9fcc6bdece1c800dbf5">MB_RespGet_CoilAll</a>(<a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, <span class="keywordtype">int</span> *coil_arr);</div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="comment">/* Получить состояние coil в ответе по его адресу */</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga643a0be1ccd587a6dfe544d9fd5ed018">MB_RespGet_CoilState</a>(<a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint16_t coil_addr, <span class="keywordtype">int</span> *coil_state);</div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="comment"></span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="comment">/** MODBUS_REQ_COILS_API</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="comment"> * @} </span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="comment"> */</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><span class="comment"></span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="comment">/**</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="comment"> * @addtogroup MODBUS_REQ_DEFID_API API for Device Identifications</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="comment"> * @ingroup MODBUS_REQUEST_MSG</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="comment"> * @brief API для чтения идентификторов из ответа в режиме мастер</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="comment"> * @details Примеры использования:</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"> * @code</span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="comment"> * // Пример 1: Получить VendorName (ID = 0x00)</span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="comment"> * uint8_t length;</span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="comment"> * char vendor_name[64];</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="comment"> * if(MB_RespGet_ObjectById(modbus_msg, 0x00, vendor_name, &amp;length))</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="comment"> * {</span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="comment"> * // получено</span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="comment"> * }</span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="comment"> * </span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="comment"> * // Пример 2: Перебрать все объекты в сообщении</span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="comment"> * uint8_t obj_id, obj_length;</span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="comment"> * char obj_data[256];</span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="comment"> * </span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="comment"> * int obj_count = MB_RespGet_NumberOfObjects(modbus_msg);</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="comment"> * printf(&quot;Total objects: %d\n&quot;, obj_count);</span></div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="comment"> * </span></div>
<div class="line"><a id="l00164" name="l00164"></a><span class="lineno"> 164</span><span class="comment"> * for(int i = 0; i &lt; obj_count; i++)</span></div>
<div class="line"><a id="l00165" name="l00165"></a><span class="lineno"> 165</span><span class="comment"> * {</span></div>
<div class="line"><a id="l00166" name="l00166"></a><span class="lineno"> 166</span><span class="comment"> * if(MB_RespGet_ObjectByIndex(modbus_msg, i, &amp;obj_id, obj_data, &amp;obj_length))</span></div>
<div class="line"><a id="l00167" name="l00167"></a><span class="lineno"> 167</span><span class="comment"> * {</span></div>
<div class="line"><a id="l00168" name="l00168"></a><span class="lineno"> 168</span><span class="comment"> * // получено</span></div>
<div class="line"><a id="l00169" name="l00169"></a><span class="lineno"> 169</span><span class="comment"> * }</span></div>
<div class="line"><a id="l00170" name="l00170"></a><span class="lineno"> 170</span><span class="comment"> * }</span></div>
<div class="line"><a id="l00171" name="l00171"></a><span class="lineno"> 171</span><span class="comment"> * @endcode</span></div>
<div class="line"><a id="l00172" name="l00172"></a><span class="lineno"> 172</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00173" name="l00173"></a><span class="lineno"> 173</span><span class="comment"> */</span></div>
<div class="line"><a id="l00174" name="l00174"></a><span class="lineno"> 174</span> </div>
<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"> 175</span><span class="comment">/* Получить количество объектов в сообщении */</span></div>
<div class="line"><a id="l00176" name="l00176"></a><span class="lineno"> 176</span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga16b90d4a74a249514161aa4576724d1c">MB_RespGet_NumberOfObjects</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="l00177" name="l00177"></a><span class="lineno"> 177</span><span class="comment">/* Найти объект по ID в сообщении */</span></div>
<div class="line"><a id="l00178" name="l00178"></a><span class="lineno"> 178</span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga0dc4119c008af34d5997eab339c437be">MB_RespGet_ObjectById</a>(<a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint8_t obj_id, <span class="keywordtype">char</span> *obj_data, uint8_t *obj_length);</div>
<div class="line"><a id="l00179" name="l00179"></a><span class="lineno"> 179</span><span class="comment">/* Получить объект по индексу в сообщении */</span></div>
<div class="line"><a id="l00180" name="l00180"></a><span class="lineno"> 180</span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga3fc5fc5abfe4f8767ccee5c11ea3d5d5">MB_RespGet_ObjectByIndex</a>(<a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, <span class="keywordtype">int</span> index, uint8_t *obj_id, <span class="keywordtype">char</span> *obj_data, uint8_t *obj_length);</div>
<div class="line"><a id="l00181" name="l00181"></a><span class="lineno"> 181</span> </div>
<div class="line"><a id="l00182" name="l00182"></a><span class="lineno"> 182</span> <span class="comment"></span></div>
<div class="line"><a id="l00183" name="l00183"></a><span class="lineno"> 183</span><span class="comment">/** MODBUS_REQ_DEFID_API</span></div>
<div class="line"><a id="l00184" name="l00184"></a><span class="lineno"> 184</span><span class="comment">* @} </span></div>
<div class="line"><a id="l00185" name="l00185"></a><span class="lineno"> 185</span><span class="comment">*/</span></div>
<div class="line"><a id="l00186" name="l00186"></a><span class="lineno"> 186</span> </div>
<div class="line"><a id="l00187" name="l00187"></a><span class="lineno"> 187</span> </div>
<div class="line"><a id="l00188" name="l00188"></a><span class="lineno"> 188</span><span class="comment"></span> </div>
<div class="line"><a id="l00189" name="l00189"></a><span class="lineno"> 189</span><span class="comment">/**</span></div>
<div class="line"><a id="l00190" name="l00190"></a><span class="lineno"> 190</span><span class="comment"> * @addtogroup MODBUS_REQ_DIAG_API API for Diagnostics</span></div>
<div class="line"><a id="l00191" name="l00191"></a><span class="lineno"> 191</span><span class="comment"> * @ingroup MODBUS_REQUEST_MSG </span></div>
<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"> 192</span><span class="comment"> * @brief API для чтения диагностической информации из ответа в режиме мастер</span></div>
<div class="line"><a id="l00193" name="l00193"></a><span class="lineno"> 193</span><span class="comment"> * @details Примеры использования:</span></div>
<div class="line"><a id="l00194" name="l00194"></a><span class="lineno"> 194</span><span class="comment"> * </span></div>
<div class="line"><a id="l00195" name="l00195"></a><span class="lineno"> 195</span><span class="comment"> * @code</span></div>
<div class="line"><a id="l00196" name="l00196"></a><span class="lineno"> 196</span><span class="comment"> * // Получить данные диагностики (значение счетчика)</span></div>
<div class="line"><a id="l00197" name="l00197"></a><span class="lineno"> 197</span><span class="comment"> * uint16_t counter_value;</span></div>
<div class="line"><a id="l00198" name="l00198"></a><span class="lineno"> 198</span><span class="comment"> * if(MB_RespGet_Diagnostic(modbus_msg, &amp;counter_value))</span></div>
<div class="line"><a id="l00199" name="l00199"></a><span class="lineno"> 199</span><span class="comment"> * {</span></div>
<div class="line"><a id="l00200" name="l00200"></a><span class="lineno"> 200</span><span class="comment"> * printf(&quot;Counter value: %d\n&quot;, counter_value);</span></div>
<div class="line"><a id="l00201" name="l00201"></a><span class="lineno"> 201</span><span class="comment"> * }</span></div>
<div class="line"><a id="l00202" name="l00202"></a><span class="lineno"> 202</span><span class="comment"> * @endcode</span></div>
<div class="line"><a id="l00203" name="l00203"></a><span class="lineno"> 203</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00204" name="l00204"></a><span class="lineno"> 204</span><span class="comment"> */</span></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><span class="comment">/* Получить */</span></div>
<div class="line"><a id="l00207" name="l00207"></a><span class="lineno"> 207</span><span class="keywordtype">int</span> <a class="code hl_function" href="group___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i.html#ga46a9650ec68832e6f95eda579f4d9ded">MB_RespGet_Diagnostic</a>(<a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint16_t *data);</div>
<div class="line"><a id="l00208" name="l00208"></a><span class="lineno"> 208</span><span class="comment"></span> </div>
<div class="line"><a id="l00209" name="l00209"></a><span class="lineno"> 209</span><span class="comment">/** MODBUS_REQ_DIAG_API</span></div>
<div class="line"><a id="l00210" name="l00210"></a><span class="lineno"> 210</span><span class="comment"> * @}</span></div>
<div class="line"><a id="l00211" name="l00211"></a><span class="lineno"> 211</span><span class="comment"> */</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> </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> </div>
<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"> 216</span><span class="comment"></span> </div>
<div class="line"><a id="l00217" name="l00217"></a><span class="lineno"> 217</span><span class="comment">/**</span></div>
<div class="line"><a id="l00218" name="l00218"></a><span class="lineno"> 218</span><span class="comment"> * @addtogroup MODBUS_MASTER</span></div>
<div class="line"><a id="l00219" name="l00219"></a><span class="lineno"> 219</span><span class="comment"> * @{</span></div>
<div class="line"><a id="l00220" name="l00220"></a><span class="lineno"> 220</span><span class="comment"> */</span></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><span class="comment">/* Сбор сообщения в буфер UART в режиме мастер (фрейм мастера из msg -&gt; uart) */</span></div>
<div class="line"><a id="l00223" name="l00223"></a><span class="lineno"> 223</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___m_o_d_b_u_s___m_a_s_t_e_r.html#ga096d2790ab887eb815e17d8cd9ede125">MB_Master_Collect_Message</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hmodbus, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint8_t *modbus_uart_buff);</div>
<div class="line"><a id="l00224" name="l00224"></a><span class="lineno"> 224</span><span class="comment">/* Парс сообщения в режиме мастер (фрейм слейва из uart -&gt; msg) */</span></div>
<div class="line"><a id="l00225" name="l00225"></a><span class="lineno"> 225</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___m_o_d_b_u_s___m_a_s_t_e_r.html#ga461e77fe31ce64c7ee5f1a932dc1183f">MB_Master_Parse_Message</a>(<a class="code hl_struct" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hmodbus, <a class="code hl_struct" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint8_t *modbus_uart_buff);</div>
<div class="line"><a id="l00226" name="l00226"></a><span class="lineno"> 226</span><span class="comment"></span> </div>
<div class="line"><a id="l00227" name="l00227"></a><span class="lineno"> 227</span><span class="comment">/** MODBUS_MASTER</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"> */</span></div>
<div class="line"><a id="l00230" name="l00230"></a><span class="lineno"> 230</span> </div>
<div class="line"><a id="l00231" name="l00231"></a><span class="lineno"> 231</span><span class="preprocessor">#endif </span><span class="comment">//__MODBUS_MASTER_H_</span></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_a_s_t_e_r_html_ga096d2790ab887eb815e17d8cd9ede125"><div class="ttname"><a href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga096d2790ab887eb815e17d8cd9ede125">MB_Master_Collect_Message</a></div><div class="ttdeci">RS_StatusTypeDef MB_Master_Collect_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg, uint8_t *modbus_uart_buff)</div><div class="ttdoc">Сбор сообщения в буфер UART в режиме мастер (фрейм мастера из msg -&gt; uart).</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00388">modbus_master.c:388</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___m_a_s_t_e_r_html_ga461e77fe31ce64c7ee5f1a932dc1183f"><div class="ttname"><a href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga461e77fe31ce64c7ee5f1a932dc1183f">MB_Master_Parse_Message</a></div><div class="ttdeci">RS_StatusTypeDef MB_Master_Parse_Message(RS_HandleTypeDef *hmodbus, RS_MsgTypeDef *modbus_msg, uint8_t *modbus_uart_buff)</div><div class="ttdoc">Парс сообщения в режиме мастер (фрейм слейва из uart -&gt; msg).</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00469">modbus_master.c:469</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_g_s___a_p_i_html_ga1f80317087624a23f84224c6f2c1d596"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga1f80317087624a23f84224c6f2c1d596">MB_RespGet_RegisterValue</a></div><div class="ttdeci">int MB_RespGet_RegisterValue(RS_MsgTypeDef *modbus_msg, uint16_t reg_addr, uint16_t *reg_value)</div><div class="ttdoc">Получить значение регистра в ответе по его адресу</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00063">modbus_master.c:63</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_g_s___a_p_i_html_ga86160c23899d6ece041e3680ba863019"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga86160c23899d6ece041e3680ba863019">MB_RespGet_RegisterAll</a></div><div class="ttdeci">int MB_RespGet_RegisterAll(RS_MsgTypeDef *modbus_msg, uint16_t *reg_arr)</div><div class="ttdoc">Получить значение ВСЕХ регистров в ответе</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00038">modbus_master.c:38</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i_html_ga14750bad3976a9fcc6bdece1c800dbf5"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga14750bad3976a9fcc6bdece1c800dbf5">MB_RespGet_CoilAll</a></div><div class="ttdeci">int MB_RespGet_CoilAll(RS_MsgTypeDef *modbus_msg, int *coil_arr)</div><div class="ttdoc">Получить состояние ВСЕХ coil в ответе</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00101">modbus_master.c:101</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i_html_ga643a0be1ccd587a6dfe544d9fd5ed018"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga643a0be1ccd587a6dfe544d9fd5ed018">MB_RespGet_CoilState</a></div><div class="ttdeci">int MB_RespGet_CoilState(RS_MsgTypeDef *modbus_msg, uint16_t coil_addr, int *coil_state)</div><div class="ttdoc">Получить состояние coil в ответе по его адресу</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00127">modbus_master.c:127</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i_html_ga0dc4119c008af34d5997eab339c437be"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga0dc4119c008af34d5997eab339c437be">MB_RespGet_ObjectById</a></div><div class="ttdeci">int MB_RespGet_ObjectById(RS_MsgTypeDef *modbus_msg, uint8_t obj_id, char *obj_data, uint8_t *obj_length)</div><div class="ttdoc">Найти объект по ID в сообщении</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00193">modbus_master.c:193</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i_html_ga16b90d4a74a249514161aa4576724d1c"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga16b90d4a74a249514161aa4576724d1c">MB_RespGet_NumberOfObjects</a></div><div class="ttdeci">int MB_RespGet_NumberOfObjects(RS_MsgTypeDef *modbus_msg)</div><div class="ttdoc">Получить количество объектов в сообщении</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00170">modbus_master.c:170</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i_html_ga3fc5fc5abfe4f8767ccee5c11ea3d5d5"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga3fc5fc5abfe4f8767ccee5c11ea3d5d5">MB_RespGet_ObjectByIndex</a></div><div class="ttdeci">int MB_RespGet_ObjectByIndex(RS_MsgTypeDef *modbus_msg, int index, uint8_t *obj_id, char *obj_data, uint8_t *obj_length)</div><div class="ttdoc">Получить объект по индексу в сообщении</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00244">modbus_master.c:244</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i_html_ga46a9650ec68832e6f95eda579f4d9ded"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i.html#ga46a9650ec68832e6f95eda579f4d9ded">MB_RespGet_Diagnostic</a></div><div class="ttdeci">int MB_RespGet_Diagnostic(RS_MsgTypeDef *modbus_msg, uint16_t *data)</div><div class="ttdoc">Получить данные диагностики из сообщения (MbData[1])</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00297">modbus_master.c:297</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g_html_ga0126cfaf44c73d84d521b16c0f6ab7b6"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga0126cfaf44c73d84d521b16c0f6ab7b6">MB_REQUEST_WRITE_SINGLE_REG</a></div><div class="ttdeci">RS_MsgTypeDef MB_REQUEST_WRITE_SINGLE_REG(uint8_t slave_addr, uint16_t reg_addr, uint16_t value)</div><div class="ttdoc">Сформировать запрос на запись одного регистра</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00619">modbus_master.c:619</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g_html_ga1ac5f38ac244039a63b2714044778ffc"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga1ac5f38ac244039a63b2714044778ffc">MB_REQUEST_WRITE_SINGLE_COIL</a></div><div class="ttdeci">RS_MsgTypeDef MB_REQUEST_WRITE_SINGLE_COIL(uint8_t slave_addr, uint16_t coil_addr, uint8_t value)</div><div class="ttdoc">Сформировать запрос на запись одного коила</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00612">modbus_master.c:612</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g_html_ga4a4798a15608f3aac04150115a628f8e"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga4a4798a15608f3aac04150115a628f8e">MB_REQUEST_READ_HOLDING_REGS</a></div><div class="ttdeci">RS_MsgTypeDef MB_REQUEST_READ_HOLDING_REGS(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity)</div><div class="ttdoc">Сформировать запрос на чтение холдинг регистров</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00598">modbus_master.c:598</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g_html_ga72f91a70586546171fe9190a4e0e5518"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga72f91a70586546171fe9190a4e0e5518">MB_REQUEST_READ_INPUT_REGS</a></div><div class="ttdeci">RS_MsgTypeDef MB_REQUEST_READ_INPUT_REGS(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity)</div><div class="ttdoc">Сформировать запрос на чтение инпут регистров</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00605">modbus_master.c:605</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g_html_ga85028c4de63ca63cb04e332a3fdcd676"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga85028c4de63ca63cb04e332a3fdcd676">MB_REQUEST_READ_DISCRETE_INPUTS</a></div><div class="ttdeci">RS_MsgTypeDef MB_REQUEST_READ_DISCRETE_INPUTS(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity)</div><div class="ttdoc">Сформировать запрос на чтение дискретных регистров</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00591">modbus_master.c:591</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g_html_ga92c7c61bc6b3e249350d93d20b530fa3"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga92c7c61bc6b3e249350d93d20b530fa3">MB_REQUEST_WRITE_MULTIPLE_COILS</a></div><div class="ttdeci">RS_MsgTypeDef MB_REQUEST_WRITE_MULTIPLE_COILS(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity, uint8_t *coils_data)</div><div class="ttdoc">Сформировать запрос на запись нескольких регистров</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00626">modbus_master.c:626</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g_html_ga9b89a034f1c5ed96572621b2ebe7f6af"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga9b89a034f1c5ed96572621b2ebe7f6af">MB_REQUEST_WRITE_MULTIPLE_REGS</a></div><div class="ttdeci">RS_MsgTypeDef MB_REQUEST_WRITE_MULTIPLE_REGS(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity, uint16_t *regs_data)</div><div class="ttdoc">Сформировать запрос на запись нескольких коилов</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00645">modbus_master.c:645</a></div></div>
<div class="ttc" id="agroup___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g_html_gadb1b59bd6832b017b7ff4f5d694f59aa"><div class="ttname"><a href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gadb1b59bd6832b017b7ff4f5d694f59aa">MB_REQUEST_READ_COILS</a></div><div class="ttdeci">RS_MsgTypeDef MB_REQUEST_READ_COILS(uint8_t slave_addr, uint16_t start_addr, uint16_t quantity)</div><div class="ttdoc">Сформировать запрос на чтение коилов</div><div class="ttdef"><b>Definition</b> <a href="modbus__master_8c_source.html#l00584">modbus_master.c:584</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="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___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___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__master_8h.html">modbus_master.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>