278 lines
8.1 KiB
C
278 lines
8.1 KiB
C
#include <stdint.h>
|
|
|
|
//#include "os_task.h"
|
|
//#include "os_msg_q.h"
|
|
|
|
//#include "co_printf.h"
|
|
#include "user_task.h"
|
|
//#include "app_at.h"
|
|
#include "button.h"
|
|
//#include "driver_system.h"
|
|
//#include "driver_gpio.h"
|
|
#include "lvgl.h"
|
|
#include "hal_key_handle.h"
|
|
|
|
|
|
static uint16_t user_task_id;
|
|
|
|
extern lv_obj_t * get_root_win(void);
|
|
extern void hal_keypad_msg_handle(uint8_t button_index, uint8_t button_type);
|
|
|
|
|
|
static void handle_key_msg_input(uint8_t *param)
|
|
{
|
|
//key input
|
|
struct button_msg_t *button_msg;
|
|
const char *button_type_str[] = {
|
|
"BUTTON_PRESSED",
|
|
"BUTTON_RELEASED",
|
|
"BUTTON_SHORT_PRESSED",
|
|
"BUTTON_MULTI_PRESSED",
|
|
"BUTTON_LONG_PRESSED",
|
|
"BUTTON_LONG_PRESSING",
|
|
"BUTTON_LONG_RELEASED",
|
|
"BUTTON_LONG_LONG_PRESSED",
|
|
"BUTTON_LONG_LONG_RELEASED",
|
|
"BUTTON_COMB_PRESSED",
|
|
"BUTTON_COMB_RELEASED",
|
|
"BUTTON_COMB_SHORT_PRESSED",
|
|
"BUTTON_COMB_LONG_PRESSED",
|
|
"BUTTON_COMB_LONG_PRESSING",
|
|
"BUTTON_COMB_LONG_RELEASED",
|
|
"BUTTON_COMB_LONG_LONG_PRESSED",
|
|
"BUTTON_COMB_LONG_LONG_RELEASED",
|
|
};
|
|
|
|
button_msg = (struct button_msg_t *)param;
|
|
|
|
co_printf("KEY 0x%08x, TYPE %s.\r\n", button_msg->button_index, button_type_str[button_msg->button_type]);
|
|
|
|
switch(button_msg->button_index)
|
|
{
|
|
#ifdef BL01_V10
|
|
case GPIO_PA3:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_SHORT_PRESSED:
|
|
case BUTTON_MULTI_PRESSED:
|
|
case BUTTON_LONG_PRESSED:
|
|
co_printf("key1 Pressed %d\r\n",button_msg->button_type);
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA4:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_SHORT_PRESSED:
|
|
case BUTTON_MULTI_PRESSED:
|
|
case BUTTON_LONG_PRESSED:
|
|
co_printf("key2 Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA5:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_SHORT_PRESSED:
|
|
case BUTTON_MULTI_PRESSED:
|
|
case BUTTON_LONG_PRESSED:
|
|
co_printf("key3 Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA6:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_SHORT_PRESSED:
|
|
case BUTTON_MULTI_PRESSED:
|
|
case BUTTON_LONG_PRESSED:
|
|
co_printf("key4 Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA7:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_SHORT_PRESSED:
|
|
case BUTTON_MULTI_PRESSED:
|
|
case BUTTON_LONG_PRESSED:
|
|
co_printf("key5 Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA3|GPIO_PA4:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key1/2 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA3|GPIO_PA5:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key1/3 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA3|GPIO_PA6:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key1/4 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA3|GPIO_PA7:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key1/5 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA4|GPIO_PA5:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key2/3 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA4|GPIO_PA6:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key2/4 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA4|GPIO_PA7:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key2/5 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA5|GPIO_PA6:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key3/4 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PA5|GPIO_PA7:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key3/5 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
|
|
case GPIO_PA6|GPIO_PA7:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_COMB_SHORT_PRESSED:
|
|
case BUTTON_COMB_LONG_PRESSED:
|
|
co_printf("key4/5 COMB Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
#else
|
|
case GPIO_PC6:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_SHORT_PRESSED:
|
|
case BUTTON_MULTI_PRESSED:
|
|
case BUTTON_LONG_PRESSED:
|
|
co_printf("key1 Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PC7:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_SHORT_PRESSED:
|
|
case BUTTON_MULTI_PRESSED:
|
|
case BUTTON_LONG_PRESSED:
|
|
co_printf("key2 Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
case GPIO_PD4:
|
|
switch(button_msg->button_type)
|
|
{
|
|
case BUTTON_SHORT_PRESSED:
|
|
case BUTTON_MULTI_PRESSED:
|
|
case BUTTON_LONG_PRESSED:
|
|
co_printf("key3 Pressed\r\n");
|
|
hal_keypad_msg_handle(button_msg->button_index,button_msg->button_type);
|
|
break;
|
|
}
|
|
break;
|
|
#endif
|
|
}
|
|
}
|
|
|
|
static int user_task_func(os_event_t *param)
|
|
{
|
|
co_printf("user_task_func %d\r\n", param->event_id);
|
|
switch(param->event_id)
|
|
{
|
|
case USER_EVT_AT_COMMAND:
|
|
app_at_cmd_recv_handler(param->param, param->param_len);
|
|
break;
|
|
case USER_EVT_BUTTON:
|
|
handle_key_msg_input(param->param);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
return EVT_CONSUMED;
|
|
}
|
|
|
|
void user_task_init(void)
|
|
{
|
|
co_printf("user_task_init %d\r\n", user_task_id);
|
|
user_task_id = os_task_create(user_task_func);
|
|
}
|
|
|
|
|
|
uint16_t get_user_task_id(void)
|
|
{
|
|
|
|
co_printf("get_user_task_id %d\r\n", user_task_id);
|
|
return user_task_id;
|
|
}
|
|
|