diff --git a/main/app_main.cpp b/main/app_main.cpp index 3f5d87a..9654d4e 100644 --- a/main/app_main.cpp +++ b/main/app_main.cpp @@ -8,7 +8,9 @@ extern "C" #include "wifi.h" #include "heating_plate.h" } - +/*********************************************************************************************************************** + * *******************************************************light******************************************************* * + ***********************************************************************************************************************/ power_state_light_structer_t power_state_light_structer = { .state = ShutDown, .change_flag = false, @@ -26,6 +28,14 @@ wifi_state_light_structer_t wifi_state_light_structer = { .change_flag = false, }; +/*********************************************************************************************************************** + * ********************************************************key******************************************************** * + ***********************************************************************************************************************/ +T_key_structer_t T_key_structer = { + .key_before_state = false, + .key_now_state = false, +}; + static void T_all_light_init(void) { T_power_light_init(&power_state_light_structer); @@ -40,10 +50,10 @@ extern "C" void app_main(void) T_all_light_init(); ble_spp_server_init(); camera_init(); - T_key_init(); + T_key_init(&T_key_structer); T_wifi_init(); - T_key_registered_cb(); + T_key_registered_cb(camera_recognition_reaction_plate); T_wifi_registered_cb(); while (true) diff --git a/main/camera.cpp b/main/camera.cpp index 37c09c5..ac76cf1 100644 --- a/main/camera.cpp +++ b/main/camera.cpp @@ -22,4 +22,4 @@ void camera_registered_cb(void) {} void camera_taking_pictures(void) {} -void camera_recognition_reaction_plate(void) {} \ No newline at end of file +bool camera_recognition_reaction_plate(void) { return false; } \ No newline at end of file diff --git a/main/camera.h b/main/camera.h index 8feeff9..a50cc39 100644 --- a/main/camera.h +++ b/main/camera.h @@ -4,4 +4,4 @@ void camera_motion_detection_init(void); void camera_init(void); void camera_registered_cb(void); void camera_taking_pictures(void); -void camera_recognition_reaction_plate(void); \ No newline at end of file +bool camera_recognition_reaction_plate(void); \ No newline at end of file diff --git a/main/key.c b/main/key.c index 97f5962..a995ab2 100644 --- a/main/key.c +++ b/main/key.c @@ -1,11 +1,16 @@ #include "key.h" -void T_key_init(void) +static T_key_structer_t *T_key_structer_s; +static key_cb callback_s; + +void T_key_init(T_key_structer_t *T_key_structer) { + T_key_structer_s = T_key_structer; } -void T_key_registered_cb(void) +void T_key_registered_cb(key_cb cb) { + callback_s = cb; } void T_key_on_event(void) @@ -14,4 +19,22 @@ void T_key_on_event(void) void T_key_schedule(void) { + T_key_structer_s->key_now_state = T_key_get_level(); + if ((T_key_structer_s->key_before_state != T_key_structer_s->key_now_state) && (T_key_structer_s->key_now_state == true)) + { + if (callback_s()) + { + /* 有反应板的处理 */ + } + else + { + /* 没有反应板的处理(加热) */ + } + } + T_key_structer_s->key_before_state = T_key_structer_s->key_now_state; +} + +bool T_key_get_level(void) +{ + return false; } \ No newline at end of file diff --git a/main/key.h b/main/key.h index c605879..3950d1d 100644 --- a/main/key.h +++ b/main/key.h @@ -1,11 +1,17 @@ #pragma once +#include "stdbool.h" + typedef struct { - uint32_t pressed_of_key_count; + bool key_before_state; + bool key_now_state; } T_key_structer_t; -void T_key_init(void); -void T_key_registered_cb(void); +typedef bool (*key_cb)(void); + +void T_key_init(T_key_structer_t *T_key_structer); +void T_key_registered_cb(key_cb cb); void T_key_on_event(void); -void T_key_schedule(void); \ No newline at end of file +void T_key_schedule(void); +bool T_key_get_level(void); \ No newline at end of file