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

300 lines
37 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/Src/modbus_master.c File Reference</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_8c.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.c File Reference</div></div>
</div><!--header-->
<div class="contents">
<p>Модуль для реализации мастера MODBUS.
<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="modbus_8h_source.html">modbus.h</a>&quot;</code><br />
</div><div class="textblock"><div id="dynsection-0" onclick="return dynsection.toggleVisibility(this)" class="dynheader closed" style="cursor:pointer;"><span class="dynarrow"><span class="arrowhead closed"></span></span>Include dependency graph for modbus_master.c:</div>
<div id="dynsection-0-summary" class="dynsummary" style="display:block;">
</div>
<div id="dynsection-0-content" class="dyncontent" style="display:none;">
<div class="center"><img src="modbus__master_8c__incl.png" border="0" usemap="#a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2modbus__master_8c" loading="lazy" alt=""/></div>
<map name="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2modbus__master_8c" id="a_e_1_2_8_w_o_r_k_2_s_t_m32_2_diod___test_2diode__tester_2_core_2_modbus_2_src_2modbus__master_8c">
<area shape="rect" title="Модуль для реализации мастера MODBUS." alt="" coords="344,5,547,64"/>
<area shape="rect" href="modbus_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="407,112,485,139"/>
<area shape="poly" title=" " alt="" coords="448,64,448,96,443,96,443,64"/>
<area shape="rect" href="rs__message_8h.html" title="Библиотека обмена сообщениями по RS&#45;интерфейсу" alt="" coords="110,261,213,288"/>
<area shape="poly" title=" " alt="" coords="406,129,311,129,193,137,135,144,84,155,42,170,16,188,9,200,9,210,15,219,25,228,57,244,96,257,94,262,55,249,22,233,10,223,4,211,4,198,12,185,40,165,82,150,134,139,192,131,311,124,406,123"/>
<area shape="rect" href="modbus__master_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="26,187,151,213"/>
<area shape="poly" title=" " alt="" coords="407,137,166,186,165,180,406,132"/>
<area shape="rect" href="modbus__slave_8h.html" title="Главный заголовочный файл Modbus библиотеки" alt="" coords="176,187,292,213"/>
<area shape="poly" title=" " alt="" coords="410,142,286,184,285,179,408,137"/>
<area shape="rect" href="modbus__coils_8h.html" title="Работа с коилами Modbus." alt="" coords="316,187,429,213"/>
<area shape="poly" title=" " alt="" coords="435,141,398,177,394,174,431,137"/>
<area shape="rect" href="modbus__holdregs_8h.html" title="Работа с регистрами хранения Modbus." alt="" coords="453,187,588,213"/>
<area shape="poly" title=" " alt="" coords="461,137,499,174,495,178,457,141"/>
<area shape="rect" href="modbus__inputregs_8h.html" title="Работа с входными регистрами Modbus." alt="" coords="458,261,596,288"/>
<area shape="poly" title=" " alt="" coords="486,127,516,133,548,144,577,161,601,185,607,205,599,224,584,240,565,255,562,250,580,237,595,221,601,204,597,188,574,165,545,149,514,139,485,133"/>
<area shape="rect" href="modbus__devid_8h.html" title="Идентификаторы устройства Modbus." alt="" coords="621,261,737,288"/>
<area shape="poly" title=" " alt="" coords="486,130,553,148,589,164,622,185,650,214,669,246,665,248,646,217,619,189,586,169,551,153,485,135"/>
<area shape="rect" href="modbus__diag_8h.html" title="Диагностика устройства Modbus." alt="" coords="762,261,871,288"/>
<area shape="poly" title=" " alt="" coords="486,133,564,154,653,184,724,217,784,251,781,255,722,222,651,189,563,159,485,138"/>
<area shape="rect" href="modbus__core_8h.html" title="Ядро Modbus протокола &#45; определения и структуры" alt="" coords="419,336,529,363"/>
<area shape="poly" title=" " alt="" coords="215,285,405,329,404,335,213,291"/>
<area shape="rect" href="modbus__config_8h.html" title="Конфигурационные параметры Modbus устройства" alt="" coords="244,485,365,512"/>
<area shape="poly" title=" " alt="" coords="418,355,384,360,348,370,315,387,289,412,283,426,283,440,292,471,287,472,278,441,278,424,285,409,312,383,346,365,383,355,418,349"/>
<area shape="rect" href="modbus__data_8h.html" title="Определения структур данных Modbus устройства" alt="" coords="419,411,529,437"/>
<area shape="poly" title=" " alt="" coords="476,363,476,395,471,395,471,363"/>
<area shape="rect" href="____crc__algs_8h_source.html" title=" " alt="" coords="299,411,395,437"/>
<area shape="poly" title=" " alt="" coords="453,366,384,405,381,400,450,361"/>
<area shape="rect" href="____modbus__compat_8h.html" title="Модуль для совместимости библиотеки MODBUS." alt="" coords="553,411,696,437"/>
<area shape="poly" title=" " alt="" coords="494,361,578,402,576,406,492,366"/>
<area shape="rect" title=" " alt="" coords="246,560,363,587"/>
<area shape="poly" title=" " alt="" coords="307,513,307,544,302,544,302,513"/>
<area shape="rect" title=" " alt="" coords="442,485,506,512"/>
<area shape="poly" title=" " alt="" coords="476,438,476,470,471,470,471,438"/>
<area shape="poly" title=" " alt="" coords="342,439,322,473,317,471,337,437"/>
<area shape="poly" title=" " alt="" coords="604,412,520,372,522,367,606,408"/>
<area shape="poly" title=" " alt="" coords="103,212,140,248,136,252,99,216"/>
<area shape="poly" title=" " alt="" coords="223,216,187,252,183,248,219,212"/>
<area shape="poly" title=" " alt="" coords="383,212,459,322,454,325,379,215"/>
<area shape="poly" title=" " alt="" coords="496,216,469,235,448,263,444,277,446,292,458,322,453,324,441,294,439,277,443,260,466,232,493,212"/>
<area shape="poly" title=" " alt="" coords="520,290,494,325,490,322,516,287"/>
<area shape="poly" title=" " alt="" coords="644,291,525,333,523,328,642,286"/>
<area shape="poly" title=" " alt="" coords="762,290,545,336,544,331,761,285"/>
</map>
</div>
</div>
<p><a href="modbus__master_8c_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 id="header-func-members" class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
<tr class="memitem:ga86160c23899d6ece041e3680ba863019" id="r_ga86160c23899d6ece041e3680ba863019"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga86160c23899d6ece041e3680ba863019">MB_RespGet_RegisterAll</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint16_t *reg_arr)</td></tr>
<tr class="memdesc:ga86160c23899d6ece041e3680ba863019"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получить значение ВСЕХ регистров в ответе <br /></td></tr>
<tr class="memitem:ga1f80317087624a23f84224c6f2c1d596" id="r_ga1f80317087624a23f84224c6f2c1d596"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga1f80317087624a23f84224c6f2c1d596">MB_RespGet_RegisterValue</a> (<a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint16_t reg_addr, uint16_t *reg_value)</td></tr>
<tr class="memdesc:ga1f80317087624a23f84224c6f2c1d596"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получить значение регистра в ответе по его адресу <br /></td></tr>
<tr class="memitem:ga14750bad3976a9fcc6bdece1c800dbf5" id="r_ga14750bad3976a9fcc6bdece1c800dbf5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, int *coil_arr)</td></tr>
<tr class="memdesc:ga14750bad3976a9fcc6bdece1c800dbf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получить состояние ВСЕХ coil в ответе <br /></td></tr>
<tr class="memitem:ga643a0be1ccd587a6dfe544d9fd5ed018" id="r_ga643a0be1ccd587a6dfe544d9fd5ed018"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint16_t coil_addr, int *coil_state)</td></tr>
<tr class="memdesc:ga643a0be1ccd587a6dfe544d9fd5ed018"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получить состояние coil в ответе по его адресу <br /></td></tr>
<tr class="memitem:ga16b90d4a74a249514161aa4576724d1c" id="r_ga16b90d4a74a249514161aa4576724d1c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:ga16b90d4a74a249514161aa4576724d1c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получить количество объектов в сообщении <br /></td></tr>
<tr class="memitem:ga0dc4119c008af34d5997eab339c437be" id="r_ga0dc4119c008af34d5997eab339c437be"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint8_t obj_id, char *obj_data, uint8_t *obj_length)</td></tr>
<tr class="memdesc:ga0dc4119c008af34d5997eab339c437be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Найти объект по ID в сообщении <br /></td></tr>
<tr class="memitem:ga3fc5fc5abfe4f8767ccee5c11ea3d5d5" id="r_ga3fc5fc5abfe4f8767ccee5c11ea3d5d5"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, int index, uint8_t *obj_id, char *obj_data, uint8_t *obj_length)</td></tr>
<tr class="memdesc:ga3fc5fc5abfe4f8767ccee5c11ea3d5d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получить объект по индексу в сообщении <br /></td></tr>
<tr class="memitem:ga46a9650ec68832e6f95eda579f4d9ded" id="r_ga46a9650ec68832e6f95eda579f4d9ded"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint16_t *data)</td></tr>
<tr class="memdesc:ga46a9650ec68832e6f95eda579f4d9ded"><td class="mdescLeft">&#160;</td><td class="mdescRight">Получить данные диагностики из сообщения (MbData[1]) <br /></td></tr>
<tr class="memitem:a79e3f84b9daba8a42c8ca6026133acc5" id="r_a79e3f84b9daba8a42c8ca6026133acc5"><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a79e3f84b9daba8a42c8ca6026133acc5">MB_Define_Size_of_Function</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hmodbus, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg)</td></tr>
<tr class="memdesc:a79e3f84b9daba8a42c8ca6026133acc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Определить размер модбас запроса (МАСТЕР версия). <br /></td></tr>
<tr class="memitem:ga096d2790ab887eb815e17d8cd9ede125" id="r_ga096d2790ab887eb815e17d8cd9ede125"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga096d2790ab887eb815e17d8cd9ede125">MB_Master_Collect_Message</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hmodbus, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint8_t *modbus_uart_buff)</td></tr>
<tr class="memdesc:ga096d2790ab887eb815e17d8cd9ede125"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сбор сообщения в буфер UART в режиме мастер (фрейм мастера из msg -&gt; uart). <br /></td></tr>
<tr class="memitem:ga461e77fe31ce64c7ee5f1a932dc1183f" id="r_ga461e77fe31ce64c7ee5f1a932dc1183f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group___r_s___t_o_o_l_s.html#ga727154b368397b4796aa892de12a2289">RS_StatusTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga461e77fe31ce64c7ee5f1a932dc1183f">MB_Master_Parse_Message</a> (<a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *hmodbus, <a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *modbus_msg, uint8_t *modbus_uart_buff)</td></tr>
<tr class="memdesc:ga461e77fe31ce64c7ee5f1a932dc1183f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Парс сообщения в режиме мастер (фрейм слейва из uart -&gt; msg). <br /></td></tr>
<tr class="memitem:gadb1b59bd6832b017b7ff4f5d694f59aa" id="r_gadb1b59bd6832b017b7ff4f5d694f59aa"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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)</td></tr>
<tr class="memdesc:gadb1b59bd6832b017b7ff4f5d694f59aa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сформировать запрос на чтение коилов <br /></td></tr>
<tr class="memitem:ga85028c4de63ca63cb04e332a3fdcd676" id="r_ga85028c4de63ca63cb04e332a3fdcd676"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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)</td></tr>
<tr class="memdesc:ga85028c4de63ca63cb04e332a3fdcd676"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сформировать запрос на чтение дискретных регистров <br /></td></tr>
<tr class="memitem:ga4a4798a15608f3aac04150115a628f8e" id="r_ga4a4798a15608f3aac04150115a628f8e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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)</td></tr>
<tr class="memdesc:ga4a4798a15608f3aac04150115a628f8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сформировать запрос на чтение холдинг регистров <br /></td></tr>
<tr class="memitem:ga72f91a70586546171fe9190a4e0e5518" id="r_ga72f91a70586546171fe9190a4e0e5518"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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)</td></tr>
<tr class="memdesc:ga72f91a70586546171fe9190a4e0e5518"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сформировать запрос на чтение инпут регистров <br /></td></tr>
<tr class="memitem:ga1ac5f38ac244039a63b2714044778ffc" id="r_ga1ac5f38ac244039a63b2714044778ffc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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)</td></tr>
<tr class="memdesc:ga1ac5f38ac244039a63b2714044778ffc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сформировать запрос на запись одного коила <br /></td></tr>
<tr class="memitem:ga0126cfaf44c73d84d521b16c0f6ab7b6" id="r_ga0126cfaf44c73d84d521b16c0f6ab7b6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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)</td></tr>
<tr class="memdesc:ga0126cfaf44c73d84d521b16c0f6ab7b6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сформировать запрос на запись одного регистра <br /></td></tr>
<tr class="memitem:ga92c7c61bc6b3e249350d93d20b530fa3" id="r_ga92c7c61bc6b3e249350d93d20b530fa3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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)</td></tr>
<tr class="memdesc:ga92c7c61bc6b3e249350d93d20b530fa3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сформировать запрос на запись нескольких регистров <br /></td></tr>
<tr class="memitem:ga9b89a034f1c5ed96572621b2ebe7f6af" id="r_ga9b89a034f1c5ed96572621b2ebe7f6af"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" 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)</td></tr>
<tr class="memdesc:ga9b89a034f1c5ed96572621b2ebe7f6af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Сформировать запрос на запись нескольких коилов <br /></td></tr>
<tr class="memitem:ga426c984872d854c539fd8c238d63771b" id="r_ga426c984872d854c539fd8c238d63771b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga426c984872d854c539fd8c238d63771b">MB_REQUEST_DIAGNOSTIC_QUERY</a> (uint8_t slave_addr, uint16_t sub_function, uint16_t data)</td></tr>
<tr class="memitem:ga6480ddbb52591379806a4772b1e0314c" id="r_ga6480ddbb52591379806a4772b1e0314c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga6480ddbb52591379806a4772b1e0314c">MB_REQUEST_RETURN_QUERY_DATA</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:gaac4012ed36456d42a4ab43bafa464c5d" id="r_gaac4012ed36456d42a4ab43bafa464c5d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gaac4012ed36456d42a4ab43bafa464c5d">MB_REQUEST_RESTART_COMMUNICATIONS</a> (uint8_t slave_addr, uint16_t data)</td></tr>
<tr class="memitem:ga2273cca5ebb04144c64531fd0c0694ed" id="r_ga2273cca5ebb04144c64531fd0c0694ed"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga2273cca5ebb04144c64531fd0c0694ed">MB_REQUEST_RETURN_DIAGNOSTIC_REGISTER</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:gae6530484fa78fb3e02755b300f0c2b02" id="r_gae6530484fa78fb3e02755b300f0c2b02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gae6530484fa78fb3e02755b300f0c2b02">MB_REQUEST_FORCE_LISTEN_ONLY_MODE</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:gada53cc333c773842805b95d9a87a65db" id="r_gada53cc333c773842805b95d9a87a65db"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gada53cc333c773842805b95d9a87a65db">MB_REQUEST_CLEAR_COUNTERS_AND_DIAGNOSTIC_REGISTER</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:gacb5228130ea1b22b88c19887d92f7be0" id="r_gacb5228130ea1b22b88c19887d92f7be0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gacb5228130ea1b22b88c19887d92f7be0">MB_REQUEST_RETURN_BUS_MESSAGE_COUNT</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:gadd99de894b4454ca996f62e7087c0189" id="r_gadd99de894b4454ca996f62e7087c0189"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gadd99de894b4454ca996f62e7087c0189">MB_REQUEST_RETURN_BUS_COMMUNICATION_ERROR_COUNT</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:ga389ab419af02c8c3c5d4aae28fb17101" id="r_ga389ab419af02c8c3c5d4aae28fb17101"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga389ab419af02c8c3c5d4aae28fb17101">MB_REQUEST_RETURN_SLAVE_EXCEPTION_ERROR_COUNT</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:ga9c40062ec23c64144688aa7828eccd23" id="r_ga9c40062ec23c64144688aa7828eccd23"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga9c40062ec23c64144688aa7828eccd23">MB_REQUEST_RETURN_SLAVE_MESSAGE_COUNT</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:ga5300643a1bf60cf0a78d594c9abc1b0e" id="r_ga5300643a1bf60cf0a78d594c9abc1b0e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga5300643a1bf60cf0a78d594c9abc1b0e">MB_REQUEST_RETURN_SLAVE_NO_RESPONSE_COUNT</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:gacb578b9c708617fc0223d462ae3749c0" id="r_gacb578b9c708617fc0223d462ae3749c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gacb578b9c708617fc0223d462ae3749c0">MB_REQUEST_RETURN_SLAVE_NAK_COUNT</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:ga72c99bd3d8ee2de2e6748086f66a6955" id="r_ga72c99bd3d8ee2de2e6748086f66a6955"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga72c99bd3d8ee2de2e6748086f66a6955">MB_REQUEST_RETURN_SLAVE_BUSY_COUNT</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:ga9fa3920579485c7a23927748a7fcf4c0" id="r_ga9fa3920579485c7a23927748a7fcf4c0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga9fa3920579485c7a23927748a7fcf4c0">MB_REQUEST_RETURN_BUS_CHARACTER_OVERRUN_COUNT</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:gaaccf0865d45ec20438b06698d7fa1810" id="r_gaaccf0865d45ec20438b06698d7fa1810"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#gaaccf0865d45ec20438b06698d7fa1810">MB_REQUEST_READ_DEVICE_ID_BASIC</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:ga016ad086488ff121aa6354ed6e617255" id="r_ga016ad086488ff121aa6354ed6e617255"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga016ad086488ff121aa6354ed6e617255">MB_REQUEST_READ_DEVICE_ID_REGULAR</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:ga8ace1339daa02649df909e5cd1b9143c" id="r_ga8ace1339daa02649df909e5cd1b9143c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga8ace1339daa02649df909e5cd1b9143c">MB_REQUEST_READ_DEVICE_ID_EXTENDED</a> (uint8_t slave_addr)</td></tr>
<tr class="memitem:ga4c00a4432ea240d6f6629a9bead0c5b8" id="r_ga4c00a4432ea240d6f6629a9bead0c5b8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group___m_o_d_b_u_s___r_e_q_u_e_s_t___m_s_g.html#ga4c00a4432ea240d6f6629a9bead0c5b8">MB_REQUEST_READ_DEVICE_ID_SPECIFIC</a> (uint8_t slave_addr, uint8_t object_id)</td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Модуль для реализации мастера MODBUS. </p>
<p>Файл содержит реализацию функций для работы Modbus в режиме мастера.</p>
<h1 class="doxsection"><a class="anchor" id="mast"></a>
Функции и макросы</h1>
<ul>
<li><a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga86160c23899d6ece041e3680ba863019" title="Получить значение ВСЕХ регистров в ответе">MB_RespGet_RegisterAll()</a> — Считать все регистра из ответа</li>
<li><a class="el" href="group___m_o_d_b_u_s___r_e_g_s___a_p_i.html#ga1f80317087624a23f84224c6f2c1d596" title="Получить значение регистра в ответе по его адресу">MB_RespGet_RegisterValue()</a> — Считать один регистр из ответа</li>
<li><a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga14750bad3976a9fcc6bdece1c800dbf5" title="Получить состояние ВСЕХ coil в ответе">MB_RespGet_CoilAll()</a> — Считать все коилы из ответа</li>
<li><a class="el" href="group___m_o_d_b_u_s___r_e_q___c_o_i_l_s___a_p_i.html#ga643a0be1ccd587a6dfe544d9fd5ed018" title="Получить состояние coil в ответе по его адресу">MB_RespGet_CoilState()</a> — Считать один коил из ответа</li>
<li><a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga16b90d4a74a249514161aa4576724d1c" title="Получить количество объектов в сообщении">MB_RespGet_NumberOfObjects()</a> — Считать количество принятых объектов идентификатора</li>
<li><a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga0dc4119c008af34d5997eab339c437be" title="Найти объект по ID в сообщении">MB_RespGet_ObjectById()</a> — Считать объект идентификатора по его ID</li>
<li><a class="el" href="group___m_o_d_b_u_s___r_e_q___d_e_f_i_d___a_p_i.html#ga3fc5fc5abfe4f8767ccee5c11ea3d5d5" title="Получить объект по индексу в сообщении">MB_RespGet_ObjectByIndex()</a> — Считать объект идентификатора по порядковому номеру в сообщении</li>
<li><a class="el" href="group___m_o_d_b_u_s___r_e_q___d_i_a_g___a_p_i.html#ga46a9650ec68832e6f95eda579f4d9ded" title="Получить данные диагностики из сообщения (MbData[1])">MB_RespGet_Diagnostic()</a> — Считать запрошенный диагностический счетчик</li>
<li><a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga096d2790ab887eb815e17d8cd9ede125" title="Сбор сообщения в буфер UART в режиме мастер (фрейм мастера из msg -&gt; uart).">MB_Master_Collect_Message()</a>Сбор сообщения в режиме мастера</li>
<li><a class="el" href="group___m_o_d_b_u_s___m_a_s_t_e_r.html#ga461e77fe31ce64c7ee5f1a932dc1183f" title="Парс сообщения в режиме мастер (фрейм слейва из uart -&gt; msg).">MB_Master_Parse_Message()</a> — Парс сообщения в режиме мастера </li>
</ul>
<p class="definition">Definition in file <a class="el" href="modbus__master_8c_source.html">modbus_master.c</a>.</p>
</div><a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
<a id="a79e3f84b9daba8a42c8ca6026133acc5" name="a79e3f84b9daba8a42c8ca6026133acc5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79e3f84b9daba8a42c8ca6026133acc5">&#9670;&#160;</a></span>MB_Define_Size_of_Function()</h2>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
<tr>
<td class="mlabels-left">
<table class="memname">
<tr>
<td class="memname">int MB_Define_Size_of_Function </td>
<td>(</td>
<td class="paramtype"><a class="el" href="struct_r_s___handle_type_def.html">RS_HandleTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>hmodbus</em></span>, </td>
</tr>
<tr>
<td class="paramkey"></td>
<td></td>
<td class="paramtype"><a class="el" href="struct_r_s___msg_type_def.html">RS_MsgTypeDef</a> *</td> <td class="paramname"><span class="paramname"><em>modbus_msg</em></span>&#160;)</td>
</tr>
</table>
</td>
<td class="mlabels-right">
<span class="mlabels"><span class="mlabel static">static</span></span> </td>
</tr>
</table>
</div><div class="memdoc">
<p>Определить размер модбас запроса (МАСТЕР версия). </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">hRS</td><td>Указатель на хендлер RS. </td></tr>
<tr><td class="paramname">rx_data_size</td><td>Указатель на переменную для записи кол-ва байт для принятия. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>RS_RES Статус о корректности рассчета кол-ва байт для принятия.</dd></dl>
<p>Определение сколько байтов надо принять по протоколу. </p>
<p class="definition">Definition at line <a class="el" href="modbus__master_8c_source.html#l00326">326</a> of file <a class="el" href="modbus__master_8c_source.html">modbus_master.c</a>.</p>
</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<div id="page-nav" class="page-nav-panel">
<div id="page-nav-resize-handle"></div>
<div id="page-nav-tree">
<div id="page-nav-contents">
</div><!-- page-nav-contents -->
</div><!-- page-nav-tree -->
</div><!-- page-nav -->
</div><!-- container -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
<li class="navelem"><a href="dir_413f4e031a85da0d68269c6fd2f76e1c.html">Src</a></li><li class="navelem"><a href="modbus__master_8c.html">modbus_master.c</a></li>
<li class="footer">Generated by <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.14.0 </li>
</ul>
</div>
</body>
</html>