You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
168 lines
4.3 KiB
168 lines
4.3 KiB
1 year ago
|
//
|
||
|
// Bluetooth.h
|
||
|
// BluetoothDemo
|
||
|
//
|
||
|
// Created by mac on 17/3/9.
|
||
|
// Copyright © 2017年 . All rights reserved.
|
||
|
//
|
||
|
|
||
|
#import <Foundation/Foundation.h>
|
||
|
#import <CoreBluetooth/CoreBluetooth.h>
|
||
|
#import "BluetoothDelegate.h"
|
||
|
#import "BluetoothDataSource.h"
|
||
|
#import "BLEConst.h"
|
||
|
#import "BlueToothItem.h"
|
||
|
#import "BluetoothTool.h"
|
||
|
#import "BlueToothEume.h"
|
||
|
#import <JL_BLEKit/JL_BLEKit.h>
|
||
|
|
||
|
/** 连接成功通知 */
|
||
|
#define BluetoothNotificationAtConnectSuccess @"BluetoothNotificationAtConnectSuccess"
|
||
|
/** 连接DFU成功通知 */
|
||
|
#define BluetoothNotificationAtDFUConnectSuccess @"BluetoothNotificationAtDFUConnectSuccess"
|
||
|
/** 连接失败通知 */
|
||
|
#define BluetoothNotificationAtConnectFail @"BluetoothNotificationAtConnectFail"
|
||
|
/** 断开连接通知 */
|
||
|
#define BluetoothNotificationAtDisconnect @"BluetoothNotificationAtDisconnect"
|
||
|
/** 重连通知 */
|
||
|
#define BluetoothNotificationAtReconnect @"BluetoothNotificationAtReconnect"
|
||
|
/** 蓝牙开关关闭 */
|
||
|
#define BluetoothNotificationAtPowerOff @"BluetoothNotificationAtPowerOff"
|
||
|
|
||
|
|
||
|
#pragma mark - BLE状态通知
|
||
|
extern NSString *kFLT_BLE_FOUND; //发现设备
|
||
|
extern NSString *kFLT_BLE_PAIRED; //已配对
|
||
|
extern NSString *kFLT_BLE_CONNECTED; //已连接
|
||
|
extern NSString *kFLT_BLE_DISCONNECTED; //断开连接
|
||
|
|
||
|
@protocol JL_SDKOtaDelegate <NSObject>
|
||
|
|
||
|
@required
|
||
|
/**
|
||
|
* ota升级过程状态回调
|
||
|
*/
|
||
|
- (void)otaProgressWithOtaResult:(JL_OTAResult)result withProgress:(float)progress;
|
||
|
|
||
|
@end
|
||
|
|
||
|
|
||
|
@interface Bluetooth : NSObject <BluetoothDelegate, BluetoothDelegate>
|
||
|
|
||
|
/** 连接状态 */
|
||
|
@property (nonatomic, assign) BOOL isConnected;
|
||
|
|
||
|
/** 写的特征值 */
|
||
|
@property (nullable, nonatomic, strong) CBCharacteristic *writecharacteristic;
|
||
|
|
||
|
/** 中心管理者 */
|
||
|
@property (nullable, nonatomic, strong) CBCentralManager *cMgr;
|
||
|
|
||
|
/** 蓝牙状态 */
|
||
|
@property (nonatomic, assign) CBManagerState state;
|
||
|
|
||
|
/** UUID数组 */
|
||
|
@property (nullable, nonatomic, strong) NSArray *services;
|
||
|
|
||
|
/** 指令序号 */
|
||
|
@property (nonatomic, assign) NSInteger bleRequestSid;
|
||
|
/** 是否正在执行 */
|
||
|
@property (nonatomic, assign) BOOL executing;
|
||
|
/** 当前设备是否已配对 */
|
||
|
@property (nonatomic, assign) BOOL isPair;
|
||
|
/** 蓝牙代理 */
|
||
|
@property (nullable, nonatomic, weak) id<BluetoothDelegate> delegate;
|
||
|
/** 成功失败代理 */
|
||
|
@property (nullable, nonatomic, weak) id<BluetoothDataSource> dataSource;
|
||
|
/** 蓝牙指令队列 */
|
||
|
@property (nonatomic, strong) NSMutableArray * bluetoothItems;
|
||
|
/// 当前连接外设
|
||
|
@property (nonatomic, strong) BLEModel * currenModel;
|
||
|
/// 延时重连时间(默认0 仅执行一次延时,随后置零)
|
||
|
@property (nonatomic, assign) NSInteger reconnectTime;
|
||
|
|
||
|
/// 是否是主动断开连接
|
||
|
@property (nonatomic ,assign) BOOL isIndependentOff;
|
||
|
|
||
|
@property(strong,nonatomic)JL_Assist * _Nullable mAssist;
|
||
|
|
||
|
|
||
|
@property (weak, nonatomic) id<JL_SDKOtaDelegate> jl_delegate;
|
||
|
|
||
|
/** FRQ OTA写特征值 */
|
||
|
@property (nullable, nonatomic, strong) CBCharacteristic *frqOTAwritecharacteristic;
|
||
|
|
||
|
|
||
|
|
||
|
@property (strong, nonatomic) NSString *__nullable lastBleMacAddress; // 上一次连接的蓝牙地址
|
||
|
|
||
|
//单例模式
|
||
|
+ (nullable instancetype)shareInstance;
|
||
|
|
||
|
/**
|
||
|
扫描外设Peripherals
|
||
|
|
||
|
@param serviceUUIDs 过滤的服务UUID
|
||
|
@param isDFU 是否DFU升级使用
|
||
|
*/
|
||
|
- (void)scanForPeripheralsWithdiscoverServices:(nullable NSArray<CBUUID *> *)serviceUUIDs
|
||
|
IsDFU:(BOOL)isDFU;
|
||
|
|
||
|
/**
|
||
|
停止扫描
|
||
|
*/
|
||
|
- (void)cancelScan;
|
||
|
|
||
|
/**
|
||
|
连接设备
|
||
|
|
||
|
@param bleModel ble模型
|
||
|
*/
|
||
|
- (void)connectedWithBleModel:(nullable BLEModel *)bleModel;
|
||
|
|
||
|
/// 断开当前连接的设备
|
||
|
/// @param isUnbind 是否解绑
|
||
|
- (void)disConnectedCurrenDevice:(BOOL)isUnbind;
|
||
|
|
||
|
/**
|
||
|
蓝牙设备重连
|
||
|
|
||
|
@param isStart 开启停止
|
||
|
*/
|
||
|
- (void)startAndStopReconnect:(BOOL)isStart;
|
||
|
|
||
|
/**
|
||
|
写入数据
|
||
|
|
||
|
@param bleItem 蓝牙命令模型
|
||
|
*/
|
||
|
- (void)writeWithBleItem:(nullable BlueToothItem *)bleItem;
|
||
|
|
||
|
/// 清空指令队列
|
||
|
- (void)removeCmdItem;
|
||
|
|
||
|
///**
|
||
|
// 同步手机状态到设备
|
||
|
//
|
||
|
// @param state 0:后台 1:前台
|
||
|
// */
|
||
|
//- (void)syncPhoneState:(BOOL)state;
|
||
|
|
||
|
/**
|
||
|
固件升级成功后重置代理
|
||
|
*/
|
||
|
- (void)firmwareCompleteResetDelegate;
|
||
|
|
||
|
/// 杰里打开表盘文件
|
||
|
- (void)openDialFile;
|
||
|
|
||
|
- (void)otaFuncWithFilePaths:(NSString *_Nonnull)otaFilePath;
|
||
|
|
||
|
|
||
|
- (void)otaTimeCheck;
|
||
|
|
||
|
- (void)otaTimeClose;
|
||
|
|
||
|
- (void)downloadZipUrl:(NSString *_Nonnull)url updatePath:(NSString *_Nonnull)path;
|
||
|
@end
|