158 lines
3.8 KiB
C
158 lines
3.8 KiB
C
|
|
//
|
||
|
|
// 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
|
||
|
|
|