doc ru, printf() before assert in containers
This commit is contained in:
@@ -24,31 +24,94 @@
|
||||
#endif
|
||||
|
||||
|
||||
/*! \class PITimer
|
||||
* \brief Timer
|
||||
*
|
||||
* \section PITimer_sec0 Synopsis
|
||||
* This class implements timer function. PIP timers supports 3 way to tick notify,
|
||||
* frequency delimiters and time measurements.
|
||||
* \section PITimer_sec1 Notify variants
|
||||
* Notify variants:
|
||||
* * "slot" - static function with format void func(void * data, int delimiter);
|
||||
* * event - \a tickEvent();
|
||||
* * virtual function - \a tick().
|
||||
*
|
||||
* All these variants are equivalent, use most applicable.
|
||||
* \section PITimer_sec2 Frequency delimiters
|
||||
* Frequency delimiter is an integer number and "slot" function. If "slot" function is null
|
||||
* timer main "slot" will be used. Each delimiter numbers tick timer will be execute
|
||||
* delimiters or timer main "slot" function with \b delimiter value = delimiter number.
|
||||
* Example: \snippet pitimer.cpp delimiter
|
||||
* \section PITimer_sec3 Time measurements
|
||||
* PITimer can be used as time measurer. Function \a reset() set time mark to current
|
||||
* system time, then functions double elapsed_*() returns time elapsed from this mark.
|
||||
* These functions can returns nano-, micro-, milli- and seconds with suffixes "n", "u", "m"
|
||||
* and "s"
|
||||
* Example: \snippet pitimer.cpp elapsed
|
||||
*/
|
||||
//! \addtogroup Thread
|
||||
//! \{
|
||||
//! \class PITimer pitimer.h
|
||||
//!
|
||||
//! \~\brief
|
||||
//! \~english Timer
|
||||
//! \~russian Таймер
|
||||
//!
|
||||
//! \~\details
|
||||
//!
|
||||
//! \~english \section PITimer_sec0 Synopsis
|
||||
//! \~russian \section PITimer_sec0 Краткий обзор
|
||||
//! \~english
|
||||
//! This class implements timer function. PIP timers supports 3 way to tick notify,
|
||||
//! deferred start and frequency delimiters.
|
||||
//!
|
||||
//! \~russian
|
||||
//! Этот класс реализует таймер. Таймер PIP поддерживает 3 варианта уведомления,
|
||||
//! отложенный старт и делители частоты.
|
||||
//!
|
||||
//!
|
||||
//! \~english \section PITimer_sec1 Notify variants
|
||||
//! \~russian \section PITimer_sec1 Варианты уведомления
|
||||
//! \~english
|
||||
//! Notify variants:
|
||||
//! * "slot" - static function with format void func(void * data, int delimiter) or lambda-function;
|
||||
//! * event - \a tickEvent();
|
||||
//! * virtual function - \a tick().
|
||||
//!
|
||||
//! Lambda should be [ ]( ){ } or [ ](void*){ } format.
|
||||
//!
|
||||
//! All these variants are equivalent, use most applicable.
|
||||
//! \~russian
|
||||
//! Варианты уведомления:
|
||||
//! * "slot" - статический метод в формате void func(void * data, int delimiter) или лямбда-функция;
|
||||
//! * event - \a tickEvent();
|
||||
//! * виртуальный метод - \a tick().
|
||||
//!
|
||||
//! Лямбда-функция должна быть в формате [ ]( ){ } или [ ](void*){ }.
|
||||
//!
|
||||
//! Все варианты аналогичны друг другу, используйте самый удобный.
|
||||
//!
|
||||
//!
|
||||
//! \~english \section PITimer_sec2 Frequency delimiters
|
||||
//! \~russian \section PITimer_sec2 Делители частоты
|
||||
//! \~english
|
||||
//! Frequency delimiter is an integer number and "slot" function. If "slot" function is null
|
||||
//! timer main "slot" will be used. Each delimiter numbers tick timer will be execute
|
||||
//! delimiters or timer main "slot" function with \b delimiter value = delimiter number.
|
||||
//!
|
||||
//! Example:
|
||||
//!
|
||||
//! \~russian
|
||||
//! Делитель частоты это целое число и необязательный метод "slot". Если метод не указан,
|
||||
//! то будет использован основной "slot". Каждые \b delimiter тиков будет дополнительно вызван
|
||||
//! "slot" делителя либо основной "slot" с аргументом \b delimiter равным значению делителя.
|
||||
//!
|
||||
//! Пример:
|
||||
//!
|
||||
//! \~\code
|
||||
//! void tfunc(void * , int delim) {
|
||||
//! piCout << "tick with delimiter" << delim;
|
||||
//! };
|
||||
//! void tfunc4(void * , int delim) {
|
||||
//! piCout << "tick4 with delimiter" << delim;
|
||||
//! };
|
||||
//! int main() {
|
||||
//! PITimer timer(tfunc);
|
||||
//! timer.addDelimiter(2);
|
||||
//! timer.addDelimiter(4, tfunc4);
|
||||
//! timer.start(50);
|
||||
//! piMSleep(200);
|
||||
//! timer.stop();
|
||||
//! timer.waitForFinish();
|
||||
//! return 0;
|
||||
//! };
|
||||
//! /* Result:
|
||||
//! tick with delimiter 1
|
||||
//! tick with delimiter 1
|
||||
//! tick with delimiter 2
|
||||
//! tick with delimiter 1
|
||||
//! tick with delimiter 1
|
||||
//! tick with delimiter 2
|
||||
//! tick4 with delimiter 4
|
||||
//! */
|
||||
//! \endcode
|
||||
//!
|
||||
//! \}
|
||||
|
||||
|
||||
_PITimerBase::_PITimerBase() {
|
||||
@@ -603,23 +666,43 @@ bool PITimer::start(int interval_ms_i) {
|
||||
}
|
||||
|
||||
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! Timer wait "delay_msecs" milliseconds and then normally starts with \a interval() loop delay
|
||||
//! \~russian
|
||||
//! Таймер ожидает "delay_msecs" миллисекунд, а затем стартует с интервалом \a interval()
|
||||
void PITimer::startDeferred(double delay_ms) {
|
||||
init();
|
||||
imp->startDeferred(delay_ms);
|
||||
}
|
||||
|
||||
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! Timer wait "delay_msecs" milliseconds and then normally starts with "interval_msecs" loop delay
|
||||
//! \~russian
|
||||
//! Таймер ожидает "delay_msecs" миллисекунд, а затем стартует с интервалом "interval_msecs"
|
||||
void PITimer::startDeferred(double interval_ms, double delay_ms) {
|
||||
init();
|
||||
imp->startDeferred(interval_ms, delay_ms);
|
||||
}
|
||||
|
||||
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! Timer wait until "start_datetime" and then normally starts with \a interval() loop delay
|
||||
//! \~russian
|
||||
//! Таймер ожидает наступления "start_datetime", а затем стартует с интервалом \a interval()
|
||||
void PITimer::startDeferred(PIDateTime start_datetime) {
|
||||
startDeferred(imp->interval_, start_datetime);
|
||||
}
|
||||
|
||||
|
||||
//! \~\details
|
||||
//! \~english
|
||||
//! Timer wait until "start_datetime" and then normally starts with "interval_msecs" loop delay
|
||||
//! \~russian
|
||||
//! Таймер ожидает наступления "start_datetime", а затем стартует с интервалом "interval_msecs"
|
||||
void PITimer::startDeferred(double interval_ms, PIDateTime start_datetime) {
|
||||
init();
|
||||
imp->startDeferred(interval_ms, start_datetime);
|
||||
|
||||
Reference in New Issue
Block a user