\doxysection{E\+:/.WORK/\+STM32/\+Diod\+\_\+\+Test/diode\+\_\+tester/\+Core/\+Modbus/\+Src/modbus\+\_\+diag.c File Reference} \hypertarget{modbus__diag_8c}{}\label{modbus__diag_8c}\index{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/modbus\_diag.c@{E:/.WORK/STM32/Diod\_Test/diode\_tester/Core/Modbus/Src/modbus\_diag.c}} Реализация диагностики устройства Modbus. {\ttfamily \#include "{}modbus\+\_\+diag.\+h"{}}\newline Include dependency graph for modbus\+\_\+diag.\+c\+:\nopagebreak \begin{figure}[H] \begin{center} \leavevmode \includegraphics[width=350pt]{modbus__diag_8c__incl} \end{center} \end{figure} \doxysubsubsection*{Functions} \begin{DoxyCompactItemize} \item void \mbox{\hyperlink{group___m_o_d_b_u_s___d_i_a_g_ga9b61a6d4139bac318868e93f03cd82c7}{MB\+\_\+\+Diagnostics\+Init}} (void) \begin{DoxyCompactList}\small\item\em Инициализация диагностических счетчиков \end{DoxyCompactList}\item int \mbox{\hyperlink{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_gab1237f28e2db2cd2e8a93b31cd9a61be}{MB\+\_\+\+Diagnostics\+\_\+\+Write\+Bit}} (int bit\+\_\+num, int bit\+\_\+state) \begin{DoxyCompactList}\small\item\em Выставить бит в регистре диагностике \end{DoxyCompactList}\item int \mbox{\hyperlink{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_ga5588ddb15ee2580e7659701e5e671e8f}{MB\+\_\+\+Diagnostics\+\_\+\+Get\+Bit}} (int bit\+\_\+num) \begin{DoxyCompactList}\small\item\em Прочитать состояние бита диагностического регистра \end{DoxyCompactList}\item uint8\+\_\+t \mbox{\hyperlink{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_ga6bbfc53b20b4698a08d79851b5db65f0}{MB\+\_\+\+Process\+\_\+\+Diagnostics}} (\mbox{\hyperlink{struct_r_s___msg_type_def}{RS\+\_\+\+Msg\+Type\+Def}} \texorpdfstring{$\ast$}{*}modbus\+\_\+msg) \begin{DoxyCompactList}\small\item\em Обработать функцию Diagnostics (Serial Line only) (0x08) \end{DoxyCompactList}\item void \mbox{\hyperlink{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_gae379458fa9cea50d5e313a68e716cb83}{MB\+\_\+\+Diagnostics\+\_\+\+Bus\+Message\+Cnt}} (void) \begin{DoxyCompactList}\small\item\em Увеличивает счетчик сообщений на шине \end{DoxyCompactList}\item void \mbox{\hyperlink{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_ga10f9e4dd9f3dda4bb0f66c323d6b29d7}{MB\+\_\+\+Diagnostics\+\_\+\+Communication\+Error\+Cnt}} (void) \begin{DoxyCompactList}\small\item\em Увеличивает счетчик ошибок связи \end{DoxyCompactList}\item void \mbox{\hyperlink{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_ga82e0bf0c4452c25bf3f05a20abb7cc74}{MB\+\_\+\+Diagnostics\+\_\+\+Exception\+Error\+Cnt}} (void) \begin{DoxyCompactList}\small\item\em Увеличивает счетчик исключений \end{DoxyCompactList}\item void \mbox{\hyperlink{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_gaff7c464d7d66399232770bac78b653a4}{MB\+\_\+\+Diagnostics\+\_\+\+Character\+Overrun\+Cnt}} (void) \begin{DoxyCompactList}\small\item\em Увеличивает счетчик переполнения символов \end{DoxyCompactList}\item void \mbox{\hyperlink{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_ga22a48a04ef64f74b5974c4fdb1445936}{MB\+\_\+\+Diagnostics\+\_\+\+Slave\+Message\+Cnt}} (void) \begin{DoxyCompactList}\small\item\em Увеличивает счетчик отсутствия ответов \end{DoxyCompactList}\item void \mbox{\hyperlink{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_gabf80c0e24a0ed3736338218c003d001d}{MB\+\_\+\+Diagnostics\+\_\+\+Slave\+No\+Response\+Cnt}} (void) \begin{DoxyCompactList}\small\item\em Увеличивает счетчик отсутствия ответов \end{DoxyCompactList}\item void \mbox{\hyperlink{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_ga2585ebac184f7fa56059c81419c614b9}{MB\+\_\+\+Diagnostics\+\_\+\+Slave\+NAKCnt}} (void) \begin{DoxyCompactList}\small\item\em Увеличивает счетчик NAK ответов \end{DoxyCompactList}\item void \mbox{\hyperlink{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_ga4baad1102ba3f09cf3cc121b8d548ddb}{MB\+\_\+\+Diagnostics\+\_\+\+Slave\+Busy\+Cnt}} (void) \begin{DoxyCompactList}\small\item\em Увеличивает счетчик занятости устройства \end{DoxyCompactList}\item \mbox{\hyperlink{group___m_o_d_b_u_s___d_i_a_g_ga9d139168bb88bfa1ba1597eeff9ebf6a}{MB\+\_\+\+Device\+Mode\+Type\+Def}} \mbox{\hyperlink{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_gae7b613f24e9e3d9d95a789c404a3a485}{MB\+\_\+\+Get\+Device\+Mode}} (void) \begin{DoxyCompactList}\small\item\em Получение текущего режима устройства \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsubsection*{Variables} \begin{DoxyCompactItemize} \item \mbox{\hyperlink{struct_m_b___diagnostics_info_type_def}{MB\+\_\+\+Diagnostics\+Info\+Type\+Def}} \mbox{\hyperlink{group___m_o_d_b_u_s___d_i_a_g_ga4ba6111ac80e342396f9703239323936}{MB\+\_\+\+DIAG}} = \{0\} \begin{DoxyCompactList}\small\item\em Глобальная структура диагностики \end{DoxyCompactList}\end{DoxyCompactItemize} \doxysubsection{Detailed Description} Реализация диагностики устройства Modbus. Модуль обработки запросов диагностической информации (0x08)\+: \begin{DoxyItemize} \item Полная поддержка всех подфункций диагностики согласно спецификации Modbus \item Выставление любого бита в Diagnostics Register \item Сбор статистики работы устройства \item Управление режимами работы (Normal/\+Listen Only) \end{DoxyItemize} Definition in file \mbox{\hyperlink{modbus__diag_8c_source}{modbus\+\_\+diag.\+c}}.