react-native-bt-device/ios/RNBTDevice/Device/ENBLEDeviceManager.h

158 lines
3.8 KiB
C
Raw Normal View History

2024-03-24 09:45:44 +00:00
//
// PPDeviceManager.h
// PaoPao
//
// Created by lvwang2002 on 14/12/11.
// Copyright (c) 2014年 paopao. All rights reserved.
//
/**
* version:0.1.9
* :2016-06-30 16:00
* :1.dataID方法
*
* version:0.1.8
* :2016-06-30 14:00
* :1..
* 2.dataID
*
* version:0.1.7
* :2016-06-03 15:07
* :1..
*
* version:0.1.6
* :2016-05-25 16:35
* :1..
*
* version:0.1.5
* :2016-05-25 14:35
* :1. 2.6 .
*
* version:0.1.4
* :2016-05-24 15:51
* :.
*
* version:0.1.3
* :2016-05-24 14:40
* :.
*
* version:0.1.2
* :2016-05-21 13:40
* :().
*
* version:0.1.1
* :2016-05-21 13:00
* :.
*
*/
#import <Foundation/Foundation.h>
#import <CoreBluetooth/CoreBluetooth.h>
#import "NSArray+LinqExtensions.h"
#import "BLEDevice.h"
#import "ENDLog.h"
typedef NS_ENUM(NSUInteger, ENSearchedType) {
ENSearchedAllType, //所有设备
ENSearchedGlucoType, //血糖
ENSearchedBPType, //血压
ENSearchedCholesterolType, //血脂
ENSearchedKetoneType //血酮
};
typedef NS_ENUM(NSUInteger, ENBTStatus) {
ENBTPowerOnStatus, //蓝牙开关开
ENBTPowerOffStatus, //蓝牙开关关
ENBTPreparedStatus //蓝牙开关准备阶段
};
@protocol DeviceManagerProtocol;
@protocol DeviceDataProtocol;
@class BLEDevice;
@interface ENBLEDeviceManager : NSObject<CBCentralManagerDelegate,CBPeripheralDelegate>
@property(nonatomic,weak)id<DeviceManagerProtocol>deviceManagerDelegate;
@property(nonatomic,weak)id<DeviceDataProtocol>deviceDataDelegate;
@property(nonatomic,strong)CBCentralManager *centralManager;
@property ENBTStatus BTStatus;
/** 创建设备的相关单例 */
+(instancetype)shareDeviceManager;
/** 判断是否有设备正在已经连接 */
-(BOOL)hasDeviceConnectedWithType:(ENSearchedType)type;
/** 判断是否有设备正在连接 */
-(BOOL)hasDeviceConnectingWithType:(ENSearchedType)type;
/** 当前连接的设备 */
-(BLEDevice *)getCurrentConnectedDeviceWithType:(ENSearchedType)type;
/** 获得当前的所有扫描到的设备 */
-(NSArray *)getSearchedDevices;
/** 更新设备刷新列表 */
-(void)postUpdateDeviceList;
/** 开始扫描 */
-(void)startScan;
/** 停止扫描 */
-(void)stopScan;
/** 指定扫描设备的类型 */
-(void)setSearchedDeviceType:(ENSearchedType)searchedDeviceType;
/** 根据UUID找到指定的设备 */
-(BLEDevice *)getDeviceWithUUID:(NSUUID *)uuid;
/** 设置是否输出 */
-(void)setIsShowLog:(BOOL)isShow;
/** 处理错误 */
-(void)uhoh:(BLEDevice *)device;
/** 断开连接 */
-(void)disconnectAllDevices;
/** 删除设备 */
-(void)removeDevice:(BLEDevice *)device;
-(void)run;
/** 返回队列 */
-(dispatch_queue_t)getPostQueue;
@end
/** 低功耗蓝牙相关协议 */
@protocol DeviceManagerProtocol <NSObject>
/** 找到新的设备 */
@optional
-(void)didDiscoverDevice:(BLEDevice *)device IsNewly:(BOOL)isNewly;
/** 找到的设备列表更新 */
@optional
/** 定时获取所有的设备 */
-(void)didUpdateSearchedDevices:(NSArray *)searchedDevices;
@optional
/** 获取当前蓝牙的状态 */
-(void)didUpdateBTStatus:(ENBTStatus)status;
@optional
-(void)didConnectedDevice:(BLEDevice *)device;
@end
@protocol DeviceDataProtocol <NSObject>
@optional
-(void)getData:(NSData *)data Peripheral:(CBPeripheral *)peripheral;
@end