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 (이곳 의 공식 은 비교적 믿 을 만하 다)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.