iOS 블 루 투 스 개발 - 관련 개념

5559 단어
블 루 투 스 통신 에는 두 가지 중요 한 역할 이 있 는데 그것 이 바로 중심 설비 와 외곽 설비 이다.외곽 장 치 는 중심 장치 에 필요 한 데이터 (특정한 미터 팔찌 에 기 록 된 걸음 수) 를 제공 하고 중심 장치 가 데 이 터 를 읽 고 처리 합 니 다 (특정한 미터 운동 표시 걸음 수).
  • 중심 장치 와 외곽 장치 의 직접적인 점 은 바로 외곽 장치 에 데 이 터 를 제공 하 는 것 (팔찌 기록 걸음 수) 이 중심 장치 에 데 이 터 를 처리 하 는 것 (app 이 데 이 터 를 받 아 표시 하 는 것)
  • 이다.
  • 외곽 장치 데이터 구 조 는 한 장치 에 하나 이상 의 서비스 (service) 를 포함 하고 한 서 비 스 는 하나 이상 의 특징 (characteristic) 을 포함 할 수 있다.
  • 서비스: 기능 에 필요 한 데이터 의 집합 을 완성 합 니 다.
  • 특징: 구체 적 인 특정한 데 이 터 를 기록 합 니 다.

  • 팔찌 기록 걸음 수 는 팔찌 가 제공 하 는 서비스 이지 만 이 서 비 스 는 걸음 수 뿐만 아니 라 시간 이나 운동 거리 등 도 기록 하 는 것 이 특징 이다.
  • 외곽 설 비 를 어떻게 연결 하 는 지 광고 패 키 지 를 보 냅 니 다. 광고 패 키 지 는 일부 서 비 스 를 포함 하고 그 중에서 외곽 설비 정 보 를 포함 하 는 서비스 가 있 습 니 다. 설비 정보 에 따라 우리 가 필요 로 하 는 외곽 설 비 를 확인 합 니 다.센터 장 치 는 필요 한 외곽 장 치 를 스 캔 한 후 연결 을 시작 하여 성공 하면 데 이 터 를 읽 고 쓸 수 있 습 니 다.

  • UUID
  • 보통 저희 가 사용자 정의 하지 않 고 검색 을 통 해 읽 습 니 다.
  • 일반적으로 주변 장치 역할 을 작성 할 때 장치 (NSUUID), 서비스 (CBUUID) 또는 특징 (CBUUID) 의 유일한 식별 자 를 정의 할 때 사용 합 니 다.
  • 센터 장치 역할 을 작성 할 때 지정 한 검색 장치 (NSUUID) 나 서비스 (CBUUID) 에 따라 사용 해 야 할 때 도 사 용 됩 니 다.
  • UUID 는 문자 마다 16 진수 (0 ~ 9 와 A ~ F, 4 비트 바 이 너 리) 로 표시 합 니 다.

  • NSUUID NSUUID RFC 4122 version 4 프로 토 콜 로 형 성 된 128 개의 유일한 표지 문자열 을 사용한다.여기 서 유일 하 게 블 루 투 스 설 비 를 표시 하 는 데 사용 되 는 것 은 모든 블 루 투 스 모듈 이 유일 하 다 는 것 을 의미한다.
    //     
    //       128     
    NSUUID *uu = [NSUUID UUID];
    //    UUID
    NSString *str = uu.UUIDString;
    //   UUID   
    //    ==         
    if UUID1 isEqueal: UUID2 {}
    

    CBUUID CBUUID 역시 128 개의 유일한 표지 로 블 루 투 스 를 유일 하 게 표시 하 는 서비스, 특징 또는 특징 에 대한 설명자 (descriptor) 이다.여기 서 사용 하 는 것 은 (Bluetooth SIG) 제 정 된 규범 이다.UUID 는 16 비트 또는 32 비트 의 짧 은 정형 으로 나타 나 는데 128 비트 의 긴 정형 표지 와 의 전환 관 계 는 다음 과 같다.
    /* 
     * Bluetooth_Base_UUID = 0x00000000—0000—1000—8000—00805F9B34FB
     *   
     * 128 UUID = 16 UUID * 2^96 + Bluetooth_Base_UUID 
     *   :0x 0000xxxx—0000—1000—8000—00805F9B34FB
     * 128 UUID = 32 UUID * 2^96 + BIuetooth_Base_UUID
     *   :0x xxxxxxxx—0000—1000—8000—00805F9B34FB
     */
     
    

    블 루 투 스 기술 연맹 은 이미 많은 서비스의 16 비트 표 지 를 정의 했다. 예 를 들 어 0x180A 는 설비 정보 서 비 스 를 나타 내 고 그의 descriptorDevice Information 이다.CBUUID 류 는 전환 방법 을 제공 했다.
    //         16 ,32  128    
    CBUUID *uu = [CBUUID UUIDWithString:@"0x180A"];
    NSString *str = uu.UUIDString;
    

    사용자 정의 UUID 를 생 성 하려 면 길이 가 4 또는 8 인 문자열 을 입력 할 수 있 습 니 다.길이 가 일정 해 야 합 니 다. 그렇지 않 으 면 UUID 가 nil 입 니 다.
    CBUUID *uu = [CBUUID UUIDWithString:@"abcd"];
    

    또는 터미널 명령 uuidgen 을 통 해 128 비트 의 문자열 을 만 들 수 있 습 니 다.
    CBUUID *uu = [CBUUID UUIDWithString:@"45376F2E-F9E3-4B91-A297-005BDF2FBB91"];
    

    상용 서비스의 UUID:http://blog.csdn.net/zjy323520/article/details/52164025 http://blog.csdn.net/zf_c_cqupt/article/details/52177723
    개발 에 나타 난 상수 들
    CBManagerState
    블 루 투 스 상태 정보
               ,                
       CBCentralManager CBPeripheralManager
    
     *  @enum CBManagerState
     *
     *  @constant CBManagerStateUnknown           ,    .
     *  @constant CBManagerStateResetting         ,      ,    .
     *  @constant CBManagerStateUnsupported          4.0 .
     *  @constant CBManagerStateUnauthorized         .
     *  @constant CBManagerStatePoweredOff            .
     *  @constant CBManagerStatePoweredOn               .
    

    CBCharacteristicProperties 특징 속성
    특징 값 (value) 을 사용 하거나 설명자 (descriptor) 에 접근 하 는 방법 을 알려 줍 니 다.
        Specifying the read and write properties for a characteristic’s value lets the client (a central) know what read and write permissions of the characteristic’s value are set.        --- Apple Developer Documentation
                 **  **   **  **             。
    
     *  @enum CBCharacteristicProperties
     *  
     *  @constant CBCharacteristicPropertyBroadcast
            "                 ,    init          "
     *  @constant CBCharacteristicPropertyRead
            "  "
     *  @constant CBCharacteristicPropertyWriteWithoutResponse
            "  ,              "
     *  @constant CBCharacteristicPropertyWrite
            "  ,     ,CBPeripheral          "
     *  @constant CBCharacteristicPropertyNotify
            "   ,             error      "
     *  @constant CBCharacteristicPropertyIndicate
            "   ,                ,  CBCentral      "
     *  @constant CBCharacteristicPropertyAuthenticatedSignedWrites
            "       ,            "
     *  @constant CBCharacteristicPropertyExtendedProperties
            "                     ,    init          "
     *  @constant CBCharacteristicPropertyNotifyEncryptionRequired
            "                ,             error      "
     *  @constant CBCharacteristicPropertyIndicateEncryptionRequired
            "                ,             "
    

    CBAttributePermissions
    특징 을 결정 하 는 읽 기와 쓰기, 암호 화 권한
        Specifying the read and write permissions for a characteristic’s value actually sets the permissions for the server (the peripheral) to allow the type of read or write specified by the characteristic’s properties        --- Apple Developer Documentation
                 **  **            。
    
     *  @enum CBAttributePermissions
     *
     *  CBAttributePermissionsReadable      .
     *  CBAttributePermissionsWriteable     .
     *  CBAttributePermissionsReadEncryptionRequired           
     *  CBAttributePermissionsWriteEncryptionRequired          
    

    좋은 웹페이지 즐겨찾기