Browse Source

update

master
zhaohe 11 months ago
parent
commit
b817bfff26
  1. 69
      app/src/acid_dispenser_ble_slave_main.c
  2. 4
      app/src/app_basic_service/basic/event.h
  3. 2
      app/src/app_basic_service/basic/keyid.h
  4. 71
      app/src/app_service/zkey_driver.c

69
app/src/acid_dispenser_ble_slave_main.c

@ -29,7 +29,7 @@
// static hand_acid_mode_t g_hand_acid_mode;
// static bool g_hand_pump_working_state;
// static bool g_connected;
static int32_t m_last_usr_operation_time = 0;
static int32_t m_last_usr_operation_time = 0;
static void testlight_state(int val) {
int effect = val % 3;
@ -145,43 +145,56 @@ static void nrf_gpio_set_rgb(uint8_t r, uint8_t g, uint8_t b) {
nrf_gpio_pin_write(LEDB, b);
}
static void update_light_state() {
// static void update_light_state() {
/**
* @brief
* :
* :
* :
* :绿
* 线 :
*
*/
// if (zappcore_get_state() == kstate_standby) {
// //
// nrf_gpio_set_rgb(0, 0, 0);
// } else {
// if (g_connected) { //
// if (g_hand_acid_mode == khand_acid_m_jog_mode) {
// nrf_gpio_set_rgb(0, 0, 1); //
// } else if (g_hand_acid_mode == khand_acid_m_continuous_mode) {
// nrf_gpio_set_rgb(0, 1, 0); //
// } else if (g_hand_acid_mode == khand_acid_m_unset_mode) {
// nrf_gpio_set_rgb(1, 1, 1); //
// }
// } else {
// nrf_gpio_set_rgb(1, 0, 0);
// }
// }
// }
void process_offline_standby(app_event_t* event, uint16_t event_size) { //
/**
* @brief
* :
* :
* :
* :绿
* 线 :
*
* 线
* 1.广
* 2.
*/
// if (zappcore_get_state() == kstate_standby) {
// //
// nrf_gpio_set_rgb(0, 0, 0);
// } else {
// if (g_connected) { //
// if (g_hand_acid_mode == khand_acid_m_jog_mode) {
// nrf_gpio_set_rgb(0, 0, 1); //
// } else if (g_hand_acid_mode == khand_acid_m_continuous_mode) {
// nrf_gpio_set_rgb(0, 1, 0); //
// } else if (g_hand_acid_mode == khand_acid_m_unset_mode) {
// nrf_gpio_set_rgb(1, 1, 1); //
// }
// } else {
// nrf_gpio_set_rgb(1, 0, 0);
// }
// }
}
void process_offline_standby(app_event_t* event, uint16_t event_size) { //
app_event_type_t eventType = event->eventType;
if (eventType == kappevent_state_machine_state_enter) {
ZLOGI("enter standby");
nrf_gpio_set_rgb(0, 0, 0);
zble_module_stop_adv();
} else if (eventType == kappevent_state_machine_state_exit) {
ZLOGI("exit standby");
} else {
zble_module_start_adv();
} else if (eventType == kappevent_key_pressed) {
ZLOGI("key pressed:%d", event->val.keyid);
} else if (eventType == kappevent_key_pressed_double) {
ZLOGI("key double pressed:%d", event->val.keyid);
} else if (eventType == kappevent_key_long_pressed) {
ZLOGI("key long pressed:%d", event->val.keyid);
}
}
void process_offline_broadcast(app_event_t* event, uint16_t event_size) { //

4
app/src/app_basic_service/basic/event.h

@ -2,8 +2,8 @@
#include <stdbool.h>
#include <stdint.h>
#include "aproject_config/config.h"
#include "app_protocols/app_protocols.h"
#include "aproject_config/config.h"
#define ECG_DATA_REPORT_FRAME_NUM 50
@ -15,7 +15,9 @@ typedef enum {
kappevent_ble_connected,
kappevent_ble_disconnected,
kappevent_device_state_change_event,
//
kappevent_key_pressed,
kappevent_key_pressed_double,
kappevent_key_long_pressed,
} app_event_type_t;

2
app/src/app_basic_service/basic/keyid.h

@ -1,5 +1,5 @@
#pragma once
typedef enum {
keyid_reflux,
keyid_addliquid,
keyid_reflux,
} keyid_t;

71
app/src/app_service/zkey_driver.c

@ -13,19 +13,25 @@
// app_timer
#include "sdk/components/libraries/timer/app_timer.h"
//
#include "app_basic_service/basic/keyid.h"
#include "app_basic_service\basic\event.h"
#include "app_basic_service\zapp_core.h"
/***********************************************************************************************************************
* *
***********************************************************************************************************************/
#define LONGPRESS_TRIGGER_TIME 1500
#define LONGPRESS_TRIGGER_TIME 800
#define PERIOD_MS 100
typedef struct {
bool keystate;
bool longPress;
bool pressing;
uint32_t pressTicket;
uint32_t keid;
bool keystate;
int keyCurStateCntMs;
uint32_t sessionTp;
int keyPressCnt;
int keyPressTime;
bool (*read_key_state)();
} key_t;
@ -50,30 +56,39 @@ static bool key_liquid_reflux_butt_read_state() {
static void process_key(key_t* key) {
static app_event_t event;
bool nowState = key->read_key_state(); //
bool nowState = key->read_key_state(); //
bool stateChange = false;
if (nowState != key->keystate) {
//
if (nowState) {
key->longPress = false;
key->pressing = true;
key->pressTicket = znordic_getpower_on_ms();
}
//
if (!nowState) {
if (!key->longPress) {
event.eventType = kappevent_key_pressed;
event.val.keyid = key->keid; //
zappcore_push_event(&event);
}
key->pressing = false;
}
key->keystate = nowState;
key->keyCurStateCntMs = 0;
stateChange = true;
} else {
key->keyCurStateCntMs += 100;
}
if (key->sessionTp != 0 && stateChange && !nowState) {
key->keyPressCnt++;
}
if (key->pressing && !key->longPress) {
if (znordic_haspassed_ms(key->pressTicket) > LONGPRESS_TRIGGER_TIME) {
key->longPress = true;
event.eventType = kappevent_key_long_pressed;
// ZLOGI("key->keystate:%d", key->keystate);
if (key->sessionTp == 0 && nowState && stateChange) {
key->sessionTp = znordic_getpower_on_ms();
key->keyPressCnt = 0;
key->keyPressTime = 0;
} else if (key->sessionTp != 0 && nowState && key->keyCurStateCntMs >= LONGPRESS_TRIGGER_TIME) { //
key->sessionTp = 0;
event.eventType = kappevent_key_long_pressed;
event.val.keyid = key->keid;
zappcore_push_event(&event);
} else if (key->sessionTp != 0 && !nowState && key->keyCurStateCntMs >= 300) { // 500ms没人按下按键
key->sessionTp = 0;
if (key->keyPressCnt == 2) {
event.eventType = kappevent_key_pressed_double;
event.val.keyid = key->keid; //
zappcore_push_event(&event);
} else if (key->keyPressCnt == 1) {
event.eventType = kappevent_key_pressed;
event.val.keyid = key->keid; //
zappcore_push_event(&event);
}
@ -84,11 +99,11 @@ static void process_key(key_t* key) {
static void key_driver_tmr_cb(void* p_context) { //
static key_t mode_and_action_butt = {
.keid = 1,
.keid = keyid_addliquid,
.read_key_state = key_read_acid_state,
};
static key_t liquid_reflux_butt = {
.keid = 2,
.keid = keyid_reflux,
.read_key_state = key_liquid_reflux_butt_read_state,
};
@ -98,5 +113,5 @@ static void key_driver_tmr_cb(void* p_context) { //
void zkey_driver_init() {
ZERROR_CHECK(app_timer_create(&m_key_monitor_tmr, APP_TIMER_MODE_REPEATED, key_driver_tmr_cb));
ZERROR_CHECK(app_timer_start(m_key_monitor_tmr, APP_TIMER_TICKS(100), NULL));
ZERROR_CHECK(app_timer_start(m_key_monitor_tmr, APP_TIMER_TICKS(PERIOD_MS), NULL));
}
Loading…
Cancel
Save