luat_nimble.h 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #ifndef LUAT_NUMBLE_H
  2. #define LUAT_NUMBLE_H
  3. #include "luat_base.h"
  4. #include "luat_msgbus.h"
  5. #include "host/ble_gatt.h"
  6. #include "host/ble_hs_id.h"
  7. #include "host/util/util.h"
  8. #include "host/ble_hs_adv.h"
  9. #include "host/ble_gap.h"
  10. #include "host/ble_uuid.h"
  11. #define LUAT_BLE_MAX_CHR (3)
  12. #define MAX_PER_SERV (4)
  13. /** Bluetooth Adapter State */
  14. typedef enum
  15. {
  16. BT_STATE_OFF,
  17. BT_STATE_ON,
  18. BT_STATE_CONNECTED,
  19. BT_STATE_DISCONNECT,
  20. } bt_state_t;
  21. typedef enum
  22. {
  23. BT_MODE_BLE_SERVER,
  24. BT_MODE_BLE_CLIENT,
  25. BT_MODE_BLE_BEACON,
  26. BT_MODE_BLE_MESH,
  27. } bt_mode_t;
  28. int luat_nimble_trace_level(int level);
  29. int luat_nimble_init(uint8_t uart_idx, char* name, int mode);
  30. int luat_nimble_deinit();
  31. int luat_nimble_server_send(int id, char* data, size_t len);
  32. int luat_nimble_server_send_notify(ble_uuid_any_t* srv, ble_uuid_any_t* chr, char* data, size_t len);
  33. int luat_nimble_server_send_indicate(ble_uuid_any_t* srv, ble_uuid_any_t* chr, char* data, size_t len);
  34. int luat_nimble_server_send2(ble_uuid_any_t* srv, ble_uuid_any_t* chr, char* data, size_t len, int type);
  35. int luat_nimble_blecent_scan(int timeout);
  36. int luat_nimble_blecent_connect(const char* addr);
  37. int luat_nimble_blecent_disconnect(int id);
  38. // 直接设置标准的ibeacon数据
  39. int luat_nimble_ibeacon_setup(void *uuid128, uint16_t major,
  40. uint16_t minor, int8_t measured_power);
  41. // 自由设置广播数据, 比ibeacon更自由
  42. int luat_nimble_set_adv_data(char* buff, size_t len, int flags);
  43. int luat_nimble_peripheral_set_chr(int index, ble_uuid_any_t* chr_uuid, int flags);
  44. int luat_nimble_central_disc_srv(int id);
  45. int luat_nimble_central_disc_chr(int id, struct ble_gatt_svc *service);
  46. int luat_nimble_central_disc_dsc(int id, struct ble_gatt_svc *service, struct ble_gatt_chr *chr);
  47. int luat_nimble_central_write(int id, struct ble_gatt_chr * chr, char* data, size_t len);
  48. int luat_nimble_central_read(int id, struct ble_gatt_chr *);
  49. int luat_nimble_central_subscribe(int id, struct ble_gatt_chr * chr, int onoff);
  50. int luat_nimble_mac_set(const char* tmac);
  51. #endif