Skip to content
coolnameismy edited this page Mar 11, 2016 · 19 revisions

====================== (NSArray *)retrievePeripheralsWithIdentifiers:(NSArray *)identifiers (NSArray *)retrieveConnectedPeripheralsWithServices:(NSArray *)serviceUUIDs 第一个只要是当前手机曾经连接过的CBPeripheral 可以通过UUID属性直接获取对象。 第二个只要是当前手机连接着的CBPeripheral对象,可以通过Service UUID来直接获取对象,注意就算不是当前的APP连接的也是可以获取到,如果不用这个API,有可能设备被当前手机连着,去扫描会扫描不到。 因为没有扫描步骤,这两个API可以大大减少连接设备的时间,同时也可以节约手机的能耗(虽然这点能耗没有卵用) 建议实现这两个方法,第二个比较简单,第一个需要用到本地存储,略复杂。

=======================用断言优化babybluetooth链式方法调用顺序的检查 =======================添加自动重连设备过滤器 =======================去掉无用的变量 =======================增加对复杂操作的支持

1:添加重启设备功能 2:添加ui,点击进入教程,github蓝牙库

设置一个log打印或不打印的开关

当一系列操作后执行的方法

//方法声明
-(void)until:(void (^)())step
       then:(void(^)(CBCentralManager *manager,CBPeripheral *peripheral))then;
-(void)until:(void (^)())step
        step:(void (^)())step;
//方法调用

 [baby 
     until:^() {
        //获取characteristic
        fetchC(characteristicc1,"ff01");
        //characteristic write操作
        writeC(characteristicc1,"ff01");
        writeC(characteristicc2,characteristicc1);
        //检查是否写成功,默认write就会检查是否写成功
        ckeckValueEqual(characteristicc1,characteristicc2);
        //check Block检查

        
     }
     then:^(CBCentralManager *manager,CBPeripheral *peripheral) {
        //do when step done
        notity(c3,c4,onBlock());
     }
 ];

 [baby until:^{
        //
    } step:^{
        //
    } then:^(CBCentralManager *manager, CBPeripheral *peripheral) {
        
  }];

//#warning 测试数据 ////个性化,读取设备养护数据 //-(void)readPlantAssistantData{ // //写入当前系统时间 //
// CBCharacteristic *currentTime = [BabyToy findCharacteristicFormServices:self.services UUIDString:@"FFA8"]; //
// if (currentTime) { // NSMutableData *data = [NSMutableData data]; // NSDateFormatter *df = [[NSDateFormatter alloc]init]; // [df setDateFormat:@"yyyy/MM/dd/hh/mm"]; // NSArray *dateArray = df stringFromDate:[NSDate date componentsSeparatedByString:@"/"]; // for (NSString *item in dateArray) { // int intItem = [item intValue]; // if (intItem > 1000) { // int hPart = intItem/100; // int lPart = intItem%2000; // [data appendData:[NSData dataWithBytes:&hPart length:1]]; // [data appendData:[NSData dataWithBytes:&lPart length:1]]; // } // else{ // [data appendData:[NSData dataWithBytes:&intItem length:1]]; // } //
// } // // [self.currPeripheral writeValue:data forCharacteristic:currentTime type:CBCharacteristicWriteWithResponse]; // } // // //读取当前RecordStartTime(FFA2)RecordPeriod(FFAB) CurrentTime(FFA8),ReadID(FFA4),ReadOT(FFA5) //
// //设置ReadID,ReadOT //
// //TransferStatus(FFA9) 写1 // CBCharacteristic *transferStatus = [BabyToy findCharacteristicFormServices:self.services UUIDString:@"FFA9"]; // // if (transferStatus) { // int i = 1; // NSData *value = [NSData dataWithBytes:&i length:sizeof(i)]; // [self.currPeripheral writeValue:value forCharacteristic:transferStatus type:CBCharacteristicWriteWithResponse]; // } // //订阅RecordBuf(FFA1)数据 // CBCharacteristic *recordBuf = [BabyToy findCharacteristicFormServices:self.services UUIDString:@"FFA1"]; // // if (recordBuf) { // [self.currPeripheral setNotifyValue:YES forCharacteristic:recordBuf]; // } //
//}