luat_drv_ble.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef LUAT_DRV_BLE_H
  2. #define LUAT_DRV_BLE_H
  3. typedef struct luat_drv_ble_msg
  4. {
  5. uint64_t id; // 命令seq序号
  6. uint16_t cmd_id;
  7. uint16_t len;
  8. uint16_t version;
  9. uint16_t reserved;
  10. uint8_t data[0];
  11. }luat_drv_ble_msg_t;
  12. // 定义蓝牙cmd id
  13. enum {
  14. LUAT_DRV_BT_CMD_BT_INIT = 0,
  15. LUAT_DRV_BT_CMD_BT_DEINIT,
  16. LUAT_DRV_BT_CMD_BLE_INIT,
  17. LUAT_DRV_BT_CMD_BLE_DEINIT,
  18. LUAT_DRV_BT_CMD_BLE_GATT_CREATE, // 创建GATT
  19. LUAT_DRV_BT_CMD_BLE_SET_NAME, // 设置设备名
  20. LUAT_DRV_BT_CMD_BLE_ADV_CREATE, // 创建广播
  21. LUAT_DRV_BT_CMD_BLE_ADV_START, // 开始广播
  22. LUAT_DRV_BT_CMD_BLE_ADV_STOP, // 停止广播
  23. LUAT_DRV_BT_CMD_BLE_ADV_DELETE, // 删除广播
  24. LUAT_DRV_BT_CMD_BLE_ADV_SET_DATA, // 设置广播数据
  25. LUAT_DRV_BT_CMD_BLE_ADV_SET_SCAN_RSP_DATA, // 设置广播响应数据
  26. LUAT_DRV_BT_CMD_BLE_SCAN_CREATE, // 创建扫描
  27. LUAT_DRV_BT_CMD_BLE_SCAN_START, // 开始扫描
  28. LUAT_DRV_BT_CMD_BLE_SCAN_STOP, // 停止扫描
  29. LUAT_DRV_BT_CMD_BLE_SCAN_DELETE, // 删除扫描
  30. LUAT_DRV_BT_CMD_BLE_WRITE_NOTIFY, // 写入,带通知
  31. LUAT_DRV_BT_CMD_BLE_WRITE_INDICATION, // 写入,带订阅的
  32. LUAT_DRV_BT_CMD_BLE_SEND_READ_RESP, // 发送读响应
  33. LUAT_DRV_BT_CMD_BLE_WRITE_VALUE, // 写入值
  34. LUAT_DRV_BT_CMD_BLE_READ_REQ, // 请求读取值
  35. LUAT_DRV_BT_CMD_BLE_CONNECT, // 读取值
  36. LUAT_DRV_BT_CMD_BLE_DISCONNECT, // 断开连接
  37. LUAT_DRV_BT_CMD_BLE_READ_VALUE, // 读取值, 异步的
  38. LUAT_DRV_BT_CMD_BLE_NOTIFY_ENABLE, // 通知使能
  39. LUAT_DRV_BT_CMD_BLE_EVENT_CB = 128, // 事件回调
  40. LUAT_DRV_BT_CMD_MAX
  41. };
  42. int luat_drv_bt_task_start(void);
  43. int luat_drv_bt_msg_send(luat_drv_ble_msg_t *msg);
  44. int luat_ble_gatt_pack(luat_ble_gatt_service_t *gatt, uint8_t *data, size_t *len);
  45. int luat_ble_gatt_unpack(luat_ble_gatt_service_t *gatt, uint8_t *data, size_t *len);
  46. #endif