You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

66 lines
1.5 KiB

3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
3 years ago
  1. /**
  2. * @file key.c
  3. * @author Finny (tianjialong0106@163.com)
  4. * @brief
  5. * @version 0.1
  6. * @date 2022-09-26
  7. *
  8. * @copyright Copyright (c) 2022
  9. *
  10. */
  11. #include "key.h"
  12. #include "port.h"
  13. #include "cover.h"
  14. #define key_long_press_time_ms 5000
  15. static T_key_structer_t *T_key_structer_s;
  16. static key_event_cb short_press_event_cb_s;
  17. static key_event_cb long_press_event_cb_s;
  18. void T_key_init(T_key_structer_t *T_key_structer)
  19. {
  20. T_key_structer_s = T_key_structer;
  21. }
  22. void T_key_registered_cb(key_event_cb short_press_event_cb, key_event_cb long_press_event_cb)
  23. {
  24. short_press_event_cb_s = short_press_event_cb;
  25. long_press_event_cb_s = long_press_event_cb;
  26. }
  27. void T_key_on_event(void)
  28. {
  29. }
  30. void T_key_schedule(void)
  31. {
  32. T_key_structer_s->key_now_state = T_key_get_level();
  33. /* 检查是否盖上盖 */
  34. if (cover_get_level())
  35. {
  36. if ((T_key_structer_s->key_before_state != T_key_structer_s->key_now_state) && (T_key_structer_s->key_now_state == true))
  37. {
  38. short_press_event_cb_s();
  39. T_key_structer_s->key_start_time = port_get_ticket();
  40. }
  41. if (T_key_structer_s->key_now_state)
  42. {
  43. if (port_get_ticket() - T_key_structer_s->key_start_time > key_long_press_time_ms)
  44. {
  45. long_press_event_cb_s();
  46. }
  47. }
  48. }
  49. else
  50. {
  51. }
  52. T_key_structer_s->key_before_state = T_key_structer_s->key_now_state;
  53. }
  54. bool T_key_get_level(void)
  55. {
  56. return false;
  57. }