蓝牙通信

DVBluetooth Objective-C && Swift

简介

该Manager 主要是在 CoreBluetooth 的基础上再次封装。
(Swift 版本已经更新:下载地址)

下载地址

Github地址: https://github.com/HeDefine/DVBluetooth]

1. 手动安装

  1. 下载本项目Zip,并解压.
  2. 拖取DVBluetooth/DVBluetooth 文件夹到你的项目中
  3. 导入本项目 import "DVBluetooth/DVBluetooth.h"

2.Cocoapod 安装

  1. 安装Cocoapod, 并在根目录下运行 pod init
  2. Podfile文件中输入
pod 'DVBluetooth','~> 0.2.0'
  1. 命令行运行pod update

使用方法

建议新建一个类,继承原有的 DVBleManager 以及新建一个 Protocol . 对收到的数据处理后可以通过协议回调

根据自己项目的需求,在这个类里面可以自定义 1. 特征值的UUID 2.对回调数据的处理 3.处理发送数据的方式

1. 配置

#define UUIDWriteDataService  @"FFE5"
#define UUIDWriteDataCharateristic @"FFE9"
#define UUIDReadDataService  @"FFE0"
#define UUIDReadDataCharateristic @"FFE4"

#define UUIDInfoService  @"FF90"
#define UUIDDeviceNameCharateristic @"FF91"

+ (instancetype)shared {
    static BedManager *instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [[BedManager alloc] init];
    });
    return instance;
}

- (instancetype)init {
    self = [super init];
    if (self) {
        [self configuration];
    }
    return self;
}

/**
 初始化配置, 个性化配置
 */
- (void)configuration {
    //筛选掉扫描到的设备
    [self setScannedPeriFilterBlock:^BOOL(DVBlePeripheral *peripheral) {
        return peripheral.name && peripheral.name.length > 0;
    }];
    //筛选掉服务和特征值
    [self setConnectPeriFilterBlock:^BOOL(DVBlePeripheral *peripheral) {
        BOOL have1 = [peripheral filterService:UUIDWriteDataService
                               characteristics:@[UUIDWriteDataCharateristic]];
        BOOL have2 = [peripheral filterService:UUIDReadDataService
                               characteristics:@[UUIDReadDataCharateristic]];
        return have1 && have2;
    }];
    //监听值
    [self setNotifyPeriCharacteristicBlock:^(DVBlePeripheral *peripheral) {
        [peripheral startNotifyCharacteristicUUID:UUIDReadDataCharateristic];
    }];
    
    self.enableReconnect = YES;
    self.reconnectDuration = 5;
    self.maxReconnectTimes = 5;
    
    self.maxConnectedPeripheralsCount = 1;
}

2. 读取和写入回调的复写, 主要用来对回调数据的处理

/**
 写入 回调
 */
- (void)didPeripheralWriteData:(DVBlePeripheral *)peripheral
            characteristicUUID:(NSString *)characteristicUUID
                   resultState:(DVBlePeripheralWriteState)result {
    if ([characteristicUUID isEqualToString:UUIDWriteDataCharateristic]) {
        /****    发送数据回调    ****/
    }
}


/**
 读取回调. 处理数据
 */
- (void)didPeripheralReadData:(DVBlePeripheral *)peripheral
           characteristicUUID:(NSString *)characteristicUUID
                         data:(nullable NSData *)data
                  resultState:(DVBlePeripheralReadState)result {
    if ([characteristicUUID isEqualToString:UUIDReadDataCharateristic]) {
        /****    处理数据      ***/
    }
}

3. 写入方法

#pragma mark - 个性化设置
- (void)writeData:(NSString *)dataStr {
    if (self.connectedPeripherals.count == 0) {
        NSLog(@"当前没有连接的设备");
        return;
    }
    //将十六进制字符串转换成NSData型。
    NSData *data = [NSData dataFromHexString:dataStr];
    //发送数据
    [self writeDataToPeripheral:self.connectedPeripherals.firstObject
           onCharacteristicUUID:UUIDWriteDataCharateristic
                       withData:data];
}

//头部抬起指令
- (void)headup {
    [self writeData:@"FFFFFFFFFFFF"];
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,569评论 4 363
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,499评论 1 294
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,271评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,087评论 0 209
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,474评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,670评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,911评论 2 313
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,636评论 0 202
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,397评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,607评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,093评论 1 261
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,418评论 2 254
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,074评论 3 237
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,092评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,865评论 0 196
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,726评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,627评论 2 270

推荐阅读更多精彩内容