BabyCallback.h 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137
  1. /*
  2. BabyBluetooth
  3. 简单易用的蓝牙ble库,基于CoreBluetooth 作者:刘彦玮
  4. https://github.com/coolnameismy/BabyBluetooth
  5. @brief babybluetooth 的block定义和储存
  6. */
  7. // Created by 刘彦玮 on 15/9/2.
  8. // Copyright (c) 2015年 刘彦玮. All rights reserved.
  9. //
  10. #import <CoreBluetooth/CoreBluetooth.h>
  11. #import "BabyOptions.h"
  12. //设备状态改变的委托
  13. typedef void (^BBCentralManagerDidUpdateStateBlock)(CBCentralManager *central);
  14. //找到设备的委托
  15. typedef void (^BBDiscoverPeripheralsBlock)(CBCentralManager *central,CBPeripheral *peripheral,NSDictionary *advertisementData, NSNumber *RSSI);
  16. //连接设备成功的block
  17. typedef void (^BBConnectedPeripheralBlock)(CBCentralManager *central,CBPeripheral *peripheral);
  18. //连接设备失败的block
  19. typedef void (^BBFailToConnectBlock)(CBCentralManager *central,CBPeripheral *peripheral,NSError *error);
  20. //断开设备连接的bock
  21. typedef void (^BBDisconnectBlock)(CBCentralManager *central,CBPeripheral *peripheral,NSError *error);
  22. //找到服务的block
  23. typedef void (^BBDiscoverServicesBlock)(CBPeripheral *peripheral,NSError *error);
  24. //找到Characteristics的block
  25. typedef void (^BBDiscoverCharacteristicsBlock)(CBPeripheral *peripheral,CBService *service,NSError *error);
  26. //更新(获取)Characteristics的value的block
  27. typedef void (^BBReadValueForCharacteristicBlock)(CBPeripheral *peripheral,CBCharacteristic *characteristic,NSError *error);
  28. //获取Characteristics的名称
  29. typedef void (^BBDiscoverDescriptorsForCharacteristicBlock)(CBPeripheral *peripheral,CBCharacteristic *service,NSError *error);
  30. //获取Descriptors的值
  31. typedef void (^BBReadValueForDescriptorsBlock)(CBPeripheral *peripheral,CBDescriptor *descriptor,NSError *error);
  32. //babyBluettooth cancelScanBlock方法调用后的回调
  33. typedef void (^BBCancelScanBlock)(CBCentralManager *centralManager);
  34. //babyBluettooth cancelAllPeripheralsConnection 方法调用后的回调
  35. typedef void (^BBCancelAllPeripheralsConnectionBlock)(CBCentralManager *centralManager);
  36. typedef void (^BBDidWriteValueForCharacteristicBlock)(CBCharacteristic *characteristic,NSError *error);
  37. typedef void (^BBDidWriteValueForDescriptorBlock)(CBDescriptor *descriptor,NSError *error);
  38. typedef void (^BBDidUpdateNotificationStateForCharacteristicBlock)(CBCharacteristic *characteristic,NSError *error);
  39. typedef void (^BBDidReadRSSIBlock)(NSNumber *RSSI,NSError *error);
  40. typedef void (^BBDidDiscoverIncludedServicesForServiceBlock)(CBService *service,NSError *error);
  41. typedef void (^BBDidUpdateNameBlock)(CBPeripheral *peripheral);
  42. typedef void (^BBDidModifyServicesBlock)(CBPeripheral *peripheral,NSArray *invalidatedServices);
  43. //peripheral model
  44. typedef void (^BBPeripheralModelDidUpdateState)(CBPeripheralManager *peripheral);
  45. typedef void (^BBPeripheralModelDidAddService)(CBPeripheralManager *peripheral,CBService *service,NSError *error);
  46. typedef void (^BBPeripheralModelDidStartAdvertising)(CBPeripheralManager *peripheral,NSError *error);
  47. typedef void (^BBPeripheralModelDidReceiveReadRequest)(CBPeripheralManager *peripheral,CBATTRequest *request);
  48. typedef void (^BBPeripheralModelDidReceiveWriteRequests)(CBPeripheralManager *peripheral,NSArray *requests);
  49. typedef void (^BBPeripheralModelDidSubscribeToCharacteristic)(CBPeripheralManager *peripheral,CBCentral *central,CBCharacteristic *characteristic);
  50. typedef void (^BBPeripheralModelDidUnSubscribeToCharacteristic)(CBPeripheralManager *peripheral,CBCentral *central,CBCharacteristic *characteristic);
  51. @interface BabyCallback : NSObject
  52. #pragma mark - callback block
  53. //设备状态改变的委托
  54. @property (nonatomic, copy) BBCentralManagerDidUpdateStateBlock blockOnCentralManagerDidUpdateState;
  55. //发现peripherals
  56. @property (nonatomic, copy) BBDiscoverPeripheralsBlock blockOnDiscoverPeripherals;
  57. //连接callback
  58. @property (nonatomic, copy) BBConnectedPeripheralBlock blockOnConnectedPeripheral;
  59. //连接设备失败的block
  60. @property (nonatomic, copy) BBFailToConnectBlock blockOnFailToConnect;
  61. //断开设备连接的bock
  62. @property (nonatomic, copy) BBDisconnectBlock blockOnDisconnect;
  63. //发现services
  64. @property (nonatomic, copy) BBDiscoverServicesBlock blockOnDiscoverServices;
  65. //发现Characteristics
  66. @property (nonatomic, copy) BBDiscoverCharacteristicsBlock blockOnDiscoverCharacteristics;
  67. //发现更新Characteristics的
  68. @property (nonatomic, copy) BBReadValueForCharacteristicBlock blockOnReadValueForCharacteristic;
  69. //获取Characteristics的名称
  70. @property (nonatomic, copy) BBDiscoverDescriptorsForCharacteristicBlock blockOnDiscoverDescriptorsForCharacteristic;
  71. //获取Descriptors的值
  72. @property (nonatomic,copy) BBReadValueForDescriptorsBlock blockOnReadValueForDescriptors;
  73. @property (nonatomic, copy) BBDidWriteValueForCharacteristicBlock blockOnDidWriteValueForCharacteristic;
  74. @property (nonatomic, copy) BBDidWriteValueForDescriptorBlock blockOnDidWriteValueForDescriptor;
  75. @property (nonatomic, copy) BBDidUpdateNotificationStateForCharacteristicBlock blockOnDidUpdateNotificationStateForCharacteristic;
  76. @property (nonatomic, copy) BBDidReadRSSIBlock blockOnDidReadRSSI;
  77. @property (nonatomic, copy) BBDidDiscoverIncludedServicesForServiceBlock blockOnDidDiscoverIncludedServicesForService;
  78. @property (nonatomic, copy) BBDidUpdateNameBlock blockOnDidUpdateName;
  79. @property (nonatomic, copy) BBDidModifyServicesBlock blockOnDidModifyServices;
  80. //babyBluettooth stopScan方法调用后的回调
  81. @property(nonatomic,copy) BBCancelScanBlock blockOnCancelScan;
  82. //babyBluettooth stopConnectAllPerihperals 方法调用后的回调
  83. @property(nonatomic,copy) BBCancelAllPeripheralsConnectionBlock blockOnCancelAllPeripheralsConnection;
  84. //babyBluettooth 蓝牙使用的参数参数
  85. @property(nonatomic,strong) BabyOptions *babyOptions;
  86. #pragma mark - 过滤器Filter
  87. //发现peripherals规则
  88. @property (nonatomic, copy) BOOL (^filterOnDiscoverPeripherals)(NSString *peripheralName, NSDictionary *advertisementData, NSNumber *RSSI);
  89. //连接peripherals规则
  90. @property (nonatomic, copy) BOOL (^filterOnconnectToPeripherals)(NSString *peripheralName, NSDictionary *advertisementData, NSNumber *RSSI);
  91. #pragma mark - peripheral model
  92. //peripheral model
  93. @property (nonatomic, copy) BBPeripheralModelDidUpdateState blockOnPeripheralModelDidUpdateState;
  94. @property (nonatomic, copy) BBPeripheralModelDidAddService blockOnPeripheralModelDidAddService;
  95. @property (nonatomic, copy) BBPeripheralModelDidStartAdvertising blockOnPeripheralModelDidStartAdvertising;
  96. @property (nonatomic, copy) BBPeripheralModelDidReceiveReadRequest blockOnPeripheralModelDidReceiveReadRequest;
  97. @property (nonatomic, copy) BBPeripheralModelDidReceiveWriteRequests blockOnPeripheralModelDidReceiveWriteRequests;
  98. @property (nonatomic, copy) BBPeripheralModelDidSubscribeToCharacteristic blockOnPeripheralModelDidSubscribeToCharacteristic;
  99. @property (nonatomic, copy) BBPeripheralModelDidUnSubscribeToCharacteristic blockOnPeripheralModelDidUnSubscribeToCharacteristic;
  100. @end