From a0a8566a64d4a417f93884b8cd28089a8dc03262 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Thu, 8 Feb 2024 15:43:46 +0800 Subject: [PATCH] =?UTF-8?q?zdatachanel=E8=AE=B0=E5=BD=95=E4=B8=8A=E4=B8=80?= =?UTF-8?q?=E6=AC=A1=E6=8E=A5=E6=94=B6=E5=88=B0=E6=B6=88=E6=81=AF=E7=9A=84?= =?UTF-8?q?=E6=97=B6=E9=97=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- include/zdatachannel_service.h | 2 ++ src/zdatachannel_service.c | 13 ++++++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/include/zdatachannel_service.h b/include/zdatachannel_service.h index 7015f3a..99ab4f2 100644 --- a/include/zdatachannel_service.h +++ b/include/zdatachannel_service.h @@ -87,6 +87,8 @@ static inline uint32_t zdatachannel_block_data_send2(uint8_t* p_data, uint16_t p return zdatachannel_block_data_send(p_data, &p_length); } +uint32_t zdatachannel_last_rx_data_haspassed_s(); + #ifdef __cplusplus } #endif diff --git a/src/zdatachannel_service.c b/src/zdatachannel_service.c index 9860e01..ad0727f 100644 --- a/src/zdatachannel_service.c +++ b/src/zdatachannel_service.c @@ -21,7 +21,8 @@ } /**< Used vendor specific UUID. */ static zdatachannel_t *p_datachannel; -//static uint32_t m_mtusize; +static uint32_t m_last_rx_data_tp; +// static uint32_t m_mtusize; static bool notification_enable(uint16_t conn_handle, uint16_t cccd_handle) { ret_code_t err_code; @@ -48,6 +49,7 @@ static void on_write(zdatachannel_t *p_nus, ble_evt_t const *p_ble_evt) { ble_gatts_evt_write_t const *p_evt_write = &p_ble_evt->evt.gatts_evt.params.write; memset(&evt, 0, sizeof(zdatachannel_evt_t)); + m_last_rx_data_tp = znordic_getpower_on_s(); if ((p_evt_write->handle == p_nus->cmd_tx_handles.cccd_handle) && (p_evt_write->len == 2)) { if (ble_srv_is_notification_enabled(p_evt_write->data)) { @@ -223,3 +225,12 @@ uint32_t zdatachannel_block_data_send(uint8_t *p_data, uint16_t *p_length) { return sd_ble_gatts_hvx(p_datachannel->conn_handle, &hvx_params); } + +uint32_t zdatachannel_last_rx_data_haspassed_s() { // + uint32_t now = znordic_getpower_on_s(); + if (now > m_last_rx_data_tp) { + return now - m_last_rx_data_tp; + } else { + return 0; + } +}