Сделана независимость .h библиотек от таргета и HAL (насколько возможно)

This commit is contained in:
2025-10-20 08:48:22 +03:00
parent caf08ca619
commit 37843e4bef
48 changed files with 2457 additions and 2078 deletions

View File

@@ -64,9 +64,10 @@
<a href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971"/>
<a href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga71a0c240c667e976d9caef391ab767ba"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1"/>
<a href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaff223481fcffea77394a331afde29fdc"/>
<a href="group___g_p_i_o___i_n_i_t.html"/>
<a href="group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9"/>
@@ -229,6 +230,7 @@
<a href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8"/>
<a href="struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5"/>
<a href="struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d"/>
<a href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a"/>
<a href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6"/>
<a href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1"/>
<a href="struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d"/>

File diff suppressed because one or more lines are too long

View File

@@ -2,6 +2,7 @@ var evolve__optimizer_8h =
[
[ "PARAM_SCALE_Q16", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaff223481fcffea77394a331afde29fdc", null ],
[ "PARAM_UNSCALE_Q16", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga71a0c240c667e976d9caef391ab767ba", null ],
[ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9", null ],
[ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563", null ]
[ "local_time", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653", null ],
[ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1", null ],
[ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a", null ]
];

File diff suppressed because one or more lines are too long

View File

@@ -172,6 +172,7 @@ $(function(){initNavTree('functions.html','',''); });
<li>sConfig&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">TIM_EncoderTypeDef</a></li>
<li>size&#160;:&#160;<a class="el" href="struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699">RTT_FlashHeader_t</a></li>
<li>sMasterConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">TIM_SettingsTypeDef</a></li>
<li>sorted_idx&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">EvolveOptimizer_t</a></li>
<li>sSlaveConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">TIM_SettingsTypeDef</a></li>
<li>state&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">GPIO_LEDTypeDef</a></li>
<li>sTickBasePrescaler&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">TIM_SettingsTypeDef</a></li>

View File

@@ -172,6 +172,7 @@ $(function(){initNavTree('functions_vars.html','',''); });
<li>sConfig&#160;:&#160;<a class="el" href="struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5">TIM_EncoderTypeDef</a></li>
<li>size&#160;:&#160;<a class="el" href="struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699">RTT_FlashHeader_t</a></li>
<li>sMasterConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21">TIM_SettingsTypeDef</a></li>
<li>sorted_idx&#160;:&#160;<a class="el" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">EvolveOptimizer_t</a></li>
<li>sSlaveConfig&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969">TIM_SettingsTypeDef</a></li>
<li>state&#160;:&#160;<a class="el" href="struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435">GPIO_LEDTypeDef</a></li>
<li>sTickBasePrescaler&#160;:&#160;<a class="el" href="struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718">TIM_SettingsTypeDef</a></li>

View File

@@ -129,8 +129,8 @@ $(function(){initNavTree('globals.html','',''); });
<li>ENABLE_EVOLVE_OPTIMIZATION&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga2cac097081444a7a9b040f4b11550e47">mylibs_config.h</a></li>
<li>EVOLVE_MAX_CANDIDATES&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971">mylibs_config.h</a></li>
<li>EVOLVE_MAX_PARAMS&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee">mylibs_config.h</a></li>
<li>EvolveOptimizer_Init()&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9">evolve_optimizer.h</a></li>
<li>EvolveOptimizer_Step()&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563">evolve_optimizer.h</a></li>
<li>EvolveOptimizer_Init()&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1">evolve_optimizer.h</a></li>
<li>EvolveOptimizer_Step()&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a">evolve_optimizer.h</a></li>
</ul>
@@ -181,6 +181,7 @@ $(function(){initNavTree('globals.html','',''); });
<li>LED_OFF&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29">general_gpio.h</a></li>
<li>LED_ON&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25">general_gpio.h</a></li>
<li>LED_PWM_TICKS&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">general_gpio.h</a></li>
<li>local_time&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653">evolve_optimizer.h</a></li>
<li>LOG_LEVEL&#160;:&#160;<a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga0b87e0d3bf5853bcbb0b66a7c48fdc05">mylibs_config.h</a></li>
<li>log_printf&#160;:&#160;<a class="el" href="group___t_r_a_c_e___s_e_r_i_a_l.html#ga730fb7b8d0bbb348dca73c15bd0e0b26">trace.h</a></li>
</ul>

View File

@@ -162,6 +162,7 @@ $(function(){initNavTree('globals_defs.html','',''); });
<li>LED_OFF&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga80700bb63bd56ebabbb4728aa433fd29">general_gpio.h</a></li>
<li>LED_ON&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#gaf2e697ac60e05813d45ea2c9c9e79c25">general_gpio.h</a></li>
<li>LED_PWM_TICKS&#160;:&#160;<a class="el" href="group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023">general_gpio.h</a></li>
<li>local_time&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653">evolve_optimizer.h</a></li>
<li>LOG_LEVEL&#160;:&#160;<a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga0b87e0d3bf5853bcbb0b66a7c48fdc05">mylibs_config.h</a></li>
<li>log_printf&#160;:&#160;<a class="el" href="group___t_r_a_c_e___s_e_r_i_a_l.html#ga730fb7b8d0bbb348dca73c15bd0e0b26">trace.h</a></li>
</ul>

View File

@@ -100,8 +100,8 @@ $(function(){initNavTree('globals_func.html','',''); });
<div class="textblock">Here is a list of all documented functions with links to the documentation:</div>
<h3 class="doxsection"><a id="index_e" name="index_e"></a>- e -</h3><ul>
<li>EvolveOptimizer_Init()&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9">evolve_optimizer.h</a></li>
<li>EvolveOptimizer_Step()&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563">evolve_optimizer.h</a></li>
<li>EvolveOptimizer_Init()&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1">evolve_optimizer.h</a></li>
<li>EvolveOptimizer_Step()&#160;:&#160;<a class="el" href="group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a">evolve_optimizer.h</a></li>
</ul>

File diff suppressed because one or more lines are too long

View File

@@ -7,10 +7,12 @@ var group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r =
[ "iq_mutation", "struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5", null ],
[ "cand_index", "struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae", null ],
[ "loss", "struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d", null ],
[ "candidates", "struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d", null ]
[ "candidates", "struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d", null ],
[ "sorted_idx", "struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a", null ]
] ],
[ "PARAM_SCALE_Q16", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaff223481fcffea77394a331afde29fdc", null ],
[ "PARAM_UNSCALE_Q16", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga71a0c240c667e976d9caef391ab767ba", null ],
[ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9", null ],
[ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563", null ]
[ "local_time", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653", null ],
[ "EvolveOptimizer_Init", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1", null ],
[ "EvolveOptimizer_Step", "group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a", null ]
];

View File

@@ -162,7 +162,7 @@ Macros</h2></td></tr>
<li>GPIO_TRACE_ENABLE определён - устанавливает бит сброса через BSRR ((<em>pin</em>)&lt;&lt;16) </li>
</ul>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00138">138</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00142">142</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -199,7 +199,7 @@ Macros</h2></td></tr>
<li>GPIO_TRACE_ENABLE определён - устанавливает бит установки через BSRR (<em>pin</em>) </li>
</ul>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00137">137</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00141">141</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>

View File

@@ -140,7 +140,19 @@ Functions</h2></td></tr>
<li>Для восстановления последнего HardFault используется <a class="el" href="#ga03f8b6f3b537ee1c8e91065c60db504f" title="Проверка и вывод последнего HardFault-трейса из Flash.">HF_CheckRecovered()</a>, который:<ol type="1">
<li>Читает запись во Flash по базовому тегу.</li>
<li>Выводит сохранённый RTT буфер и контекст регистров.</li>
<li>Опционально стирает Flash после восстановления. <div class="fragment"><div class="line"><span class="keywordtype">void</span> Hardfault()</div>
<li>Опционально стирает Flash после восстановления.</li>
</ol>
</li>
</ul>
<p>Параметры:</p><ul>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga47f454f804b4dbc26cae079e8d8641e6">HARDFAULT_SERIAL_TRACE</a> - Включить обработку и serial трассировку Hardfault Если отключена то вставляются заглушки, никак не влияющие на параметры и остальную программу</li>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#gadc960255719c7eff4bdfaa850be9b313">HF_RTT_TAG_BASE</a> - Базовый тег RTT Flash для HardFault</li>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#gafcc7ea03d4df8f1909e580b519a7f3ca">HF_RTT_TAIL_SIZE</a> - Размер буфера RTT, который сохранится при Hardfault</li>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#gaa31234688b333a505aaa57b8ecdedf5b">HF_STACK_DUMP_WORDS</a> - Сколько слов стека будет проанализировано во время Hardfault</li>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga0c602733a4a359bf8c095d71cd4d0f63">HF_FLASH_ADDR</a> - Адрес FLASH куда положится RTT буфер</li>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga92d0d14732edb7dfa21d483304bdb051">HF_RAM_END</a> - Конец RAM памяти (чтобы во время анализа стека не выйти за пределы)</li>
</ul>
<div class="fragment"><div class="line"><span class="keywordtype">void</span> Hardfault()</div>
<div class="line">{</div>
<div class="line"> <a class="code hl_function" href="#gadd8e10e7ec3b0204f7f92062ecd452f7">HF_HandleFault</a>();</div>
<div class="line"> NVIC_SystemReset();</div>
@@ -154,14 +166,10 @@ Functions</h2></td></tr>
<div class="line"> <a class="code hl_function" href="group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga8d8c6850e32b42871faefce3352012d1">RTT_EraseFlash</a>(); <span class="comment">// erase rtt flash after message readed</span></div>
<div class="line"> }</div>
<div class="line">} </div>
<div class="ttc" id="agroup___t_r_a_c_e___h_a_r_d_f_a_u_l_t_html_ga03f8b6f3b537ee1c8e91065c60db504f"><div class="ttname"><a href="#ga03f8b6f3b537ee1c8e91065c60db504f">HF_CheckRecovered</a></div><div class="ttdeci">__STATIC_FORCEINLINE int HF_CheckRecovered(int erase)</div><div class="ttdoc">Проверка и вывод последнего HardFault-трейса из Flash.</div><div class="ttdef"><b>Definition</b> <a href="trace_8h_source.html#l00464">trace.h:464</a></div></div>
<div class="ttc" id="agroup___t_r_a_c_e___h_a_r_d_f_a_u_l_t_html_gadd8e10e7ec3b0204f7f92062ecd452f7"><div class="ttname"><a href="#gadd8e10e7ec3b0204f7f92062ecd452f7">HF_HandleFault</a></div><div class="ttdeci">__STATIC_FORCEINLINE void HF_HandleFault(void)</div><div class="ttdoc">Обработчик HardFault.</div><div class="ttdef"><b>Definition</b> <a href="trace_8h_source.html#l00505">trace.h:505</a></div></div>
<div class="ttc" id="agroup___t_r_a_c_e___r_t_t___f_l_a_s_h_html_ga8d8c6850e32b42871faefce3352012d1"><div class="ttname"><a href="group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga8d8c6850e32b42871faefce3352012d1">RTT_EraseFlash</a></div><div class="ttdeci">__STATIC_FORCEINLINE int RTT_EraseFlash(void)</div><div class="ttdoc">Стирание сектора Flash с RTT-буфером</div><div class="ttdef"><b>Definition</b> <a href="trace_8h_source.html#l00363">trace.h:363</a></div></div>
</div><!-- fragment --> </li>
</ol>
</li>
</ul>
<a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
<div class="ttc" id="agroup___t_r_a_c_e___h_a_r_d_f_a_u_l_t_html_ga03f8b6f3b537ee1c8e91065c60db504f"><div class="ttname"><a href="#ga03f8b6f3b537ee1c8e91065c60db504f">HF_CheckRecovered</a></div><div class="ttdeci">__STATIC_FORCEINLINE int HF_CheckRecovered(int erase)</div><div class="ttdoc">Проверка и вывод последнего HardFault-трейса из Flash.</div><div class="ttdef"><b>Definition</b> <a href="trace_8h_source.html#l00486">trace.h:486</a></div></div>
<div class="ttc" id="agroup___t_r_a_c_e___h_a_r_d_f_a_u_l_t_html_gadd8e10e7ec3b0204f7f92062ecd452f7"><div class="ttname"><a href="#gadd8e10e7ec3b0204f7f92062ecd452f7">HF_HandleFault</a></div><div class="ttdeci">__STATIC_FORCEINLINE void HF_HandleFault(void)</div><div class="ttdoc">Обработчик HardFault.</div><div class="ttdef"><b>Definition</b> <a href="trace_8h_source.html#l00527">trace.h:527</a></div></div>
<div class="ttc" id="agroup___t_r_a_c_e___r_t_t___f_l_a_s_h_html_ga8d8c6850e32b42871faefce3352012d1"><div class="ttname"><a href="group___t_r_a_c_e___r_t_t___f_l_a_s_h.html#ga8d8c6850e32b42871faefce3352012d1">RTT_EraseFlash</a></div><div class="ttdeci">__STATIC_FORCEINLINE int RTT_EraseFlash(void)</div><div class="ttdoc">Стирание сектора Flash с RTT-буфером</div><div class="ttdef"><b>Definition</b> <a href="trace_8h_source.html#l00375">trace.h:375</a></div></div>
</div><!-- fragment --> <a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
<a id="ga03f8b6f3b537ee1c8e91065c60db504f" name="ga03f8b6f3b537ee1c8e91065c60db504f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga03f8b6f3b537ee1c8e91065c60db504f">&#9670;&#160;</a></span>HF_CheckRecovered()</h2>
@@ -186,7 +194,7 @@ Functions</h2></td></tr>
</dd></dl>
<dl class="section note"><dt>Note</dt><dd>Вызов рекомендуется при инициализации приложения для анализа предыдущего сбоя. </dd></dl>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00464">464</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00486">486</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -216,7 +224,7 @@ Functions</h2></td></tr>
</ol>
<dl class="section note"><dt>Note</dt><dd>Функция защищена, так как вызывается в контексте сбоя — минимизирует использование вызовов HAL. </dd></dl>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00505">505</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00527">527</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>

View File

@@ -142,7 +142,14 @@ Functions</h2></td></tr>
если слот с таким тегом уже занят, запись не выполняется. <br />
</li>
<li>Автоинкремент позволяет хранить несколько последовательных записей в пределах одного базового тега, <br />
без необходимости вручную отслеживать адреса Flash или позиции буферов. </li>
без необходимости вручную отслеживать адреса Flash или позиции буферов. <br />
</li>
</ul>
<p>Параметры:</p><ul>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga501312b24e322de4dd6755ad442f0ba3">RTT_FLASH_BUFFER_SIZE</a> - Размер буфера RTT в Flash</li>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga3bc1b76864e1d32cbdd174d4caae7724">RTT_FLASH_SECTOR</a> - Сектор FLASH куда положится RTT буфер</li>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga8e56f75d3ab8a89ddde1404ae23c3297">RTT_FLASH_SECTOR_START</a> - Начало сектора RTT_FLASH_SECTOR</li>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#gafeca0be3688dea07ff443f894668003d">RTT_FLASH_SECTOR_END</a> - Конец сектора RTT_FLASH_SECTOR </li>
</ul>
<a name="doc-func-members" id="doc-func-members"></a><h2 id="header-doc-func-members" class="groupheader">Function Documentation</h2>
<a id="ga21353cb4f5af666237739e62ce019cd6" name="ga21353cb4f5af666237739e62ce019cd6"></a>
@@ -163,7 +170,7 @@ Functions</h2></td></tr>
<p>Подготовка Flash к записи </p>
<p>Сбрасывает ошибки Flash и ожидает готовности перед записью </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00179">179</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00190">190</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -201,7 +208,7 @@ Functions</h2></td></tr>
<li>Если конкретный (младший байт != 0) — запись выполняется только с этим тегом, иначе ошибка. </li>
</ul>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00202">202</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00214">214</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -250,7 +257,7 @@ Functions</h2></td></tr>
<li>Если конкретный (младший байт != 0) — прочитывается именно эта запись. </li>
</ul>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00299">299</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00311">311</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -271,7 +278,7 @@ Functions</h2></td></tr>
<p>Стирание сектора Flash с RTT-буфером </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00363">363</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00375">375</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>

View File

@@ -123,9 +123,10 @@ Macros</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<p>Дефайны для работы с serial трассировкой (SWO, RTT) </p>
<p>Определяется дефайн <a class="el" href="#gae9b9b8a611e291a2f2aa5abf99f3ebaa">my_printf()</a> и <a class="el" href="#ga730fb7b8d0bbb348dca73c15bd0e0b26">log_printf()</a> для работы с serial трассировкой:</p><ul>
<li>для RTT это будет вызов функции SEGGER_RTT_printf(), с подключением библиотеки SEGGER_RTT.h</li>
<li><p class="startli">для SWO это будет просто printf()</p>
<p>В зависимости от настроек определяется дефайн <a class="el" href="#gae9b9b8a611e291a2f2aa5abf99f3ebaa">my_printf()</a> и <a class="el" href="#ga730fb7b8d0bbb348dca73c15bd0e0b26">log_printf()</a> для работы с трассировкой:</p><ul>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga76936505ca200d2e61226b7ba68f27c6">SERIAL_TRACE_ENABLE</a> - Если трассировка отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют</li>
<li><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga00ff2175bdc1fb11c8ec970ea3010dd8">RTT_TRACE_ENABLE</a> - для RTT это будет вызов функции SEGGER_RTT_printf(), с подключением библиотеки SEGGER_RTT.h Предварительно надо подключить библиотеку SEGGER RTT и вызвать функцию SEGGER_RTT_Init()</li>
<li><p class="startli"><a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#gab8db9704b5d11858aa879689b9d36336">SWO_TRACE_ENABLE</a> для SWO это будет просто printf()</p>
<p class="startli">Но библиотеку STDOUT надо подключить самостоятельно:</p>
<pre class="fragment"> Manage Run-Time Environment -&gt; Compiler -&gt; I/O -&gt; STDOUT
</pre><p class="startli">Для SWO также надо включить трассировку: <br />
@@ -135,11 +136,9 @@ Macros</h2></td></tr>
<li>Port = SW В вкладке Trace:</li>
<li>Указать Core Clock</li>
<li>Выставить Trace Port = SWO</li>
<li>ITM - выбрать нужный порт (для Keil нулевой порт) <br />
</li>
<li>ITM - выбрать нужный порт (для Keil нулевой порт) </li>
</ul>
</li>
<li>Если трассировка <a class="el" href="group___t_r_a_c_e___c_o_n_f_i_g.html#ga76936505ca200d2e61226b7ba68f27c6">SERIAL_TRACE_ENABLE</a> отключена, то все дефайны определяются как 'ничего' и на производительность кода не влияют </li>
</ul>
<a name="doc-define-members" id="doc-define-members"></a><h2 id="header-doc-define-members" class="groupheader">Macro Definition Documentation</h2>
<a id="gae9b9b8a611e291a2f2aa5abf99f3ebaa" name="gae9b9b8a611e291a2f2aa5abf99f3ebaa"></a>
@@ -165,7 +164,7 @@ Macros</h2></td></tr>
<li>NO_TRACE - пустой макрос </li>
</ul>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00067">67</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00071">71</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -194,7 +193,7 @@ Macros</h2></td></tr>
</div><div class="memdoc">
<b>Value:</b><div class="fragment"><div class="line"><a class="code hl_define" href="#gae9b9b8a611e291a2f2aa5abf99f3ebaa">my_printf</a>(<span class="stringliteral">&quot;\n[%lu] [%s] &quot;</span> fmt, \</div>
<div class="line">(<span class="keywordtype">unsigned</span> <span class="keywordtype">long</span>)uwTick, TAG, ##__VA_ARGS__)</div>
<div class="ttc" id="agroup___t_r_a_c_e___s_e_r_i_a_l_html_gae9b9b8a611e291a2f2aa5abf99f3ebaa"><div class="ttname"><a href="#gae9b9b8a611e291a2f2aa5abf99f3ebaa">my_printf</a></div><div class="ttdeci">#define my_printf(...)</div><div class="ttdoc">Универсальный макрос для вывода трассировки</div><div class="ttdef"><b>Definition</b> <a href="trace_8h_source.html#l00067">trace.h:67</a></div></div>
<div class="ttc" id="agroup___t_r_a_c_e___s_e_r_i_a_l_html_gae9b9b8a611e291a2f2aa5abf99f3ebaa"><div class="ttname"><a href="#gae9b9b8a611e291a2f2aa5abf99f3ebaa">my_printf</a></div><div class="ttdeci">#define my_printf(...)</div><div class="ttdoc">Универсальный макрос для вывода трассировки</div><div class="ttdef"><b>Definition</b> <a href="trace_8h_source.html#l00071">trace.h:71</a></div></div>
</div><!-- fragment -->
<p>Макрос логирования с поддержкой уровней LOG_LEVEL. </p>
<dl class="params"><dt>Parameters</dt><dd>
@@ -210,7 +209,7 @@ Macros</h2></td></tr>
<li>LOG_LEVEL &gt;= 2 - выводится время, TAG, имя файла и номер строки </li>
</ul>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00092">92</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00096">96</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>

File diff suppressed because one or more lines are too long

View File

@@ -230,7 +230,7 @@ $(function(){initNavTree('mylibs__include_8h_source.html','',''); });
<div class="ttc" id="ageneral__gpio_8h_html"><div class="ttname"><a href="general__gpio_8h.html">general_gpio.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации портов и работы с ними.</div></div>
<div class="ttc" id="ageneral__tim_8h_html"><div class="ttname"><a href="general__tim_8h.html">general_tim.h</a></div><div class="ttdoc">Заголовочный файл для модуля инициализации таймеров и работы с ними.</div></div>
<div class="ttc" id="amylibs__defs_8h_html"><div class="ttname"><a href="mylibs__defs_8h.html">mylibs_defs.h</a></div><div class="ttdoc">Заголочный файл для дефайнов библиотеки MyLibsGeneral.</div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html"><div class="ttname"><a href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></div><div class="ttdoc">Структура эволюционного оптимизатора</div><div class="ttdef"><b>Definition</b> <a href="evolve__optimizer_8h_source.html#l00081">evolve_optimizer.h:81</a></div></div>
<div class="ttc" id="astruct_evolve_optimizer__t_html"><div class="ttname"><a href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></div><div class="ttdoc">Структура эволюционного оптимизатора</div><div class="ttdef"><b>Definition</b> <a href="evolve__optimizer_8h_source.html#l00087">evolve_optimizer.h:87</a></div></div>
<div class="ttc" id="atrace_8h_html"><div class="ttname"><a href="trace_8h.html">trace.h</a></div><div class="ttdoc">Заголочный файл для работы с трассировкой.</div></div>
<div class="ttc" id="atrackers_8h_html"><div class="ttname"><a href="trackers_8h.html">trackers.h</a></div><div class="ttdoc">Заголочный файл для работы с трекерами Trackers defines.</div></div>
</div><!-- fragment --></div><!-- contents -->

View File

@@ -64,7 +64,7 @@ var NAVTREE =
var NAVTREEINDEX =
[
"____general__flash_8c_source.html",
"struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e"
"struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5"
];
var SYNCONMSG = 'click to disable panel synchronization';

View File

@@ -53,9 +53,10 @@ var NAVTREEINDEX0 =
"group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971":[1,0,0,1,2],
"group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee":[1,0,0,1,1],
"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html":[1,0,1,1],
"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563":[1,0,1,1,4],
"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga71a0c240c667e976d9caef391ab767ba":[1,0,1,1,2],
"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9":[1,0,1,1,3],
"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a":[1,0,1,1,5],
"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653":[1,0,1,1,3],
"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1":[1,0,1,1,4],
"group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gaff223481fcffea77394a331afde29fdc":[1,0,1,1,1],
"group___g_p_i_o___i_n_i_t.html":[1,0,2,0,0,0],
"group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9":[1,0,2,0,0,0,3],
@@ -218,6 +219,7 @@ var NAVTREEINDEX0 =
"struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8":[1,0,1,1,0,0],
"struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5":[1,0,1,1,0,3],
"struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d":[1,0,1,1,0,6],
"struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a":[1,0,1,1,0,7],
"struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6":[1,0,1,1,0,2],
"struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1":[1,0,1,1,0,1],
"struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d":[1,0,1,1,0,5],
@@ -247,7 +249,5 @@ var NAVTREEINDEX0 =
"struct_r_t_t___flash_header__t.html#ae7276198385c8d6f6508f433d042d52a":[1,0,1,5,2,0,2],
"struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699":[1,0,1,5,2,0,1],
"struct_s_p_i___settings_type_def.html":[2,0,5],
"struct_t_i_m___encoder_type_def.html":[1,0,2,1,1,0],
"struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5":[1,0,2,1,1,0,3],
"struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2":[1,0,2,1,1,0,1]
"struct_t_i_m___encoder_type_def.html":[1,0,2,1,1,0]
};

View File

@@ -1,5 +1,7 @@
var NAVTREEINDEX1 =
{
"struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5":[1,0,2,1,1,0,3],
"struct_t_i_m___encoder_type_def.html#a0dacce3dde7df3122583869d96a372a2":[1,0,2,1,1,0,1],
"struct_t_i_m___encoder_type_def.html#a4fc05ef011205a6702cb3d006bab677e":[1,0,2,1,1,0,5],
"struct_t_i_m___encoder_type_def.html#a67ad037b92162546763fc9c425b5e3c5":[1,0,2,1,1,0,6],
"struct_t_i_m___encoder_type_def.html#a6973108a83d2a3ea4fc3e0e8a501af80":[1,0,2,1,1,0,7],

View File

@@ -10,7 +10,7 @@ var searchData=
['evolve_5fmax_5fcandidates_7',['EVOLVE_MAX_CANDIDATES',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga7c1396e5c95c766afccdb45cbfcf5971',1,'mylibs_config.h']]],
['evolve_5fmax_5fparams_8',['EVOLVE_MAX_PARAMS',['../group___e_v_o_l_v_e___c_o_n_f_i_g.html#ga80d6162495fc3776d8902610657d4fee',1,'mylibs_config.h']]],
['evolve_5foptimizer_2eh_9',['evolve_optimizer.h',['../evolve__optimizer_8h.html',1,'']]],
['evolveoptimizer_5finit_10',['EvolveOptimizer_Init',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9',1,'evolve_optimizer.h']]],
['evolveoptimizer_5fstep_11',['EvolveOptimizer_Step',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563',1,'evolve_optimizer.h']]],
['evolveoptimizer_5finit_10',['EvolveOptimizer_Init',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1',1,'evolve_optimizer.h']]],
['evolveoptimizer_5fstep_11',['EvolveOptimizer_Step',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a',1,'evolve_optimizer.h']]],
['evolveoptimizer_5ft_12',['EvolveOptimizer_t',['../struct_evolve_optimizer__t.html',1,'']]]
];

View File

@@ -14,8 +14,9 @@ var searchData=
['led_5fpwm_5fticks_11',['LED_PWM_TICKS',['../group___g_p_i_o___i_n_i_t.html#ga1d42e219765ec526d99e306638ac0023',1,'general_gpio.h']]],
['libraries_20configs_12',['Libraries configs',['../group___l_i_b_s___c_o_n_f_i_g.html',1,'']]],
['libs_13',['My Libs',['../group___m_y_l_i_b_s___a_l_l.html',1,'']]],
['log_5flevel_14',['LOG_LEVEL',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga0b87e0d3bf5853bcbb0b66a7c48fdc05',1,'mylibs_config.h']]],
['log_5fprintf_15',['log_printf',['../group___t_r_a_c_e___s_e_r_i_a_l.html#ga730fb7b8d0bbb348dca73c15bd0e0b26',1,'trace.h']]],
['loss_16',['loss',['../struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d',1,'EvolveOptimizer_t']]],
['lr_17',['lr',['../struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577',1,'HF_StackFrame_t']]]
['local_5ftime_14',['local_time',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga9c853b02c22f26023c34d1d404b6d653',1,'evolve_optimizer.h']]],
['log_5flevel_15',['LOG_LEVEL',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga0b87e0d3bf5853bcbb0b66a7c48fdc05',1,'mylibs_config.h']]],
['log_5fprintf_16',['log_printf',['../group___t_r_a_c_e___s_e_r_i_a_l.html#ga730fb7b8d0bbb348dca73c15bd0e0b26',1,'trace.h']]],
['loss_17',['loss',['../struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d',1,'EvolveOptimizer_t']]],
['lr_18',['lr',['../struct_h_f___stack_frame__t.html#a6e51904297f7725e96d5b5fb291ef577',1,'HF_StackFrame_t']]]
];

View File

@@ -7,22 +7,23 @@ var searchData=
['serial_5ftrace_5fenable_4',['SERIAL_TRACE_ENABLE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#ga76936505ca200d2e61226b7ba68f27c6',1,'mylibs_config.h']]],
['size_5',['size',['../struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699',1,'RTT_FlashHeader_t']]],
['smasterconfig_6',['sMasterConfig',['../struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21',1,'TIM_SettingsTypeDef']]],
['spi_5fsettingstypedef_7',['SPI_SettingsTypeDef',['../struct_s_p_i___settings_type_def.html',1,'']]],
['sslaveconfig_8',['sSlaveConfig',['../struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969',1,'TIM_SettingsTypeDef']]],
['state_9',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]],
['stickbaseprescaler_10',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]],
['stickbaseus_11',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]],
['stimahbfreqmhz_12',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]],
['stimfreqhz_13',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]],
['stimmode_14',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]],
['sw_15',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]],
['sw_5factivelvl_16',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]],
['sw_5ffilterdelay_17',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]],
['sw_5foff_18',['SW_OFF',['../group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067',1,'general_gpio.h']]],
['sw_5fon_19',['SW_ON',['../group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9',1,'general_gpio.h']]],
['sw_5fpin_20',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]],
['sw_5fport_21',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]],
['sw_5fprevstate_22',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]],
['switch_20tools_23',['Switch tools',['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html',1,'']]],
['swo_5ftrace_5fenable_24',['SWO_TRACE_ENABLE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#gab8db9704b5d11858aa879689b9d36336',1,'mylibs_config.h']]]
['sorted_5fidx_7',['sorted_idx',['../struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a',1,'EvolveOptimizer_t']]],
['spi_5fsettingstypedef_8',['SPI_SettingsTypeDef',['../struct_s_p_i___settings_type_def.html',1,'']]],
['sslaveconfig_9',['sSlaveConfig',['../struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969',1,'TIM_SettingsTypeDef']]],
['state_10',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]],
['stickbaseprescaler_11',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]],
['stickbaseus_12',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]],
['stimahbfreqmhz_13',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]],
['stimfreqhz_14',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]],
['stimmode_15',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]],
['sw_16',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]],
['sw_5factivelvl_17',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]],
['sw_5ffilterdelay_18',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]],
['sw_5foff_19',['SW_OFF',['../group___g_p_i_o___i_n_i_t.html#gacd8900c9ec0efde1da3253b718574067',1,'general_gpio.h']]],
['sw_5fon_20',['SW_ON',['../group___g_p_i_o___i_n_i_t.html#ga19d9e3aced311179a2914e0c9b13d0f9',1,'general_gpio.h']]],
['sw_5fpin_21',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]],
['sw_5fport_22',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]],
['sw_5fprevstate_23',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]],
['switch_20tools_24',['Switch tools',['../group___m_y_l_i_b_s___g_p_i_o___s_w_i_t_c_h.html',1,'']]],
['swo_5ftrace_5fenable_25',['SWO_TRACE_ENABLE',['../group___t_r_a_c_e___c_o_n_f_i_g.html#gab8db9704b5d11858aa879689b9d36336',1,'mylibs_config.h']]]
];

View File

@@ -1,5 +1,5 @@
var searchData=
[
['evolveoptimizer_5finit_0',['EvolveOptimizer_Init',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gac21587fe68fe3635525358ac3f4059d9',1,'evolve_optimizer.h']]],
['evolveoptimizer_5fstep_1',['EvolveOptimizer_Step',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga1ba2fa963c9ae12625be1b7c20718563',1,'evolve_optimizer.h']]]
['evolveoptimizer_5finit_0',['EvolveOptimizer_Init',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#gadaf3a90724197e1737d5c70c7bcc75e1',1,'evolve_optimizer.h']]],
['evolveoptimizer_5fstep_1',['EvolveOptimizer_Step',['../group___e_v_o_l_v_e___o_p_t_i_m_i_z_e_r.html#ga75acd71c85d4e60dc0eb31bc5780086a',1,'evolve_optimizer.h']]]
];

View File

@@ -5,17 +5,18 @@ var searchData=
['sconfig_2',['sConfig',['../struct_t_i_m___encoder_type_def.html#a021f0c585e9e62d68a4b09f630d8b6e5',1,'TIM_EncoderTypeDef']]],
['size_3',['size',['../struct_r_t_t___flash_header__t.html#afd1a5c51af6f97d170c2ccbbe3e34699',1,'RTT_FlashHeader_t']]],
['smasterconfig_4',['sMasterConfig',['../struct_t_i_m___settings_type_def.html#a2d9d277dd395424b964445ec1bc65b21',1,'TIM_SettingsTypeDef']]],
['sslaveconfig_5',['sSlaveConfig',['../struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969',1,'TIM_SettingsTypeDef']]],
['state_6',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]],
['stickbaseprescaler_7',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]],
['stickbaseus_8',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]],
['stimahbfreqmhz_9',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]],
['stimfreqhz_10',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]],
['stimmode_11',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]],
['sw_12',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]],
['sw_5factivelvl_13',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]],
['sw_5ffilterdelay_14',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]],
['sw_5fpin_15',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]],
['sw_5fport_16',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]],
['sw_5fprevstate_17',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]]
['sorted_5fidx_5',['sorted_idx',['../struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a',1,'EvolveOptimizer_t']]],
['sslaveconfig_6',['sSlaveConfig',['../struct_t_i_m___settings_type_def.html#a9694cf0910a69d48ff94f8aeac106969',1,'TIM_SettingsTypeDef']]],
['state_7',['state',['../struct_g_p_i_o___l_e_d_type_def.html#ad28d93023a00e3c5669bd3deda122435',1,'GPIO_LEDTypeDef']]],
['stickbaseprescaler_8',['sTickBasePrescaler',['../struct_t_i_m___settings_type_def.html#a11151fe125960cb8e61328ffd06b7718',1,'TIM_SettingsTypeDef']]],
['stickbaseus_9',['sTickBaseUS',['../struct_t_i_m___settings_type_def.html#a58da1b4c0f6d12d7d9fb2f170b9b9e6e',1,'TIM_SettingsTypeDef']]],
['stimahbfreqmhz_10',['sTimAHBFreqMHz',['../struct_t_i_m___settings_type_def.html#a7073358fd3a722687eb85238ab570014',1,'TIM_SettingsTypeDef']]],
['stimfreqhz_11',['sTimFreqHz',['../struct_t_i_m___settings_type_def.html#af6057ff3f60f5e01b41d4a347b79a5e4',1,'TIM_SettingsTypeDef']]],
['stimmode_12',['sTimMode',['../struct_t_i_m___settings_type_def.html#ab90e370c3edda88e76583293c250d2b0',1,'TIM_SettingsTypeDef']]],
['sw_13',['Sw',['../struct_t_i_m___encoder_type_def.html#a99295760ff8b27d1e6f1710f29383a45',1,'TIM_EncoderTypeDef']]],
['sw_5factivelvl_14',['Sw_ActiveLvl',['../struct_g_p_i_o___switch_type_def.html#a4fadf5ead3ebccad521a52c064eeb405',1,'GPIO_SwitchTypeDef']]],
['sw_5ffilterdelay_15',['Sw_FilterDelay',['../struct_g_p_i_o___switch_type_def.html#a2600e599a961af2e280c721894df4c06',1,'GPIO_SwitchTypeDef']]],
['sw_5fpin_16',['Sw_Pin',['../struct_g_p_i_o___switch_type_def.html#a63d58d9cba49a5823175585ef2996032',1,'GPIO_SwitchTypeDef']]],
['sw_5fport_17',['Sw_Port',['../struct_g_p_i_o___switch_type_def.html#afb369df75a6065fd89ac4ba97d98ab1a',1,'GPIO_SwitchTypeDef']]],
['sw_5fprevstate_18',['Sw_PrevState',['../struct_g_p_i_o___switch_type_def.html#a245f1dc811279ce5d4598582db979a89',1,'GPIO_SwitchTypeDef']]]
];

View File

@@ -110,6 +110,7 @@ $(function(){initNavTree('struct_evolve_optimizer__t.html','',''); });
<tr class="even"><td class="entry"><a class="el" href="struct_evolve_optimizer__t.html#a950cd70cb6bff33b78ad35ee58c729a6">n_best</a></td><td class="entry"><a class="el" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="struct_evolve_optimizer__t.html#ac35c7ca8cede4ab9c53a2845a91cd1b1">n_cand</a></td><td class="entry"><a class="el" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="struct_evolve_optimizer__t.html#a1c270fce82e0c97e6c88fd0971c1eed8">n_params</a></td><td class="entry"><a class="el" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a">sorted_idx</a></td><td class="entry"><a class="el" href="struct_evolve_optimizer__t.html">EvolveOptimizer_t</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
</div><!-- container -->

View File

@@ -122,11 +122,13 @@ Public Attributes</h2></td></tr>
<tr class="memdesc:ac723b265a3d43b754489f14310314f0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loss для каждого кандидата <br /></td></tr>
<tr class="memitem:a61bd0c8ae322a79936ba1f2ae22e0e0d" id="r_a61bd0c8ae322a79936ba1f2ae22e0e0d"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a61bd0c8ae322a79936ba1f2ae22e0e0d">candidates</a> [100][20]</td></tr>
<tr class="memdesc:a61bd0c8ae322a79936ba1f2ae22e0e0d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Параметры кандидатов <br /></td></tr>
<tr class="memitem:a74b81df1c298c99162310f3f7d91735a" id="r_a74b81df1c298c99162310f3f7d91735a"><td class="memItemLeft" align="right" valign="top">uint16_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="#a74b81df1c298c99162310f3f7d91735a">sorted_idx</a> [100]</td></tr>
<tr class="memdesc:a74b81df1c298c99162310f3f7d91735a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Индексы отсортированных кандидатов <br /></td></tr>
</table>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Структура эволюционного оптимизатора </p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00081">81</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00087">87</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
</div><a name="doc-variable-members" id="doc-variable-members"></a><h2 id="header-doc-variable-members" class="groupheader">Member Data Documentation</h2>
<a id="a1c270fce82e0c97e6c88fd0971c1eed8" name="a1c270fce82e0c97e6c88fd0971c1eed8"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1c270fce82e0c97e6c88fd0971c1eed8">&#9670;&#160;</a></span>n_params</h2>
@@ -142,7 +144,7 @@ Public Attributes</h2></td></tr>
<p>Количество параметров </p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00082">82</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00088">88</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
</div>
</div>
@@ -160,7 +162,7 @@ Public Attributes</h2></td></tr>
<p>Количество кандидатов </p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00083">83</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00089">89</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
</div>
</div>
@@ -178,7 +180,7 @@ Public Attributes</h2></td></tr>
<p>Количество лучших, усредняемых </p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00084">84</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00090">90</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
</div>
</div>
@@ -196,7 +198,7 @@ Public Attributes</h2></td></tr>
<p>Амплитуда мутации в Q16.16. </p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00085">85</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00091">91</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
</div>
</div>
@@ -214,7 +216,7 @@ Public Attributes</h2></td></tr>
<p>Индекс кандидата для обработки </p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00086">86</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00092">92</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
</div>
</div>
@@ -232,7 +234,7 @@ Public Attributes</h2></td></tr>
<p>Loss для каждого кандидата </p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00087">87</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00093">93</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
</div>
</div>
@@ -250,7 +252,25 @@ Public Attributes</h2></td></tr>
<p>Параметры кандидатов </p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00088">88</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00094">94</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
</div>
</div>
<a id="a74b81df1c298c99162310f3f7d91735a" name="a74b81df1c298c99162310f3f7d91735a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a74b81df1c298c99162310f3f7d91735a">&#9670;&#160;</a></span>sorted_idx</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
<td class="memname">uint16_t EvolveOptimizer_t::sorted_idx[100]</td>
</tr>
</table>
</div><div class="memdoc">
<p>Индексы отсортированных кандидатов </p>
<p class="definition">Definition at line <a class="el" href="evolve__optimizer_8h_source.html#l00095">95</a> of file <a class="el" href="evolve__optimizer_8h_source.html">evolve_optimizer.h</a>.</p>
</div>
</div>

View File

@@ -6,5 +6,6 @@ var struct_evolve_optimizer__t =
[ "iq_mutation", "struct_evolve_optimizer__t.html#a5391277564b54e2271856a2466033df5", null ],
[ "cand_index", "struct_evolve_optimizer__t.html#a0ae0e63ba351335d4445d927991c64ae", null ],
[ "loss", "struct_evolve_optimizer__t.html#ac723b265a3d43b754489f14310314f0d", null ],
[ "candidates", "struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d", null ]
[ "candidates", "struct_evolve_optimizer__t.html#a61bd0c8ae322a79936ba1f2ae22e0e0d", null ],
[ "sorted_idx", "struct_evolve_optimizer__t.html#a74b81df1c298c99162310f3f7d91735a", null ]
];

View File

@@ -129,7 +129,7 @@ Public Attributes</h2></td></tr>
<div class="textblock"><p>Контекст стек-фрейма процессора при HardFault. </p>
<p>Сохраняет регистры R0-R3, R12, LR, PC, PSR для последующего анализа. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00441">441</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00463">463</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div><a name="doc-variable-members" id="doc-variable-members"></a><h2 id="header-doc-variable-members" class="groupheader">Member Data Documentation</h2>
<a id="a4146ed28926b5f234132b7112119a413" name="a4146ed28926b5f234132b7112119a413"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4146ed28926b5f234132b7112119a413">&#9670;&#160;</a></span>r0</h2>
@@ -145,7 +145,7 @@ Public Attributes</h2></td></tr>
<p>Регистр R0. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00442">442</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00464">464</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -163,7 +163,7 @@ Public Attributes</h2></td></tr>
<p>Регистр R1. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00443">443</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00465">465</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -181,7 +181,7 @@ Public Attributes</h2></td></tr>
<p>Регистр R2. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00444">444</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00466">466</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -199,7 +199,7 @@ Public Attributes</h2></td></tr>
<p>Регистр R3. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00445">445</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00467">467</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -217,7 +217,7 @@ Public Attributes</h2></td></tr>
<p>Регистр R12. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00446">446</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00468">468</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -235,7 +235,7 @@ Public Attributes</h2></td></tr>
<p>Link Register. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00447">447</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00469">469</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -253,7 +253,7 @@ Public Attributes</h2></td></tr>
<p>Program Counter. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00448">448</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00470">470</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -271,7 +271,7 @@ Public Attributes</h2></td></tr>
<p>Program Status Register. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00449">449</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00471">471</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>

View File

@@ -118,7 +118,7 @@ Public Attributes</h2></td></tr>
<a name="details" id="details"></a><h2 id="header-details" class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Структура RTT, которая будет положена в Flash. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00169">169</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00180">180</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div><a name="doc-variable-members" id="doc-variable-members"></a><h2 id="header-doc-variable-members" class="groupheader">Member Data Documentation</h2>
<a id="a844ee5470a323a749856cbb7a682dc57" name="a844ee5470a323a749856cbb7a682dc57"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a844ee5470a323a749856cbb7a682dc57">&#9670;&#160;</a></span>tag</h2>
@@ -134,7 +134,7 @@ Public Attributes</h2></td></tr>
<p>Уникальный идентификатор буфера </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00170">170</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00181">181</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -152,7 +152,7 @@ Public Attributes</h2></td></tr>
<p>Размер данных </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00171">171</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00182">182</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>
@@ -170,7 +170,7 @@ Public Attributes</h2></td></tr>
<p>Буфер RTT. </p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00172">172</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
<p class="definition">Definition at line <a class="el" href="trace_8h_source.html#l00183">183</a> of file <a class="el" href="trace_8h_source.html">trace.h</a>.</p>
</div>
</div>

File diff suppressed because one or more lines are too long

View File

@@ -117,153 +117,154 @@ $(function(){initNavTree('trackers_8h_source.html','',''); });
<div class="line"><a id="l00015" name="l00015"></a><span class="lineno"> 15</span><span class="comment">- user[num_user_vars] </span></div>
<div class="line"><a id="l00016" name="l00016"></a><span class="lineno"> 16</span><span class="comment">Также есть ряд функций (дефайнов) для обращения к элементам этой структуры.</span></div>
<div class="line"><a id="l00017" name="l00017"></a><span class="lineno"> 17</span><span class="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">Если трекеры @ref TRACKERS_ENABLE отключены, то все дефайны определяются как ничего </span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment">и на производительность кода не влияют </span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"></span> </div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment">@par Пример:</span></div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment"></span> </div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment">Определяем typedef трекера измерений Measure_TrackerTypeDef</span></div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment"></span> </div>
<div class="line"><a id="l00026" name="l00026"></a><span class="lineno"> 26</span><span class="comment">@verbatim</span></div>
<div class="line"><a id="l00027" name="l00027"></a><span class="lineno"> 27</span><span class="comment"> typedef TrackerTypeDef(MEASURE_USER_VARS_NUMB) Measure_TrackerTypeDef;</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment">@endverbatim</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">И через @ref Measure_TrackerTypeDef структура подключается в другие структуры</span></div>
<div class="line"><a id="l00031" name="l00031"></a><span class="lineno"> 31</span><span class="comment"></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"> - TrackerGet_Ok()</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"> - TrackerGet_Err()</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"> - TrackerGet_Warn()</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"> - TrackerGet_User(n)</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment"> </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><span class="comment"> - TrackerCnt_Ok()</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment"> - TrackerCnt_Err()</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> - TrackerCnt_Warn()</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment"> - TrackerCnt_User()</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment"> - TrackerWrite_User(n)</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment"> </span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment">- Для очищения значения:</span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment"> - TrackerClear_All()</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment"> - TrackerClear_Ok()</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment"> - TrackerClear_Err()</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment"> - TrackerClear_Warn()</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment"> - TrackerClear_User(n)</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment"> - TrackerClear_UserAll()</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment">* @{ </span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="preprocessor">#ifndef __TRACKERS_H_</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#define __TRACKERS_H_</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor">#include &quot;<a class="code" href="mylibs__defs_8h.html">mylibs_defs.h</a>&quot;</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span> </div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span><span class="preprocessor">#ifdef TRACKERS_ENABLE</span><span class="comment"></span></div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="comment"> /** </span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> * @brief Структура для счетчиков отладки</span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> * @param num_user_vars - количество пользовательских переменных</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> * @details Содержит счетчик для успешных событый (cnt_ok),</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"> * счетчик для ошибок (cnt_err), счетчик для предупреждений (cnt_warn).</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><span class="comment"> * Также есть возможность объявить пользовательские переменные в </span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"> * количестве &lt;num_user_vars&gt; штук.</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment"> */</span><span class="preprocessor"></span></div>
<div class="foldopen" id="foldopen00069" data-start="" data-end="">
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga50ccb119acf302969b7fdcb58f2130e4"> 69</a></span><span class="preprocessor"> #define TrackerTypeDef(num_user_vars) \</span></div>
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"> 70</span><span class="preprocessor"> struct \</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor"> { \</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="preprocessor"> uint32_t cnt_ok; \</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="preprocessor"> uint32_t cnt_err; \</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="preprocessor"> uint32_t cnt_warn; \</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="preprocessor"> uint32_t user[num_user_vars]; \</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="preprocessor"> }</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">- @ref TRACKERS_ENABLE - Включить трекеры</span></div>
<div class="line"><a id="l00020" name="l00020"></a><span class="lineno"> 20</span><span class="comment"> Если трекеры @ref TRACKERS_ENABLE отключены, то все дефайны определяются как ничего </span></div>
<div class="line"><a id="l00021" name="l00021"></a><span class="lineno"> 21</span><span class="comment"> и на производительность кода не влияют </span></div>
<div class="line"><a id="l00022" name="l00022"></a><span class="lineno"> 22</span><span class="comment"></span> </div>
<div class="line"><a id="l00023" name="l00023"></a><span class="lineno"> 23</span><span class="comment">@par Пример:</span></div>
<div class="line"><a id="l00024" name="l00024"></a><span class="lineno"> 24</span><span class="comment"></span> </div>
<div class="line"><a id="l00025" name="l00025"></a><span class="lineno"> 25</span><span class="comment">Определяем typedef трекера измерений Measure_TrackerTypeDef</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">@verbatim</span></div>
<div class="line"><a id="l00028" name="l00028"></a><span class="lineno"> 28</span><span class="comment"> typedef TrackerTypeDef(MEASURE_USER_VARS_NUMB) Measure_TrackerTypeDef;</span></div>
<div class="line"><a id="l00029" name="l00029"></a><span class="lineno"> 29</span><span class="comment">@endverbatim</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">И через @ref Measure_TrackerTypeDef структура подключается в другие структуры</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">- Для получения значения:</span></div>
<div class="line"><a id="l00035" name="l00035"></a><span class="lineno"> 35</span><span class="comment"> - TrackerGet_Ok()</span></div>
<div class="line"><a id="l00036" name="l00036"></a><span class="lineno"> 36</span><span class="comment"> - TrackerGet_Err()</span></div>
<div class="line"><a id="l00037" name="l00037"></a><span class="lineno"> 37</span><span class="comment"> - TrackerGet_Warn()</span></div>
<div class="line"><a id="l00038" name="l00038"></a><span class="lineno"> 38</span><span class="comment"> - TrackerGet_User(n)</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><span class="comment">- Для записи значения:</span></div>
<div class="line"><a id="l00041" name="l00041"></a><span class="lineno"> 41</span><span class="comment"> - TrackerCnt_Ok()</span></div>
<div class="line"><a id="l00042" name="l00042"></a><span class="lineno"> 42</span><span class="comment"> - TrackerCnt_Err()</span></div>
<div class="line"><a id="l00043" name="l00043"></a><span class="lineno"> 43</span><span class="comment"> - TrackerCnt_Warn()</span></div>
<div class="line"><a id="l00044" name="l00044"></a><span class="lineno"> 44</span><span class="comment"> - TrackerCnt_User()</span></div>
<div class="line"><a id="l00045" name="l00045"></a><span class="lineno"> 45</span><span class="comment"> - TrackerWrite_User(n)</span></div>
<div class="line"><a id="l00046" name="l00046"></a><span class="lineno"> 46</span><span class="comment"> </span></div>
<div class="line"><a id="l00047" name="l00047"></a><span class="lineno"> 47</span><span class="comment">- Для очищения значения:</span></div>
<div class="line"><a id="l00048" name="l00048"></a><span class="lineno"> 48</span><span class="comment"> - TrackerClear_All()</span></div>
<div class="line"><a id="l00049" name="l00049"></a><span class="lineno"> 49</span><span class="comment"> - TrackerClear_Ok()</span></div>
<div class="line"><a id="l00050" name="l00050"></a><span class="lineno"> 50</span><span class="comment"> - TrackerClear_Err()</span></div>
<div class="line"><a id="l00051" name="l00051"></a><span class="lineno"> 51</span><span class="comment"> - TrackerClear_Warn()</span></div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span><span class="comment"> - TrackerClear_User(n)</span></div>
<div class="line"><a id="l00053" name="l00053"></a><span class="lineno"> 53</span><span class="comment"> - TrackerClear_UserAll()</span></div>
<div class="line"><a id="l00054" name="l00054"></a><span class="lineno"> 54</span><span class="comment">* @{ </span></div>
<div class="line"><a id="l00055" name="l00055"></a><span class="lineno"> 55</span><span class="comment">*************************************************************************/</span></div>
<div class="line"><a id="l00056" name="l00056"></a><span class="lineno"> 56</span><span class="preprocessor">#ifndef __TRACKERS_H_</span></div>
<div class="line"><a id="l00057" name="l00057"></a><span class="lineno"> 57</span><span class="preprocessor">#define __TRACKERS_H_</span></div>
<div class="line"><a id="l00058" name="l00058"></a><span class="lineno"> 58</span><span class="preprocessor">#include &quot;<a class="code" href="mylibs__defs_8h.html">mylibs_defs.h</a>&quot;</span></div>
<div class="line"><a id="l00059" name="l00059"></a><span class="lineno"> 59</span> </div>
<div class="line"><a id="l00060" name="l00060"></a><span class="lineno"> 60</span><span class="preprocessor">#ifdef TRACKERS_ENABLE</span><span class="comment"></span></div>
<div class="line"><a id="l00061" name="l00061"></a><span class="lineno"> 61</span><span class="comment"> /** </span></div>
<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"> 62</span><span class="comment"> * @brief Структура для счетчиков отладки</span></div>
<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span><span class="comment"> * @param num_user_vars - количество пользовательских переменных</span></div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span><span class="comment"> * @details Содержит счетчик для успешных событый (cnt_ok),</span></div>
<div class="line"><a id="l00065" name="l00065"></a><span class="lineno"> 65</span><span class="comment"> * счетчик для ошибок (cnt_err), счетчик для предупреждений (cnt_warn).</span></div>
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span><span class="comment"> *</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span><span class="comment"> * Также есть возможность объявить пользовательские переменные в </span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="comment"> * количестве &lt;num_user_vars&gt; штук.</span></div>
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"> 69</span><span class="comment"> */</span><span class="preprocessor"></span></div>
<div class="foldopen" id="foldopen00070" data-start="" data-end="">
<div class="line"><a id="l00070" name="l00070"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga50ccb119acf302969b7fdcb58f2130e4"> 70</a></span><span class="preprocessor"> #define TrackerTypeDef(num_user_vars) \</span></div>
<div class="line"><a id="l00071" name="l00071"></a><span class="lineno"> 71</span><span class="preprocessor"> struct \</span></div>
<div class="line"><a id="l00072" name="l00072"></a><span class="lineno"> 72</span><span class="preprocessor"> { \</span></div>
<div class="line"><a id="l00073" name="l00073"></a><span class="lineno"> 73</span><span class="preprocessor"> uint32_t cnt_ok; \</span></div>
<div class="line"><a id="l00074" name="l00074"></a><span class="lineno"> 74</span><span class="preprocessor"> uint32_t cnt_err; \</span></div>
<div class="line"><a id="l00075" name="l00075"></a><span class="lineno"> 75</span><span class="preprocessor"> uint32_t cnt_warn; \</span></div>
<div class="line"><a id="l00076" name="l00076"></a><span class="lineno"> 76</span><span class="preprocessor"> uint32_t user[num_user_vars]; \</span></div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="preprocessor"> }</span></div>
</div>
<div class="line"><a id="l00077" name="l00077"></a><span class="lineno"> 77</span><span class="comment"></span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"> /** @brief Получить количетство пользовательских переменных */</span></div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga72be24629fedb8bf70e830373d151fbc"> 79</a></span><span class="preprocessor"> #define num_of_usercnts(_user_) (sizeof(_user_) / sizeof(uint32_t))</span><span class="comment"></span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"> 80</span><span class="comment"> /** @brief Проверка существует ли указанная пользовательская переменная */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gadd7fd2c6e3a4800f1d5ddab35fd4b43e"> 81</a></span><span class="preprocessor"> #define assert_usertracker(_cntstruct_, _uservarnumb_) ((_uservarnumb_) &lt; num_of_usercnts((_cntstruct_).user))</span><span class="comment"></span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"> 82</span><span class="comment"> /** @brief Условие для проверки существует ли указанная пользовательская переменная */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gad91d8ca89074270fc040c0449e57cf07"> 83</a></span><span class="preprocessor"> #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(assert_usertracker(_cntstruct_, _uservarnumb_))</span><span class="comment"></span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"> 84</span><span class="comment"> /** @brief Тернарный оператор для проверки существует ли указанная пользовательская переменная */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga39b6ffbc561f8caac276415e1ad32c30"> 85</a></span><span class="preprocessor"> #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) (assert_usertracker(_cntstruct_, _uservarnumb_)) ? _uservarnumb_ : 0</span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"> 86</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"> /** @brief Считать счетчик успешных событий */</span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gab880911066605602a966641682090169"> 89</a></span><span class="preprocessor"> #define TrackerGet_Ok(_cntstruct_) (_cntstruct_).cnt_ok</span><span class="comment"></span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"> 90</span><span class="comment"> /** @brief Считать счетчик ошибок */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga9dc91e6b798a081f95f2ccef2c288e5e"> 91</a></span><span class="preprocessor"> #define TrackerGet_Err(_cntstruct_) (_cntstruct_).cnt_err</span><span class="comment"></span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"> 92</span><span class="comment"> /** @brief Считать счетчик предупреждений */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga47ac59a406ee74d4cd9fe0fbaf63a758"> 93</a></span><span class="preprocessor"> #define TrackerGet_Warn(_cntstruct_) (_cntstruct_).cnt_warn</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"> * @brief Считать пользовательскую переменную </span></div>
<div class="line"><a id="l00096" name="l00096"></a><span class="lineno"> 96</span><span class="comment"> * @note Здесь нет проверки - существует ли пользовательская переменная! </span></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="comment"> * Чтобы этого избежать можно использовать дефайн #ref assert_usertracker()</span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"> @verbatim </span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> if(assert_usertracker(struct, 0)) {</span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> TrackerGet_User(struct, 0)</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"> @endverbatim</span></div>
<div class="line"><a id="l00104" name="l00104"></a><span class="lineno"> 104</span><span class="comment"> */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga4b08632669043dfdbd219dda03502bdb"> 105</a></span><span class="preprocessor"> #define TrackerGet_User(_cntstruct_, _uservarnumb_) (_cntstruct_).user[tern_assert_usertracker(_cntstruct_, _uservarnumb_)]</span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"> 106</span> </div>
<div class="line"><a id="l00078" name="l00078"></a><span class="lineno"> 78</span><span class="comment"></span> </div>
<div class="line"><a id="l00079" name="l00079"></a><span class="lineno"> 79</span><span class="comment"> /** @brief Получить количетство пользовательских переменных */</span></div>
<div class="line"><a id="l00080" name="l00080"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga72be24629fedb8bf70e830373d151fbc"> 80</a></span><span class="preprocessor"> #define num_of_usercnts(_user_) (sizeof(_user_) / sizeof(uint32_t))</span><span class="comment"></span></div>
<div class="line"><a id="l00081" name="l00081"></a><span class="lineno"> 81</span><span class="comment"> /** @brief Проверка существует ли указанная пользовательская переменная */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00082" name="l00082"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gadd7fd2c6e3a4800f1d5ddab35fd4b43e"> 82</a></span><span class="preprocessor"> #define assert_usertracker(_cntstruct_, _uservarnumb_) ((_uservarnumb_) &lt; num_of_usercnts((_cntstruct_).user))</span><span class="comment"></span></div>
<div class="line"><a id="l00083" name="l00083"></a><span class="lineno"> 83</span><span class="comment"> /** @brief Условие для проверки существует ли указанная пользовательская переменная */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00084" name="l00084"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gad91d8ca89074270fc040c0449e57cf07"> 84</a></span><span class="preprocessor"> #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(assert_usertracker(_cntstruct_, _uservarnumb_))</span><span class="comment"></span></div>
<div class="line"><a id="l00085" name="l00085"></a><span class="lineno"> 85</span><span class="comment"> /** @brief Тернарный оператор для проверки существует ли указанная пользовательская переменная */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00086" name="l00086"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga39b6ffbc561f8caac276415e1ad32c30"> 86</a></span><span class="preprocessor"> #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) (assert_usertracker(_cntstruct_, _uservarnumb_)) ? _uservarnumb_ : 0</span></div>
<div class="line"><a id="l00087" name="l00087"></a><span class="lineno"> 87</span> </div>
<div class="line"><a id="l00088" name="l00088"></a><span class="lineno"> 88</span> <span class="comment"></span></div>
<div class="line"><a id="l00089" name="l00089"></a><span class="lineno"> 89</span><span class="comment"> /** @brief Считать счетчик успешных событий */</span></div>
<div class="line"><a id="l00090" name="l00090"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gab880911066605602a966641682090169"> 90</a></span><span class="preprocessor"> #define TrackerGet_Ok(_cntstruct_) (_cntstruct_).cnt_ok</span><span class="comment"></span></div>
<div class="line"><a id="l00091" name="l00091"></a><span class="lineno"> 91</span><span class="comment"> /** @brief Считать счетчик ошибок */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00092" name="l00092"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga9dc91e6b798a081f95f2ccef2c288e5e"> 92</a></span><span class="preprocessor"> #define TrackerGet_Err(_cntstruct_) (_cntstruct_).cnt_err</span><span class="comment"></span></div>
<div class="line"><a id="l00093" name="l00093"></a><span class="lineno"> 93</span><span class="comment"> /** @brief Считать счетчик предупреждений */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00094" name="l00094"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga47ac59a406ee74d4cd9fe0fbaf63a758"> 94</a></span><span class="preprocessor"> #define TrackerGet_Warn(_cntstruct_) (_cntstruct_).cnt_warn</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="comment"> * @brief Считать пользовательскую переменную </span></div>
<div class="line"><a id="l00097" name="l00097"></a><span class="lineno"> 97</span><span class="comment"> * @note Здесь нет проверки - существует ли пользовательская переменная! </span></div>
<div class="line"><a id="l00098" name="l00098"></a><span class="lineno"> 98</span><span class="comment"> * Есть возможность выйти за границы структуры!!! </span></div>
<div class="line"><a id="l00099" name="l00099"></a><span class="lineno"> 99</span><span class="comment"> * Чтобы этого избежать можно использовать дефайн #ref assert_usertracker()</span></div>
<div class="line"><a id="l00100" name="l00100"></a><span class="lineno"> 100</span><span class="comment"> @verbatim </span></div>
<div class="line"><a id="l00101" name="l00101"></a><span class="lineno"> 101</span><span class="comment"> if(assert_usertracker(struct, 0)) {</span></div>
<div class="line"><a id="l00102" name="l00102"></a><span class="lineno"> 102</span><span class="comment"> TrackerGet_User(struct, 0)</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><span class="comment"> @endverbatim</span></div>
<div class="line"><a id="l00105" name="l00105"></a><span class="lineno"> 105</span><span class="comment"> */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00106" name="l00106"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga4b08632669043dfdbd219dda03502bdb"> 106</a></span><span class="preprocessor"> #define TrackerGet_User(_cntstruct_, _uservarnumb_) (_cntstruct_).user[tern_assert_usertracker(_cntstruct_, _uservarnumb_)]</span></div>
<div class="line"><a id="l00107" name="l00107"></a><span class="lineno"> 107</span> </div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> <span class="comment"></span></div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span><span class="comment"> /** @brief Инкрементирование счетчика успешных событий */</span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga23de0006aa08984cfeddb6aa5e512fa1"> 110</a></span><span class="preprocessor"> #define TrackerCnt_Ok(_cntstruct_) (_cntstruct_).cnt_ok++</span><span class="comment"></span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"> 111</span><span class="comment"> /** @brief Инкрементирование счетчика ошибок */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga49af29ab3927cad105c1d2b018a767e9"> 112</a></span><span class="preprocessor"> #define TrackerCnt_Err(_cntstruct_) (_cntstruct_).cnt_err++</span><span class="comment"></span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"> 113</span><span class="comment"> /** @brief Инкрементирование счетчика предупреждений */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga8017fb05a56a1b667244f1f786fa9c57"> 114</a></span><span class="preprocessor"> #define TrackerCnt_Warn(_cntstruct_) (_cntstruct_).cnt_warn++</span><span class="comment"></span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"> 115</span><span class="comment"> /** @brief Инкрементирование пользовательской переменной */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga1b7549afc4a1760b54a9b93b0f6d105e"> 116</a></span><span class="preprocessor"> #define TrackerCnt_User(_cntstruct_, _uservarnumb_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_]++;</span><span class="comment"></span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"> 117</span><span class="comment"> /** @brief Запись числа в пользовательскую переменную */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gad2f4062a9ac8c2ab062a364f640ebc51"> 118</a></span><span class="preprocessor"> #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = (_val_)</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"> /** @brief Очистка всей структуры */</span></div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga704f7b9f8c65c9bcec48ce7cb77a2d3b"> 121</a></span><span class="preprocessor"> #define TrackerClear_All(_cntstruct_) memset(&amp;(_cntstruct_), 0, sizeof(_cntstruct_))</span><span class="comment"></span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"> 122</span><span class="comment"> /** @brief Очистка счетчика успешных событий */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga5dd8bac8c7ab5832019d55d7a68371b9"> 123</a></span><span class="preprocessor"> #define TrackerClear_Ok(_cntstruct_) (_cntstruct_).cnt_ok = 0</span><span class="comment"></span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"> 124</span><span class="comment"> /** @brief Очистка счетчика ошибок */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gae860b6947c6e317e14d40bd7b4b8eb74"> 125</a></span><span class="preprocessor"> #define TrackerClear_Err(_cntstruct_) (_cntstruct_).cnt_err = 0</span><span class="comment"></span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"> 126</span><span class="comment"> /** @brief Очистка счетчика предупреждений */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga365a8c60bd13b75154feda649dd21ead"> 127</a></span><span class="preprocessor"> #define TrackerClear_Warn(_cntstruct_) (_cntstruct_).cnt_warn = 0</span><span class="comment"></span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="comment"> /** @brief Очистка пользовательской переменной */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga063dab1067005e1600ea32531fdf3f8d"> 129</a></span><span class="preprocessor"> #define TrackerClear_User(_cntstruct_, _uservarnumb_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = 0;</span><span class="comment"></span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"> 130</span><span class="comment"> /** @brief Очистка всех пользовательских переменных */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gaaec7ec19977bb26fa1919dfe920b82d5"> 131</a></span><span class="preprocessor"> #define TrackerClear_UserAll(_cntstruct_) memset(&amp;(_cntstruct_).user, 0, sizeof((_cntstruct_).user))</span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"> 132</span> </div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span><span class="preprocessor">#else </span><span class="comment">//TRACKERS_ENABLE</span></div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span> </div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span><span class="preprocessor"> #define TrackerTypeDef(num_user_vars) void *</span></div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span> </div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span><span class="preprocessor"> #define num_of_usercnts(_user_) 0</span></div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="preprocessor"> #define assert_tracecnt(_cntstruct_, _uservarnumb_) 0</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="preprocessor"> #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(0)</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="preprocessor"> #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) 0</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span> </div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span><span class="preprocessor"> #define TrackerGet_Ok(_cntstruct_) dummy</span></div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="preprocessor"> #define TrackerGet_Err(_cntstruct_) dummy</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="preprocessor"> #define TrackerGet_Warn(_cntstruct_) dummy </span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor"> #define TrackerGet_User(_cntstruct_, _uservarnumb_) dummy</span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span> </div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span><span class="preprocessor"> #define TrackerCnt_Ok(_cntstruct_) </span></div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="preprocessor"> #define TrackerCnt_Err(_cntstruct_) </span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="preprocessor"> #define TrackerCnt_Warn(_cntstruct_) </span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor"> #define TrackerCnt_User(_cntstruct_, _uservarnumb_) </span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="preprocessor"> #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)</span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> </div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span><span class="preprocessor"> #define TrackerClear_All(_cntstruct_) </span></div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="preprocessor"> #define TrackerClear_Ok(_cntstruct_) </span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="preprocessor"> #define TrackerClear_Err(_cntstruct_) </span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="preprocessor"> #define TrackerClear_Warn(_cntstruct_) </span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="preprocessor"> #define TrackerClear_User(_cntstruct_) </span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="preprocessor"> #define TrackerClear_UserAll(_cntstruct_) </span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> </div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span><span class="preprocessor">#endif </span><span class="comment">//TRACKERS_ENABLE</span></div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span> </div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span><span class="preprocessor">#endif </span><span class="comment">//__TRACKERS_H_</span></div>
<div class="line"><a id="l00108" name="l00108"></a><span class="lineno"> 108</span> </div>
<div class="line"><a id="l00109" name="l00109"></a><span class="lineno"> 109</span> <span class="comment"></span></div>
<div class="line"><a id="l00110" name="l00110"></a><span class="lineno"> 110</span><span class="comment"> /** @brief Инкрементирование счетчика успешных событий */</span></div>
<div class="line"><a id="l00111" name="l00111"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga23de0006aa08984cfeddb6aa5e512fa1"> 111</a></span><span class="preprocessor"> #define TrackerCnt_Ok(_cntstruct_) (_cntstruct_).cnt_ok++</span><span class="comment"></span></div>
<div class="line"><a id="l00112" name="l00112"></a><span class="lineno"> 112</span><span class="comment"> /** @brief Инкрементирование счетчика ошибок */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00113" name="l00113"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga49af29ab3927cad105c1d2b018a767e9"> 113</a></span><span class="preprocessor"> #define TrackerCnt_Err(_cntstruct_) (_cntstruct_).cnt_err++</span><span class="comment"></span></div>
<div class="line"><a id="l00114" name="l00114"></a><span class="lineno"> 114</span><span class="comment"> /** @brief Инкрементирование счетчика предупреждений */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00115" name="l00115"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga8017fb05a56a1b667244f1f786fa9c57"> 115</a></span><span class="preprocessor"> #define TrackerCnt_Warn(_cntstruct_) (_cntstruct_).cnt_warn++</span><span class="comment"></span></div>
<div class="line"><a id="l00116" name="l00116"></a><span class="lineno"> 116</span><span class="comment"> /** @brief Инкрементирование пользовательской переменной */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00117" name="l00117"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga1b7549afc4a1760b54a9b93b0f6d105e"> 117</a></span><span class="preprocessor"> #define TrackerCnt_User(_cntstruct_, _uservarnumb_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_]++;</span><span class="comment"></span></div>
<div class="line"><a id="l00118" name="l00118"></a><span class="lineno"> 118</span><span class="comment"> /** @brief Запись числа в пользовательскую переменную */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00119" name="l00119"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gad2f4062a9ac8c2ab062a364f640ebc51"> 119</a></span><span class="preprocessor"> #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = (_val_)</span></div>
<div class="line"><a id="l00120" name="l00120"></a><span class="lineno"> 120</span><span class="comment"></span> </div>
<div class="line"><a id="l00121" name="l00121"></a><span class="lineno"> 121</span><span class="comment"> /** @brief Очистка всей структуры */</span></div>
<div class="line"><a id="l00122" name="l00122"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga704f7b9f8c65c9bcec48ce7cb77a2d3b"> 122</a></span><span class="preprocessor"> #define TrackerClear_All(_cntstruct_) memset(&amp;(_cntstruct_), 0, sizeof(_cntstruct_))</span><span class="comment"></span></div>
<div class="line"><a id="l00123" name="l00123"></a><span class="lineno"> 123</span><span class="comment"> /** @brief Очистка счетчика успешных событий */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00124" name="l00124"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga5dd8bac8c7ab5832019d55d7a68371b9"> 124</a></span><span class="preprocessor"> #define TrackerClear_Ok(_cntstruct_) (_cntstruct_).cnt_ok = 0</span><span class="comment"></span></div>
<div class="line"><a id="l00125" name="l00125"></a><span class="lineno"> 125</span><span class="comment"> /** @brief Очистка счетчика ошибок */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00126" name="l00126"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gae860b6947c6e317e14d40bd7b4b8eb74"> 126</a></span><span class="preprocessor"> #define TrackerClear_Err(_cntstruct_) (_cntstruct_).cnt_err = 0</span><span class="comment"></span></div>
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span><span class="comment"> /** @brief Очистка счетчика предупреждений */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga365a8c60bd13b75154feda649dd21ead"> 128</a></span><span class="preprocessor"> #define TrackerClear_Warn(_cntstruct_) (_cntstruct_).cnt_warn = 0</span><span class="comment"></span></div>
<div class="line"><a id="l00129" name="l00129"></a><span class="lineno"> 129</span><span class="comment"> /** @brief Очистка пользовательской переменной */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00130" name="l00130"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#ga063dab1067005e1600ea32531fdf3f8d"> 130</a></span><span class="preprocessor"> #define TrackerClear_User(_cntstruct_, _uservarnumb_) if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = 0;</span><span class="comment"></span></div>
<div class="line"><a id="l00131" name="l00131"></a><span class="lineno"> 131</span><span class="comment"> /** @brief Очистка всех пользовательских переменных */</span><span class="preprocessor"></span></div>
<div class="line"><a id="l00132" name="l00132"></a><span class="lineno"><a class="line" href="group___t_r_a_c_k_e_r_s.html#gaaec7ec19977bb26fa1919dfe920b82d5"> 132</a></span><span class="preprocessor"> #define TrackerClear_UserAll(_cntstruct_) memset(&amp;(_cntstruct_).user, 0, sizeof((_cntstruct_).user))</span></div>
<div class="line"><a id="l00133" name="l00133"></a><span class="lineno"> 133</span> </div>
<div class="line"><a id="l00134" name="l00134"></a><span class="lineno"> 134</span><span class="preprocessor">#else </span><span class="comment">//TRACKERS_ENABLE</span></div>
<div class="line"><a id="l00135" name="l00135"></a><span class="lineno"> 135</span> </div>
<div class="line"><a id="l00136" name="l00136"></a><span class="lineno"> 136</span><span class="preprocessor"> #define TrackerTypeDef(num_user_vars) void *</span></div>
<div class="line"><a id="l00137" name="l00137"></a><span class="lineno"> 137</span> </div>
<div class="line"><a id="l00138" name="l00138"></a><span class="lineno"> 138</span><span class="preprocessor"> #define num_of_usercnts(_user_) 0</span></div>
<div class="line"><a id="l00139" name="l00139"></a><span class="lineno"> 139</span><span class="preprocessor"> #define assert_tracecnt(_cntstruct_, _uservarnumb_) 0</span></div>
<div class="line"><a id="l00140" name="l00140"></a><span class="lineno"> 140</span><span class="preprocessor"> #define if_assert_usertracker(_cntstruct_, _uservarnumb_) if(0)</span></div>
<div class="line"><a id="l00141" name="l00141"></a><span class="lineno"> 141</span><span class="preprocessor"> #define tern_assert_usertracker(_cntstruct_, _uservarnumb_) 0</span></div>
<div class="line"><a id="l00142" name="l00142"></a><span class="lineno"> 142</span> </div>
<div class="line"><a id="l00143" name="l00143"></a><span class="lineno"> 143</span><span class="preprocessor"> #define TrackerGet_Ok(_cntstruct_) dummy</span></div>
<div class="line"><a id="l00144" name="l00144"></a><span class="lineno"> 144</span><span class="preprocessor"> #define TrackerGet_Err(_cntstruct_) dummy</span></div>
<div class="line"><a id="l00145" name="l00145"></a><span class="lineno"> 145</span><span class="preprocessor"> #define TrackerGet_Warn(_cntstruct_) dummy </span></div>
<div class="line"><a id="l00146" name="l00146"></a><span class="lineno"> 146</span><span class="preprocessor"> #define TrackerGet_User(_cntstruct_, _uservarnumb_) dummy</span></div>
<div class="line"><a id="l00147" name="l00147"></a><span class="lineno"> 147</span> </div>
<div class="line"><a id="l00148" name="l00148"></a><span class="lineno"> 148</span><span class="preprocessor"> #define TrackerCnt_Ok(_cntstruct_) </span></div>
<div class="line"><a id="l00149" name="l00149"></a><span class="lineno"> 149</span><span class="preprocessor"> #define TrackerCnt_Err(_cntstruct_) </span></div>
<div class="line"><a id="l00150" name="l00150"></a><span class="lineno"> 150</span><span class="preprocessor"> #define TrackerCnt_Warn(_cntstruct_) </span></div>
<div class="line"><a id="l00151" name="l00151"></a><span class="lineno"> 151</span><span class="preprocessor"> #define TrackerCnt_User(_cntstruct_, _uservarnumb_) </span></div>
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span><span class="preprocessor"> #define TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)</span></div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> </div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span><span class="preprocessor"> #define TrackerClear_All(_cntstruct_) </span></div>
<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span><span class="preprocessor"> #define TrackerClear_Ok(_cntstruct_) </span></div>
<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span><span class="preprocessor"> #define TrackerClear_Err(_cntstruct_) </span></div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span><span class="preprocessor"> #define TrackerClear_Warn(_cntstruct_) </span></div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span><span class="preprocessor"> #define TrackerClear_User(_cntstruct_) </span></div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span><span class="preprocessor"> #define TrackerClear_UserAll(_cntstruct_) </span></div>
<div class="line"><a id="l00160" name="l00160"></a><span class="lineno"> 160</span> </div>
<div class="line"><a id="l00161" name="l00161"></a><span class="lineno"> 161</span><span class="preprocessor">#endif </span><span class="comment">//TRACKERS_ENABLE</span></div>
<div class="line"><a id="l00162" name="l00162"></a><span class="lineno"> 162</span> </div>
<div class="line"><a id="l00163" name="l00163"></a><span class="lineno"> 163</span><span class="preprocessor">#endif </span><span class="comment">//__TRACKERS_H_</span></div>
<div class="ttc" id="amylibs__defs_8h_html"><div class="ttname"><a href="mylibs__defs_8h.html">mylibs_defs.h</a></div><div class="ttdoc">Заголочный файл для дефайнов библиотеки MyLibsGeneral.</div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->