Browse Source

update

Finny_test
zwsd 3 years ago
parent
commit
8d42c013b4
  1. 7
      main/app_main.cpp
  2. 24
      main/key.c
  3. 6
      main/key.h

7
main/app_main.cpp

@ -49,6 +49,7 @@ wifi_state_light_structer_t wifi_state_light_structer = {
T_key_structer_t T_key_structer = {
.key_before_state = false,
.key_now_state = false,
.key_start_time = 0,
};
/***********************************************************************************************************************
@ -102,6 +103,10 @@ void process_key_event(void)
}
}
void process_key_long_press_event(void)
{
}
void T_reaction_schedule(void)
{
if (reaction_structer.reaction_start_flag)
@ -127,7 +132,7 @@ extern "C" void app_main(void)
cover_init();
beep_init();
T_key_registered_cb(process_key_event);
T_key_registered_cb(process_key_event, process_key_long_press_event);
T_wifi_registered_cb();
T_heating_plate_registered_cb(T_temp_get_data);

24
main/key.c

@ -10,19 +10,23 @@
*/
#include "key.h"
#include "port.h"
#define key_long_press_time_ms 5000
static T_key_structer_t *T_key_structer_s;
static key_event_cb event_cb_s;
static key_event_cb short_press_event_cb_s;
static key_event_cb long_press_event_cb_s;
void T_key_init(T_key_structer_t *T_key_structer)
{
T_key_structer_s = T_key_structer;
}
void T_key_registered_cb(key_event_cb event_cb)
void T_key_registered_cb(key_event_cb short_press_event_cb, key_event_cb long_press_event_cb)
{
event_cb_s = event_cb;
short_press_event_cb_s = short_press_event_cb;
long_press_event_cb_s = long_press_event_cb;
}
void T_key_on_event(void)
@ -34,8 +38,18 @@ 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))
{
event_cb_s();
short_press_event_cb_s();
T_key_structer_s->key_start_time = port_get_ticket();
}
if (T_key_structer_s->key_now_state)
{
if (port_get_ticket() - T_key_structer_s->key_start_time > key_long_press_time_ms)
{
long_press_event_cb_s();
}
}
T_key_structer_s->key_before_state = T_key_structer_s->key_now_state;
}

6
main/key.h

@ -1,18 +1,20 @@
#pragma once
#include "stdbool.h"
#include <stdbool.h>
#include <stdint.h>
typedef struct
{
bool key_before_state;
bool key_now_state;
uint32_t key_start_time;
} T_key_structer_t;
typedef bool (*key_camera_cb)(void);
typedef void (*key_event_cb)(void);
void T_key_init(T_key_structer_t *T_key_structer);
void T_key_registered_cb(key_event_cb event_cb);
void T_key_registered_cb(key_event_cb short_press_event_cb, key_event_cb long_press_event_cb);
void T_key_on_event(void);
void T_key_schedule(void);
bool T_key_get_level(void);
Loading…
Cancel
Save