From 4894838edf3553b23274c8aaf30439a586df7a4e Mon Sep 17 00:00:00 2001 From: chain40 Date: Thu, 11 May 2023 20:34:06 +0800 Subject: [PATCH] Revert "create EIS battery volt update interval characteristic (uint: ms)" This reverts commit 811bcae588b18b896399c3c7760f8374972c9914. --- le_bas.c | 17 ++------- le_eis_srv.c | 98 +++++++++++----------------------------------------- 2 files changed, 24 insertions(+), 91 deletions(-) diff --git a/le_bas.c b/le_bas.c index 8f988c1..4cb172e 100644 --- a/le_bas.c +++ b/le_bas.c @@ -27,32 +27,21 @@ extern "C" } #endif -static uint16_t volt = 3100; -static uint16_t interval = 1000; +static uint16_t volt = 3100; uint16_t bas_volt_read(void) { return volt; } -uint16_t bas_volt_interval_read(void) -{ - return interval; -} - -void bas_volt_interval_write(uint16_t new_interval) -{ - interval = new_interval; -} - void battery_task(void *pArg) { for (;;) { // battery psuedo code - vTaskDelay(pdMS_TO_TICKS(interval)); + vTaskDelay(pdMS_TO_TICKS(1000)); volt = volt ? volt - 1 : 3100; - + // update battery volt extern void le_eis_bat_volt_update(uint16_t bat_volt); le_eis_bat_volt_update(volt); diff --git a/le_eis_srv.c b/le_eis_srv.c index 17bb051..e617639 100644 --- a/le_eis_srv.c +++ b/le_eis_srv.c @@ -21,9 +21,8 @@ 0x4D, 0x3C, 0x56, 0x45, 0x12, 0x8B, 0x44, 0x1D, 0x8D, 0x6F, 0xC5, 0x95, 0x00, 0x00, 0x9B, 0xD8 \ } \ } -#define BLE_UUID_EIS_SERVICE 0x0001 -#define BLE_UUID_EIS_BAT_VOLT_CHAR 0x0002 -#define BLE_UUID_EIS_BAT_VOLT_INTERVAL_CHAR 0x0003 +#define BLE_UUID_EIS_SERVICE 0x0001 +#define BLE_UUID_EIS_BAT_VOLT_CHAR 0x0002 typedef struct { @@ -32,14 +31,11 @@ typedef struct ble_gatts_char_handles_t bat_volt_handles; bool bat_volt_notify_en; uint16_t bat_volt; - ble_gatts_char_handles_t bat_volt_interval_handles; - uint16_t bat_volt_interval; } ble_eis_t; typedef struct { uint16_t battery_volt; - uint16_t battery_volt_bat_volt_interval; } ble_eis_init_t; static ble_eis_t ble_eis = { @@ -75,34 +71,8 @@ static void on_write(ble_eis_t *p_eis, ble_evt_t const *p_ble_evt) case BLE_UUID_DESCRIPTOR_CLIENT_CHAR_CONFIG: eis_ccc_update(p_eis, p_ble_evt); break; - default: { - ble_gatts_evt_write_t const *p_evt_write = &p_ble_evt->evt.gatts_evt.params.write; - if (p_evt_write->handle == p_eis->bat_volt_interval_handles.value_handle) - { - extern void bas_volt_interval_write(uint16_t new_interval); - if (p_evt_write->len == sizeof(p_eis->bat_volt_interval)) - { - // update interval - p_eis->bat_volt_interval = *(uint16_t *)p_evt_write->data; - // if interval < 100ms, set interval = 100ms - if (p_eis->bat_volt_interval < 100) - { - p_eis->bat_volt_interval = 100; - } - bas_volt_interval_write(p_eis->bat_volt_interval); - // update database. - ble_gatts_value_t gatts_value = { - .p_value = (void *)&p_eis->bat_volt_interval, - .offset = 0, - .len = sizeof(p_eis->bat_volt_interval), - }; - ret_code_t err_code = sd_ble_gatts_value_set(BLE_CONN_HANDLE_INVALID, p_eis->bat_volt_interval_handles.value_handle, &gatts_value); - APP_ERROR_CHECK(err_code); - } - } + default: break; - } - break; } } @@ -144,8 +114,7 @@ static uint32_t ble_eis_init(ble_eis_init_t const *p_eis_init) .uuid = BLE_UUID_EIS_SERVICE, }; - ble_eis.bat_volt = p_eis_init->battery_volt; - ble_eis.bat_volt_interval = p_eis_init->battery_volt_bat_volt_interval; + ble_eis.bat_volt = p_eis_init->battery_volt; // Adding vendor specific UUID to the SoftDevice err_code = sd_ble_uuid_vs_add(&base_uuid, &ble_uuid.type); @@ -155,43 +124,22 @@ static uint32_t ble_eis_init(ble_eis_init_t const *p_eis_init) err_code = sd_ble_gatts_service_add(BLE_GATTS_SRVC_TYPE_PRIMARY, &ble_uuid, &ble_eis.service_handle); APP_ERROR_CHECK(err_code); - { - // Adding proprietary characteristic to the SoftDevice - ble_add_char_params_t add_char_params; - memset(&add_char_params, 0, sizeof(add_char_params)); - add_char_params.uuid = BLE_UUID_EIS_BAT_VOLT_CHAR; - add_char_params.uuid_type = ble_uuid.type; - add_char_params.max_len = sizeof(p_eis_init->battery_volt); - add_char_params.init_len = sizeof(p_eis_init->battery_volt); - add_char_params.p_init_value = (void *)&ble_eis.bat_volt; - add_char_params.is_value_user = false; - add_char_params.is_var_len = false; - add_char_params.char_props.read = 1; - add_char_params.read_access = SEC_OPEN; - add_char_params.char_props.notify = 1; - add_char_params.cccd_write_access = SEC_OPEN; - err_code = characteristic_add(ble_eis.service_handle, &add_char_params, &ble_eis.bat_volt_handles); - APP_ERROR_CHECK(err_code); - } - - { - // Adding proprietary characteristic to the SoftDevice - ble_add_char_params_t add_char_params; - memset(&add_char_params, 0, sizeof(add_char_params)); - add_char_params.uuid = BLE_UUID_EIS_BAT_VOLT_INTERVAL_CHAR; - add_char_params.uuid_type = ble_uuid.type; - add_char_params.max_len = sizeof(p_eis_init->battery_volt_bat_volt_interval); - add_char_params.init_len = sizeof(p_eis_init->battery_volt_bat_volt_interval); - add_char_params.p_init_value = (void *)&ble_eis.bat_volt_interval; - add_char_params.is_value_user = false; - add_char_params.is_var_len = false; - add_char_params.char_props.read = 1; - add_char_params.read_access = SEC_OPEN; - add_char_params.char_props.write = 1; - add_char_params.write_access = SEC_OPEN; - err_code = characteristic_add(ble_eis.service_handle, &add_char_params, &ble_eis.bat_volt_interval_handles); - APP_ERROR_CHECK(err_code); - } + // Adding proprietary characteristic to the SoftDevice + ble_add_char_params_t add_char_params; + memset(&add_char_params, 0, sizeof(add_char_params)); + add_char_params.uuid = BLE_UUID_EIS_BAT_VOLT_CHAR; + add_char_params.uuid_type = ble_uuid.type; + add_char_params.max_len = sizeof(p_eis_init->battery_volt); + add_char_params.init_len = sizeof(p_eis_init->battery_volt); + add_char_params.p_init_value = (void *)&ble_eis.bat_volt; + add_char_params.is_value_user = false; + add_char_params.is_var_len = false; + add_char_params.char_props.read = 1; + add_char_params.read_access = SEC_OPEN; + add_char_params.char_props.notify = 1; + add_char_params.cccd_write_access = SEC_OPEN; + err_code = characteristic_add(ble_eis.service_handle, &add_char_params, &ble_eis.bat_volt_handles); + APP_ERROR_CHECK(err_code); // Register a handler for BLE events. NRF_SDH_BLE_OBSERVER(m_eis_observer, EIS_BLE_OBSERVER_PRIO, ble_eis_evt_handler, &ble_eis); @@ -209,11 +157,7 @@ void le_eis_init(void) extern uint16_t bas_volt_read(void); eis_init.battery_volt = bas_volt_read(); - - extern uint8_t bas_volt_interval_read(void); - eis_init.battery_volt_bat_volt_interval = bas_volt_interval_read(); - - ret_code_t err_code = ble_eis_init(&eis_init); + ret_code_t err_code = ble_eis_init(&eis_init); APP_ERROR_CHECK(err_code); }