ble_client_receiver.lua 1.6 KB

123456789101112131415161718192021222324252627282930313233343536
  1. -- --[[
  2. -- @module ble_client_receiver
  3. -- @summary BLE client 数据接收应用功能模块
  4. -- @version 1.0
  5. -- @date 2025.08.20
  6. -- @author 王世豪
  7. -- @usage
  8. -- 本文件为BLE client 数据接收应用功能模块,核心业务逻辑为:
  9. -- 1. 处理接收到的BLE通知数据和主动读取到的数据,根据特征值类型(Notify或Read)进行分类处理。
  10. -- 本文件的对外接口有3个:
  11. -- 1. ble_client_receiver.proc(service_uuid, char_uuid, data): 处理接收到的BLE通知数据和主动读取数据。
  12. -- 2. sys.publish("RECV_BLE_NOTIFY_DATA", service_uuid, char_uuid, data): 发布收到的通知数据给其他模块处理。
  13. -- 3. sys.publish("RECV_BLE_READ_DATA", service_uuid, char_uuid, data): 发布读取到的数据给其他模块处理。
  14. -- ]]
  15. local ble_client_receiver = {}
  16. -- 处理接收到的BLE通知数据和主动读取数据,根据特征值类型(Notify或Read)进行分类处理。
  17. function ble_client_receiver.proc(service_uuid, char_uuid, data)
  18. -- 判断数据类型(主动读取或通知)
  19. -- 通知数据
  20. if char_uuid == config.target_notify_char then
  21. log.info("ble_client_receiver", "收到通知数据", service_uuid, char_uuid, data)
  22. -- 发布数据给其他模块
  23. sys.publish("RECV_BLE_NOTIFY_DATA", service_uuid, char_uuid, data)
  24. -- 主动读取数据
  25. elseif char_uuid == config.target_read_char then
  26. log.info("ble_client_receiver", "处理主动读取的数据", service_uuid, char_uuid, data)
  27. -- 发布数据给其他模块
  28. sys.publish("RECV_BLE_READ_DATA", service_uuid, char_uuid, data)
  29. end
  30. end
  31. return ble_client_receiver