\doxysubsubsection{Trackers defines }
\hypertarget{group___t_r_a_c_k_e_r_s}{}\label{group___t_r_a_c_k_e_r_s}\index{Trackers defines@{Trackers defines}}


Дефайны для работы с трекерами  


Collaboration diagram for Trackers defines\+:
\nopagebreak
\begin{figure}[H]
\begin{center}
\leavevmode
\includegraphics[width=275pt]{group___t_r_a_c_k_e_r_s}
\end{center}
\end{figure}
\doxysubsubsubsubsection*{Macros}
\begin{DoxyCompactItemize}
\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{Tracker\+Type\+Def}}(num\+\_\+user\+\_\+vars)
\begin{DoxyCompactList}\small\item\em Структура для счетчиков отладки \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\+\_\+of\+\_\+usercnts}}(\+\_\+user\+\_\+)
\begin{DoxyCompactList}\small\item\em Получить количетство пользовательских переменных \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+,  \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Проверка существует ли указанная пользовательская переменная \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+,  \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Условие для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\+\_\+assert\+\_\+usertracker}}(\+\_\+cntstruct\+\_\+,  \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Тернарный оператор для проверки существует ли указанная пользовательская переменная \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Считать счетчик успешных событий \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Считать счетчик ошибок \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Считать счетчик предупреждений \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User}}(\+\_\+cntstruct\+\_\+,  \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Считать пользовательскую переменную \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Инкрементирование счетчика успешных событий \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Инкрементирование счетчика ошибок \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Инкрементирование счетчика предупреждений \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User}}(\+\_\+cntstruct\+\_\+,  \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Инкрементирование пользовательской переменной \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User}}(\+\_\+cntstruct\+\_\+,  \+\_\+uservarnumb\+\_\+,  \+\_\+val\+\_\+)
\begin{DoxyCompactList}\small\item\em Запись числа в пользовательскую переменную \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка всей структуры \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка счетчика успешных событий \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка счетчика ошибок \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка счетчика предупреждений \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User}}(\+\_\+cntstruct\+\_\+,  \+\_\+uservarnumb\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка пользовательской переменной \end{DoxyCompactList}\item 
\#define \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All}}(\+\_\+cntstruct\+\_\+)
\begin{DoxyCompactList}\small\item\em Очистка всех пользовательских переменных \end{DoxyCompactList}\end{DoxyCompactItemize}


\doxysubsubsubsection{Detailed Description}
Дефайны для работы с трекерами 

~\newline
 Есть дефайн для объявления структуры трекера\+: \doxylink{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}{Tracker\+Type\+Def(num\+\_\+user\+\_\+vars)}. Структура состоит из следующих элементов\+:
\begin{DoxyItemize}
\item cnt\+\_\+ok
\item cnt\+\_\+err
\item cnt\+\_\+warn
\item user\mbox{[}num\+\_\+user\+\_\+vars\mbox{]} ~\newline
 Также есть ряд функций (дефайнов) для обращения к элементам этой структуры.
\end{DoxyItemize}

Параметры для конфигурации\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{TRACKERS\+\_\+\+ENABLE} -\/ Включить трекеры Если трекеры \doxylink{group___t_r_a_c_e___c_o_n_f_i_g_gac9eaedc31ab023ce7d6403999216e496}{TRACKERS\+\_\+\+ENABLE} отключены, то все дефайны определяются как ничего и на производительность кода не влияют ~\newline

\end{DoxyItemize}

\begin{DoxyParagraph}{Пример\+:}

\end{DoxyParagraph}
Определяем typedef трекера измерений Measure\+\_\+\+Tracker\+Type\+Def

\begin{DoxyVerb}  typedef TrackerTypeDef(MEASURE_USER_VARS_NUMB) Measure_TrackerTypeDef;
\end{DoxyVerb}


И через Measure\+\_\+\+Tracker\+Type\+Def структура подключается в другие структуры

Для работы с структурой можно использовать функции\+:
\begin{DoxyItemize}
\item Для получения значения\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}{Tracker\+Get\+\_\+\+Ok()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}{Tracker\+Get\+\_\+\+Err()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}{Tracker\+Get\+\_\+\+Warn()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}{Tracker\+Get\+\_\+\+User(n)}
\end{DoxyItemize}
\item Для записи значения\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}{Tracker\+Cnt\+\_\+\+Ok()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}{Tracker\+Cnt\+\_\+\+Err()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}{Tracker\+Cnt\+\_\+\+Warn()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}{Tracker\+Cnt\+\_\+\+User()}
\item \doxylink{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}{Tracker\+Write\+\_\+\+User(n)}
\end{DoxyItemize}
\item Для очищения значения\+:
\begin{DoxyItemize}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}{Tracker\+Clear\+\_\+\+All()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}{Tracker\+Clear\+\_\+\+Ok()}
\item \doxylink{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}{Tracker\+Clear\+\_\+\+Err()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}{Tracker\+Clear\+\_\+\+Warn()}
\item \doxylink{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}{Tracker\+Clear\+\_\+\+User(n)}
\item \doxylink{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}{Tracker\+Clear\+\_\+\+User\+All()} 
\end{DoxyItemize}
\end{DoxyItemize}

\label{doc-define-members}
\Hypertarget{group___t_r_a_c_k_e_r_s_doc-define-members}
\doxysubsubsubsection{Macro Definition Documentation}
\Hypertarget{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4}\index{Trackers defines@{Trackers defines}!TrackerTypeDef@{TrackerTypeDef}}
\index{TrackerTypeDef@{TrackerTypeDef}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerTypeDef}{TrackerTypeDef}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga50ccb119acf302969b7fdcb58f2130e4} 
\#define Tracker\+Type\+Def(\begin{DoxyParamCaption}\item[{}]{num\+\_\+user\+\_\+vars}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\ \ \textcolor{keyword}{struct\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ }\(\backslash\)}
\DoxyCodeLine{\ \ \{\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ uint32\_t\ cnt\_ok;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ uint32\_t\ cnt\_err;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ uint32\_t\ cnt\_warn;\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \ \ uint32\_t\ user[num\_user\_vars];\ \ \ \ \ \ \ \ \ \ \ \ \ \(\backslash\)}
\DoxyCodeLine{\ \ \}}

\end{DoxyCode}


Структура для счетчиков отладки 


\begin{DoxyParams}{Parameters}
{\em num\+\_\+user\+\_\+vars} & -\/ количество пользовательских переменных\\
\hline
\end{DoxyParams}
Содержит счетчик для успешных событый (cnt\+\_\+ok), счетчик для ошибок (cnt\+\_\+err), счетчик для предупреждений (cnt\+\_\+warn).

Также есть возможность объявить пользовательские переменные в количестве $<$num\+\_\+user\+\_\+vars$>$ штук. 

Definition at line \mbox{\hyperlink{trackers_8h_source_l00069}{69}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}\index{Trackers defines@{Trackers defines}!num\_of\_usercnts@{num\_of\_usercnts}}
\index{num\_of\_usercnts@{num\_of\_usercnts}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{num\_of\_usercnts}{num\_of\_usercnts}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc} 
\#define num\+\_\+of\+\_\+usercnts(\begin{DoxyParamCaption}\item[{}]{\+\_\+user\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\textcolor{keyword}{sizeof}(\_user\_)\ /\ \textcolor{keyword}{sizeof}(uint32\_t))}

\end{DoxyCode}


Получить количетство пользовательских переменных 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00079}{79}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}\index{Trackers defines@{Trackers defines}!assert\_usertracker@{assert\_usertracker}}
\index{assert\_usertracker@{assert\_usertracker}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{assert\_usertracker}{assert\_usertracker}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e} 
\#define assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{((\_uservarnumb\_)\ <\ \mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga72be24629fedb8bf70e830373d151fbc}{num\_of\_usercnts}}((\_cntstruct\_).user))}

\end{DoxyCode}


Проверка существует ли указанная пользовательская переменная 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00081}{81}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}\index{Trackers defines@{Trackers defines}!if\_assert\_usertracker@{if\_assert\_usertracker}}
\index{if\_assert\_usertracker@{if\_assert\_usertracker}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{if\_assert\_usertracker}{if\_assert\_usertracker}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07} 
\#define if\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\textcolor{keywordflow}{if}(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_))}

\end{DoxyCode}


Условие для проверки существует ли указанная пользовательская переменная 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00083}{83}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}\index{Trackers defines@{Trackers defines}!tern\_assert\_usertracker@{tern\_assert\_usertracker}}
\index{tern\_assert\_usertracker@{tern\_assert\_usertracker}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{tern\_assert\_usertracker}{tern\_assert\_usertracker}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30} 
\#define tern\+\_\+assert\+\_\+usertracker(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_))\ ?\ \_uservarnumb\_\ :\ 0}

\end{DoxyCode}


Тернарный оператор для проверки существует ли указанная пользовательская переменная 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00085}{85}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169}\index{Trackers defines@{Trackers defines}!TrackerGet\_Ok@{TrackerGet\_Ok}}
\index{TrackerGet\_Ok@{TrackerGet\_Ok}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Ok}{TrackerGet\_Ok}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gab880911066605602a966641682090169} 
\#define Tracker\+Get\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_ok}

\end{DoxyCode}


Считать счетчик успешных событий 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00089}{89}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e}\index{Trackers defines@{Trackers defines}!TrackerGet\_Err@{TrackerGet\_Err}}
\index{TrackerGet\_Err@{TrackerGet\_Err}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Err}{TrackerGet\_Err}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga9dc91e6b798a081f95f2ccef2c288e5e} 
\#define Tracker\+Get\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_err}

\end{DoxyCode}


Считать счетчик ошибок 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00091}{91}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758}\index{Trackers defines@{Trackers defines}!TrackerGet\_Warn@{TrackerGet\_Warn}}
\index{TrackerGet\_Warn@{TrackerGet\_Warn}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_Warn}{TrackerGet\_Warn}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga47ac59a406ee74d4cd9fe0fbaf63a758} 
\#define Tracker\+Get\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_warn}

\end{DoxyCode}


Считать счетчик предупреждений 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00093}{93}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb}\index{Trackers defines@{Trackers defines}!TrackerGet\_User@{TrackerGet\_User}}
\index{TrackerGet\_User@{TrackerGet\_User}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerGet\_User}{TrackerGet\_User}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga4b08632669043dfdbd219dda03502bdb} 
\#define Tracker\+Get\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).user[\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_ga39b6ffbc561f8caac276415e1ad32c30}{tern\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)]}

\end{DoxyCode}


Считать пользовательскую переменную 

\begin{DoxyNote}{Note}
Здесь нет проверки -\/ существует ли пользовательская переменная! Есть возможность выйти за границы структуры!!! Чтобы этого избежать можно использовать дефайн \#ref \doxylink{group___t_r_a_c_k_e_r_s_gadd7fd2c6e3a4800f1d5ddab35fd4b43e}{assert\+\_\+usertracker()} \begin{DoxyVerb}  if(assert_usertracker(struct, 0)) {
      TrackerGet_User(struct, 0)
  }
\end{DoxyVerb}
 
\end{DoxyNote}


Definition at line \mbox{\hyperlink{trackers_8h_source_l00105}{105}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Ok@{TrackerCnt\_Ok}}
\index{TrackerCnt\_Ok@{TrackerCnt\_Ok}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Ok}{TrackerCnt\_Ok}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga23de0006aa08984cfeddb6aa5e512fa1} 
\#define Tracker\+Cnt\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_ok++}

\end{DoxyCode}


Инкрементирование счетчика успешных событий 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00110}{110}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Err@{TrackerCnt\_Err}}
\index{TrackerCnt\_Err@{TrackerCnt\_Err}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Err}{TrackerCnt\_Err}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga49af29ab3927cad105c1d2b018a767e9} 
\#define Tracker\+Cnt\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_err++}

\end{DoxyCode}


Инкрементирование счетчика ошибок 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00112}{112}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57}\index{Trackers defines@{Trackers defines}!TrackerCnt\_Warn@{TrackerCnt\_Warn}}
\index{TrackerCnt\_Warn@{TrackerCnt\_Warn}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_Warn}{TrackerCnt\_Warn}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga8017fb05a56a1b667244f1f786fa9c57} 
\#define Tracker\+Cnt\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_warn++}

\end{DoxyCode}


Инкрементирование счетчика предупреждений 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00114}{114}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e}\index{Trackers defines@{Trackers defines}!TrackerCnt\_User@{TrackerCnt\_User}}
\index{TrackerCnt\_User@{TrackerCnt\_User}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerCnt\_User}{TrackerCnt\_User}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga1b7549afc4a1760b54a9b93b0f6d105e} 
\#define Tracker\+Cnt\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]++;}

\end{DoxyCode}


Инкрементирование пользовательской переменной 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00116}{116}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51}\index{Trackers defines@{Trackers defines}!TrackerWrite\_User@{TrackerWrite\_User}}
\index{TrackerWrite\_User@{TrackerWrite\_User}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerWrite\_User}{TrackerWrite\_User}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gad2f4062a9ac8c2ab062a364f640ebc51} 
\#define Tracker\+Write\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{, }\item[{}]{\+\_\+val\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]\ =\ (\_val\_)}

\end{DoxyCode}


Запись числа в пользовательскую переменную 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00118}{118}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b}\index{Trackers defines@{Trackers defines}!TrackerClear\_All@{TrackerClear\_All}}
\index{TrackerClear\_All@{TrackerClear\_All}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_All}{TrackerClear\_All}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga704f7b9f8c65c9bcec48ce7cb77a2d3b} 
\#define Tracker\+Clear\+\_\+\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{memset(\&(\_cntstruct\_),\ 0,\ \textcolor{keyword}{sizeof}(\_cntstruct\_))}

\end{DoxyCode}


Очистка всей структуры 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00121}{121}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9}\index{Trackers defines@{Trackers defines}!TrackerClear\_Ok@{TrackerClear\_Ok}}
\index{TrackerClear\_Ok@{TrackerClear\_Ok}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Ok}{TrackerClear\_Ok}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga5dd8bac8c7ab5832019d55d7a68371b9} 
\#define Tracker\+Clear\+\_\+\+Ok(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_ok\ =\ 0}

\end{DoxyCode}


Очистка счетчика успешных событий 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00123}{123}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74}\index{Trackers defines@{Trackers defines}!TrackerClear\_Err@{TrackerClear\_Err}}
\index{TrackerClear\_Err@{TrackerClear\_Err}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Err}{TrackerClear\_Err}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gae860b6947c6e317e14d40bd7b4b8eb74} 
\#define Tracker\+Clear\+\_\+\+Err(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_err\ =\ 0}

\end{DoxyCode}


Очистка счетчика ошибок 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00125}{125}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead}\index{Trackers defines@{Trackers defines}!TrackerClear\_Warn@{TrackerClear\_Warn}}
\index{TrackerClear\_Warn@{TrackerClear\_Warn}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_Warn}{TrackerClear\_Warn}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga365a8c60bd13b75154feda649dd21ead} 
\#define Tracker\+Clear\+\_\+\+Warn(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{(\_cntstruct\_).cnt\_warn\ =\ 0}

\end{DoxyCode}


Очистка счетчика предупреждений 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00127}{127}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d}\index{Trackers defines@{Trackers defines}!TrackerClear\_User@{TrackerClear\_User}}
\index{TrackerClear\_User@{TrackerClear\_User}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_User}{TrackerClear\_User}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_ga063dab1067005e1600ea32531fdf3f8d} 
\#define Tracker\+Clear\+\_\+\+User(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{, }\item[{}]{\+\_\+uservarnumb\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{\mbox{\hyperlink{group___t_r_a_c_k_e_r_s_gad91d8ca89074270fc040c0449e57cf07}{if\_assert\_usertracker}}(\_cntstruct\_,\ \_uservarnumb\_)\ (\_cntstruct\_).user[\_uservarnumb\_]\ =\ 0;}

\end{DoxyCode}


Очистка пользовательской переменной 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00129}{129}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

\Hypertarget{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5}\index{Trackers defines@{Trackers defines}!TrackerClear\_UserAll@{TrackerClear\_UserAll}}
\index{TrackerClear\_UserAll@{TrackerClear\_UserAll}!Trackers defines@{Trackers defines}}
\doxysubsubsubsubsection{\texorpdfstring{TrackerClear\_UserAll}{TrackerClear\_UserAll}}
{\footnotesize\ttfamily \label{group___t_r_a_c_k_e_r_s_gaaec7ec19977bb26fa1919dfe920b82d5} 
\#define Tracker\+Clear\+\_\+\+User\+All(\begin{DoxyParamCaption}\item[{}]{\+\_\+cntstruct\+\_\+}{}\end{DoxyParamCaption})}

{\bfseries Value\+:}
\begin{DoxyCode}{0}
\DoxyCodeLine{memset(\&(\_cntstruct\_).user,\ 0,\ \textcolor{keyword}{sizeof}((\_cntstruct\_).user))}

\end{DoxyCode}


Очистка всех пользовательских переменных 



Definition at line \mbox{\hyperlink{trackers_8h_source_l00131}{131}} of file \mbox{\hyperlink{trackers_8h_source}{trackers.\+h}}.

