From f7a18ec4494b9c5c9ef3fd440bbf68ffc6425e18 Mon Sep 17 00:00:00 2001 From: yy1717 <fctom1215@outlook.com> Date: 星期四, 08 十二月 2022 15:40:56 +0800 Subject: [PATCH] 智慧驾培首次提交 --- lib/src/main/cpp/common/apptimer.h | 68 ++++++++++++++++++++++++++++----- 1 files changed, 57 insertions(+), 11 deletions(-) diff --git a/lib/src/main/cpp/common/apptimer.h b/lib/src/main/cpp/common/apptimer.h index 89dab30..60e9b4b 100644 --- a/lib/src/main/cpp/common/apptimer.h +++ b/lib/src/main/cpp/common/apptimer.h @@ -1,23 +1,69 @@ -#ifndef _APPTIMER_H_ -#define _APPTIMER_H_ +// +// Created by YY on 2021/3/16. +// -#include <stdint.h> -#include <signal.h> +#ifndef NDKADV_APPTIMER_H +#define NDKADV_APPTIMER_H + +#include <cstdint> +#include <functional> +#include <thread> +#include <chrono> +#include <atomic> +#include <mutex> +#include <condition_variable> +#include <string> +#include <ctime> #define D_SEC(n) ((n)*1000UL) #define D_MIN(n) ((n)*1000UL*60UL) #define D_HOUR(n) ((n)*1000UL*60UL*60UL) -extern void AppTimer_Init(void); +typedef struct { + int var1; + int var2; + void * var_ptr; + int var_length; +} apptimer_var_t; -extern void AppTimer_add(void (*func)(union sigval), int timeMS); +class CTimer { +public: + CTimer(); + virtual ~CTimer(); + static bool _updateStatus(CTimer *timer); + static void _do_task_func(uint32_t msec, CTimer *timer, std::function<void(apptimer_var_t)> callback); + bool start(uint32_t msec, std::function<void(apptimer_var_t)> callback); + void stop(); + void copy(int value1, int value2, const void *data, int length); + static void clear(CTimer *timer); +private: + std::mutex cv_mtx; + std::condition_variable cv; +// std::thread callbackThread; + std::thread *pthread; + apptimer_var_t var; +public: + std::atomic_int flag; +}; -extern void AppTimer_add(void (*func)(union sigval), int timeMS, uint8_t *data, int length); +void AppTimer_init(void); -extern void AppTimer_add(void (*func)(union sigval), int timeMS, int value); +void AppTimer_add(void(*cb)(apptimer_var_t), uint32_t msec); -extern void AppTimer_delete(void (*func)(union sigval)); +void AppTimer_add(void(*cb)(apptimer_var_t), uint32_t msec, int value1, int value2 = 0); -extern uint32_t AppTimer_GetTickCount(void); +void AppTimer_add(void(*cb)(apptimer_var_t), uint32_t msec, void *data, int lenght); -#endif +void AppTimer_delete(void (*cb) (apptimer_var_t)); + +uint32_t AppTimer_GetTickCount(void); + +uint32_t AppTimer_GetGmtTickCount(void); + +std::string FormatTime(const char *fmt); + +std::time_t MktimeString(const char *str, const char *fmt); + +time_t TimeStamp(int year, int mon, int day, int hour, int min, int sec); + +#endif //NDKADV_APPTIMER_H -- Gitblit v1.8.0