gap.h 828 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #pragma once
  2. #include <stdint.h>
  3. #include <stdbool.h>
  4. #ifdef __cplusplus
  5. extern "C" {
  6. #endif
  7. typedef enum {
  8. BleEventTypeConnected,
  9. BleEventTypeDisconnected,
  10. BleEventTypeStartAdvertising,
  11. BleEventTypeStopAdvertising,
  12. BleEventTypePinCodeShow,
  13. BleEventTypeUpdateMTU,
  14. } BleEventType;
  15. typedef union {
  16. uint32_t pin_code;
  17. uint16_t max_packet_size;
  18. } BleEventData;
  19. typedef struct {
  20. BleEventType type;
  21. BleEventData data;
  22. } BleEvent;
  23. typedef void(*BleEventCallback) (BleEvent event, void* context);
  24. typedef enum {
  25. GapStateIdle,
  26. GapStateAdvFast,
  27. GapStateAdvLowPower,
  28. GapStateConnected,
  29. } GapState;
  30. bool gap_init(BleEventCallback on_event_cb, void* context);
  31. void gap_start_advertising();
  32. void gap_stop_advertising();
  33. GapState gap_get_state();
  34. #ifdef __cplusplus
  35. }
  36. #endif