|
|
@ -5,6 +5,7 @@ |
|
|
|
#include "key.h" |
|
|
|
#include "port.h" |
|
|
|
#include "systicket.h" |
|
|
|
#include "this_device.h" |
|
|
|
|
|
|
|
static key_t s_keys[] = { |
|
|
|
s_key_init("powerkey", port_gpio_get_power_key_state), |
|
|
@ -13,6 +14,8 @@ static key_t s_keys[] = { |
|
|
|
s_key_init("intervalkey", port_gpio_get_interval_key_state), |
|
|
|
}; |
|
|
|
|
|
|
|
static ThisDevice_t this_device = {.power = false}; |
|
|
|
|
|
|
|
static void mf_init_all_subdevice_state() { |
|
|
|
port_debug_set(false); |
|
|
|
port_fan_set(false); |
|
|
@ -25,19 +28,51 @@ static void mf_init_all_subdevice_state() { |
|
|
|
port_led_b_set(false); |
|
|
|
} |
|
|
|
|
|
|
|
static void poweron() { |
|
|
|
this_device.power = true; |
|
|
|
port_fan_set(true); |
|
|
|
return; |
|
|
|
} |
|
|
|
static void powerdown() { |
|
|
|
this_device.power = false; |
|
|
|
port_fan_set(false); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 各个按键处理逻辑 |
|
|
|
static void mf_process_poweron_key(key_t *key) { |
|
|
|
printf("key name:%s\n", key->name); |
|
|
|
|
|
|
|
if (!this_device.power) { |
|
|
|
poweron(); |
|
|
|
} else { |
|
|
|
powerdown(); |
|
|
|
} |
|
|
|
|
|
|
|
return; |
|
|
|
} |
|
|
|
static void mf_process_level_key(key_t *key) { |
|
|
|
printf("key name:%s\n", key->name); |
|
|
|
return; |
|
|
|
} |
|
|
|
static void mf_process_timer_key(key_t *key) { |
|
|
|
printf("key name:%s\n", key->name); |
|
|
|
return; |
|
|
|
} |
|
|
|
static void mf_process_interval_key(key_t *key) { |
|
|
|
printf("key name:%s\n", key->name); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
static void onkey(key_t *key, key_state_t key_state) { |
|
|
|
if /* */ (strcmp(key->name, "powerkey") == 0 && zks_rising_edge == key_state) { |
|
|
|
printf("powerkey\n"); |
|
|
|
// mf_process_poweron_key(key); |
|
|
|
mf_process_poweron_key(key); |
|
|
|
} else if (strcmp(key->name, "levelkey") == 0 && zks_rising_edge == key_state) { |
|
|
|
printf("levelkey\n"); |
|
|
|
// mf_process_level_key(key); |
|
|
|
mf_process_level_key(key); |
|
|
|
} else if (strcmp(key->name, "timerkey") == 0 && zks_rising_edge == key_state) { |
|
|
|
printf("timerkey\n"); |
|
|
|
// mf_process_timer_key(key); |
|
|
|
mf_process_timer_key(key); |
|
|
|
} else if (strcmp(key->name, "intervalkey") == 0 && zks_rising_edge == key_state) { |
|
|
|
printf("intervalkey\n"); |
|
|
|
// mf_process_interval_key(key); |
|
|
|
mf_process_interval_key(key); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|