iOS 블 루 투 스 개발 요점 기록

블 루 투 스 개발 주의:
1. 블 루 투 스 하 도 급 발송 (20 바이트 이상 하 도 급 진행)
참고:http://www.jianshu.com/p/5f1e92adfaa0 http://www.jianshu.com/p/29bd630077b4
2. 하 도 급 수신 (외부 장치 와 바이트 프로 토 콜 처리 필요)
사고방식: 받 은 데이터 흐름 의 첫 번 째 바 이 트 는 표지 위치 로 하고 01 은 시작 을 표시 하 며 10 은 계속 을 표시 하고 00 은 끝 을 표시 한다.
- (void)peripheral:(CBPeripheral *)peripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error{
NSData *data = characteristic.value;//          
    
    if (data.length == 0) {//         
        return;
    }
    
    NSData *subData = [data subdataWithRange:NSMakeRange(0, 1)];//   :0x01      0x10     0x00    
    NSData *reallyData = [data subdataWithRange:NSMakeRange(1, data.length - 1)];//      
    
    //            
    Byte *flagByte = (Byte *)[subData bytes];
    UInt16 flag = flagByte[0];
    
    //    
    if (flag == START_BYTE) {//0x01    
        _receiveData = [NSMutableData data];
        [_receiveData appendData:reallyData];
    }else if(flag == CONTINUE_BYTE){//0x10    
        [_receiveData appendData:reallyData];
    }else if(flag == END_BYTE){//0x00    
        [_receiveData appendData:reallyData];
        [[self delegate] bleDidReceiveData:_receiveData length:(int)characteristic.value.length];//    
    }
}

3. 주변 에서 지정 한 서 비 스 를 검색 하 는 것 을 중단 하지 않 고 특정한 회사 의 블 루 투 스 장치 와 같은 외부 장치 유형 만 검색 하 는 효과 가 있 습 니 다.
    NSDictionary *options = [NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], CBCentralManagerScanOptionAllowDuplicatesKey, nil];
    //              
    [self.CM scanForPeripheralsWithServices:@[[CBUUID UUIDWithString:SERVICE_UUID]] options:options];

4. 접근 장치 즉 연결 에 도달 하려 면 RSSI 값 에 따라 휴대 전화 와 블 루 투 스 장치 의 거 리 를 계산 해 야 합 니 다.
https://jingyan.baidu.com/article/2d5afd69c926b185a2e28e1f.html (이곳 의 공식 은 비교적 믿 을 만하 다)

좋은 웹페이지 즐겨찾기