MyLibs 1.0 Расширенные библиотеки для STM32

Loading...
Searching...
No Matches
Trackers defines
My Libs » Debug Tools

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

Collaboration diagram for Trackers defines:

## Macros
#define | TrackerTypeDef(num_user_vars)
| Структура для счетчиков отладки
#define | num_of_usercnts(_user_)
| Получить количетство пользовательских переменных
#define | assert_usertracker(_cntstruct_, _uservarnumb_)
| Проверка существует ли указанная пользовательская переменная
#define | if_assert_usertracker(_cntstruct_, _uservarnumb_)
| Условие для проверки существует ли указанная пользовательская переменная
#define | tern_assert_usertracker(_cntstruct_, _uservarnumb_)
| Тернарный оператор для проверки существует ли указанная пользовательская переменная
#define | TrackerGet_Ok(_cntstruct_)
| Считать счетчик успешных событий
#define | TrackerGet_Err(_cntstruct_)
| Считать счетчик ошибок
#define | TrackerGet_Warn(_cntstruct_)
| Считать счетчик предупреждений
#define | TrackerGet_User(_cntstruct_, _uservarnumb_)
| Считать пользовательскую переменную
#define | TrackerCnt_Ok(_cntstruct_)
| Инкрементирование счетчика успешных событий
#define | TrackerCnt_Err(_cntstruct_)
| Инкрементирование счетчика ошибок
#define | TrackerCnt_Warn(_cntstruct_)
| Инкрементирование счетчика предупреждений
#define | TrackerCnt_User(_cntstruct_, _uservarnumb_)
| Инкрементирование пользовательской переменной
#define | TrackerWrite_User(_cntstruct_, _uservarnumb_, _val_)
| Запись числа в пользовательскую переменную
#define | TrackerClear_All(_cntstruct_)
| Очистка всей структуры
#define | TrackerClear_Ok(_cntstruct_)
| Очистка счетчика успешных событий
#define | TrackerClear_Err(_cntstruct_)
| Очистка счетчика ошибок
#define | TrackerClear_Warn(_cntstruct_)
| Очистка счетчика предупреждений
#define | TrackerClear_User(_cntstruct_, _uservarnumb_)
| Очистка пользовательской переменной
#define | TrackerClear_UserAll(_cntstruct_)
| Очистка всех пользовательских переменных

## Detailed Description

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

Есть дефайн для объявления структуры трекера: TrackerTypeDef(num_user_vars). Структура состоит из следующих элементов:

- cnt_ok
- cnt_err
- cnt_warn
- user[num_user_vars]
  Также есть ряд функций (дефайнов) для обращения к элементам этой структуры.

Параметры для конфигурации:

- TRACKERS_ENABLE - Включить трекеры Если трекеры TRACKERS_ENABLE отключены, то все дефайны определяются как ничего и на производительность кода не влияют

Пример:

Определяем typedef трекера измерений Measure_TrackerTypeDef

      typedef TrackerTypeDef(MEASURE_USER_VARS_NUMB) Measure_TrackerTypeDef;

И через Measure_TrackerTypeDef структура подключается в другие структуры

Для работы с структурой можно использовать функции:

- Для получения значения:
  - TrackerGet_Ok()
  - TrackerGet_Err()
  - TrackerGet_Warn()
  - TrackerGet_User(n)
- Для записи значения:
  - TrackerCnt_Ok()
  - TrackerCnt_Err()
  - TrackerCnt_Warn()
  - TrackerCnt_User()
  - TrackerWrite_User(n)
- Для очищения значения:
  - TrackerClear_All()
  - TrackerClear_Ok()
  - TrackerClear_Err()
  - TrackerClear_Warn()
  - TrackerClear_User(n)
  - TrackerClear_UserAll()

## Macro Definition Documentation

## ◆ TrackerTypeDef

#define TrackerTypeDef | ( |  | num_user_vars | ) |

Value:
struct \
{ \
uint32_t cnt_ok; \
uint32_t cnt_err; \
uint32_t cnt_warn; \
uint32_t user[num_user_vars]; \
}

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

Parameters

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

Содержит счетчик для успешных событый (cnt_ok), счетчик для ошибок (cnt_err), счетчик для предупреждений (cnt_warn).

Также есть возможность объявить пользовательские переменные в количестве <num_user_vars> штук.

Definition at line 69 of file trackers.h.

## ◆ num_of_usercnts

#define num_of_usercnts | ( |  | _user_ | ) |

Value:
(sizeof(_user_) / sizeof(uint32_t))

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

Definition at line 79 of file trackers.h.

## ◆ assert_usertracker

#define assert_usertracker | ( |  | _cntstruct_,
|  |  | _uservarnumb_ )

Value:
((_uservarnumb_) < num_of_usercnts((_cntstruct_).user))
num_of_usercnts
#define num_of_usercnts(_user_)
Получить количетство пользовательских переменных
Definition trackers.h:79

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

Definition at line 81 of file trackers.h.

## ◆ if_assert_usertracker

#define if_assert_usertracker | ( |  | _cntstruct_,
|  |  | _uservarnumb_ )

Value:
if(assert_usertracker(_cntstruct_, _uservarnumb_))
assert_usertracker
#define assert_usertracker(_cntstruct_, _uservarnumb_)
Проверка существует ли указанная пользовательская переменная
Definition trackers.h:81

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

Definition at line 83 of file trackers.h.

## ◆ tern_assert_usertracker

#define tern_assert_usertracker | ( |  | _cntstruct_,
|  |  | _uservarnumb_ )

Value:
(assert_usertracker(_cntstruct_, _uservarnumb_)) ? _uservarnumb_ : 0

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

Definition at line 85 of file trackers.h.

## ◆ TrackerGet_Ok

#define TrackerGet_Ok | ( |  | _cntstruct_ | ) |

Value:
(_cntstruct_).cnt_ok

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

Definition at line 89 of file trackers.h.

## ◆ TrackerGet_Err

#define TrackerGet_Err | ( |  | _cntstruct_ | ) |

Value:
(_cntstruct_).cnt_err

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

Definition at line 91 of file trackers.h.

## ◆ TrackerGet_Warn

#define TrackerGet_Warn | ( |  | _cntstruct_ | ) |

Value:
(_cntstruct_).cnt_warn

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

Definition at line 93 of file trackers.h.

## ◆ TrackerGet_User

#define TrackerGet_User | ( |  | _cntstruct_,
|  |  | _uservarnumb_ )

Value:
(_cntstruct_).user[tern_assert_usertracker(_cntstruct_, _uservarnumb_)]
tern_assert_usertracker
#define tern_assert_usertracker(_cntstruct_, _uservarnumb_)
Тернарный оператор для проверки существует ли указанная пользовательская переменная
Definition trackers.h:85

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

Note
  Здесь нет проверки - существует ли пользовательская переменная! Есть возможность выйти за границы структуры!!! Чтобы этого избежать можно использовать дефайн #ref assert_usertracker()

        if(assert_usertracker(struct, 0)) {
            TrackerGet_User(struct, 0)
        }

Definition at line 105 of file trackers.h.

## ◆ TrackerCnt_Ok

#define TrackerCnt_Ok | ( |  | _cntstruct_ | ) |

Value:
(_cntstruct_).cnt_ok++

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

Definition at line 110 of file trackers.h.

## ◆ TrackerCnt_Err

#define TrackerCnt_Err | ( |  | _cntstruct_ | ) |

Value:
(_cntstruct_).cnt_err++

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

Definition at line 112 of file trackers.h.

## ◆ TrackerCnt_Warn

#define TrackerCnt_Warn | ( |  | _cntstruct_ | ) |

Value:
(_cntstruct_).cnt_warn++

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

Definition at line 114 of file trackers.h.

## ◆ TrackerCnt_User

#define TrackerCnt_User | ( |  | _cntstruct_,
|  |  | _uservarnumb_ )

Value:
if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_]++;
if_assert_usertracker
#define if_assert_usertracker(_cntstruct_, _uservarnumb_)
Условие для проверки существует ли указанная пользовательская переменная
Definition trackers.h:83

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

Definition at line 116 of file trackers.h.

## ◆ TrackerWrite_User

#define TrackerWrite_User | ( |  | _cntstruct_,
|  |  | _uservarnumb_,
|  |  | _val_ )

Value:
if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = (_val_)

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

Definition at line 118 of file trackers.h.

## ◆ TrackerClear_All

#define TrackerClear_All | ( |  | _cntstruct_ | ) |

Value:
memset(&(_cntstruct_), 0, sizeof(_cntstruct_))

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

Definition at line 121 of file trackers.h.

## ◆ TrackerClear_Ok

#define TrackerClear_Ok | ( |  | _cntstruct_ | ) |

Value:
(_cntstruct_).cnt_ok = 0

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

Definition at line 123 of file trackers.h.

## ◆ TrackerClear_Err

#define TrackerClear_Err | ( |  | _cntstruct_ | ) |

Value:
(_cntstruct_).cnt_err = 0

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

Definition at line 125 of file trackers.h.

## ◆ TrackerClear_Warn

#define TrackerClear_Warn | ( |  | _cntstruct_ | ) |

Value:
(_cntstruct_).cnt_warn = 0

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

Definition at line 127 of file trackers.h.

## ◆ TrackerClear_User

#define TrackerClear_User | ( |  | _cntstruct_,
|  |  | _uservarnumb_ )

Value:
if_assert_usertracker(_cntstruct_, _uservarnumb_) (_cntstruct_).user[_uservarnumb_] = 0;

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

Definition at line 129 of file trackers.h.

## ◆ TrackerClear_UserAll

#define TrackerClear_UserAll | ( |  | _cntstruct_ | ) |

Value:
memset(&(_cntstruct_).user, 0, sizeof((_cntstruct_).user))

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

Definition at line 131 of file trackers.h.