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