Google은 흑인 공동체를 위한 인종적 평등을 추구하기 위해 노력하고 있습니다. 자세히 알아보기
컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.

nl::Weave::프로필::기기 설명::WeaveDeviceDescriptor

#include <src/lib/profiles/device-description/DeviceDescription.h>

Weave 기기에 대한 설명 정보를 포함합니다.

요약

생성자 및 소멸자

WeaveDeviceDescriptor(void)

공개 유형

@180{
  kMaxSerialNumberLength = 32,
  kMaxPairingCodeLength = 16,
  kMaxRendezvousWiFiESSID = 32,
  kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum
일부 속성의 최대 길이를 정의합니다.
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
enum
특정 기기 기능을 나타내는 기능 플래그입니다.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum
플래그 필드 정의입니다.

공개 속성

Day
uint8_t
기기 제조일 (0 = 없음)
DeviceFeatures
uint32_t
특정 기기 기능 지원을 나타내는 비트 필드입니다.
DeviceId
uint64_t
Weave 기기 ID (0 = 없음)
FabricId
uint64_t
기기가 속한 위브 패브릭의 ID (0 = 없음)
Flags
uint8_t
기기에 대한 추가 정보를 포함하는 비트필드.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
기기 제조 월 (1 = 1월)
PairingCode[kMaxPairingCodeLength+1]
char
기기 페어링 코드 (NUL 종료됨, 0 길이 = 없음)
PairingCompatibilityVersionMajor
uint16_t
기기 페어링 소프트웨어 호환성 버전입니다.
PairingCompatibilityVersionMinor
uint16_t
일부 기기 페어링 소프트웨어 호환성 버전
Primary802154MACAddress[8]
uint8_t
기본 802.15.4 인터페이스의 MAC 주소 (big-endian, 모두 0 = 없음)
PrimaryWiFiMACAddress[6]
uint8_t
기본 Wi-Fi 인터페이스의 MAC 주소 (big-endian, 모두 0 = 없음)
ProductId
uint16_t
기기 제품 코드 (0 = 없음)
ProductRevision
uint16_t
기기 제품 버전 (0 = 없음)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
기기 Wi-Fi 렌더비 네트워크의 ESSID (NUL 종료, 0 길이 = 없음)
SerialNumber[kMaxSerialNumberLength+1]
char
기기 일련번호 (NUL 종료, 0 길이 = 없음)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
활성 소프트웨어 버전 (NUL 종료, 0 길이 = 없음)
VendorId
uint16_t
기기 공급업체 코드 (0 = 없음)
Year
uint16_t
기기 제조 연도 (유효 범위: 2001~2099)

공개 함수

Clear(void)
void
기기 설명을 지웁니다.

공개 정적 함수

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
제공된 데이터 버퍼의 콘텐츠를 Weave 기기 설명어 객체로 디코딩합니다.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
제공된 TLV 데이터 버퍼의 콘텐츠를 Weave 기기 설명어 객체로 디코딩합니다.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
제공된 사전 초기화 TLVReader를 사용하여 기기 설명을 디코딩합니다.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
제공된 텍스트 데이터 버퍼의 콘텐츠를 Weave Device Descriptor 객체로 디코딩합니다.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
제공된 기기 설명자를 제공된 버퍼에 작성된 Weave TLV로 인코딩합니다.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
제공된 기기 설명어를 제공된 사전 초기화 TLVwriter 객체를 사용하여 작성한 Weave TLV로 인코딩합니다.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
제공된 기기 설명자를 제공된 버퍼에 작성된 텍스트로 인코딩합니다.
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
지정된 버퍼에 0만 포함되어 있는지 확인합니다.

공개 유형

@180

 @180

일부 속성의 최대 길이를 정의합니다.

속성
kMaxPairingCodeLength

페어링 코드 최대 길이

kMaxRendezvousWiFiESSID

Rendezvous 길이의 최대 Wi-Fi ESSID.

kMaxSerialNumberLength

최대 일련번호 길이

kMaxSoftwareVersionLength

소프트웨어 버전 최대 길이

@181

 @181

특정 기기 기능을 나타내는 기능 플래그입니다.

속성
kFeature_HomeAlarmLinkCapable

홈 알람 패널 연결을 지원하는 Nest Protect를 나타냅니다.

kFeature_LinePowered

유선 전력이 필요한 기기를 나타냅니다.

@182

 @182

플래그 필드 정의입니다.

속성
kFlag_IsRendezvousWiFiESSIDSuffix

RendezvousWiFiESSID 값이 기기 Wi-Fi rendezvous 네트워크의 ESSID 끝에 표시되는 접미사 문자열임을 나타냅니다.

공개 속성

Day

uint8_t Day

기기 제조일 (0 = 없음)

기기 기능

uint32_t DeviceFeatures

특정 기기 기능 지원을 나타내는 비트 필드입니다.

DeviceId

uint64_t DeviceId

Weave 기기 ID (0 = 없음)

FabricId

uint64_t FabricId

기기가 속한 위브 패브릭의 ID (0 = 없음)

플래그

uint8_t Flags

기기에 대한 추가 정보를 포함하는 비트필드.

제조일

struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183 ManufacturingDate

uint8_t Month

기기 제조 월 (1 = 1월)

페어링 코드

char PairingCode[kMaxPairingCodeLength+1]

기기 페어링 코드 (NUL 종료됨, 0 길이 = 없음)

CompatibilityingVersionMajor

uint16_t PairingCompatibilityVersionMajor

기기 페어링 소프트웨어 호환성 버전입니다.

페어링 호환성VersionMinor

uint16_t PairingCompatibilityVersionMinor

일부 기기 페어링 소프트웨어 호환성 버전

기본802154MACAddress

uint8_t Primary802154MACAddress[8]

기본 802.15.4 인터페이스의 MAC 주소 (big-endian, 모두 0 = 없음)

기본 Wi-FiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

기본 Wi-Fi 인터페이스의 MAC 주소 (big-endian, 모두 0 = 없음)

ProductId

uint16_t ProductId

기기 제품 코드 (0 = 없음)

제품 버전

uint16_t ProductRevision

기기 제품 버전 (0 = 없음)

렌더비스와이파이스

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

기기 Wi-Fi 렌더비 네트워크의 ESSID (NUL 종료, 0 길이 = 없음)

일련번호

char SerialNumber[kMaxSerialNumberLength+1]

기기 일련번호 (NUL 종료, 0 길이 = 없음)

소프트웨어 버전

char SoftwareVersion[kMaxSoftwareVersionLength+1]

활성 소프트웨어 버전 (NUL 종료, 0 길이 = 없음)

공급업체 ID

uint16_t VendorId

기기 공급업체 코드 (0 = 없음)

연도

uint16_t Year

기기 제조 연도 (유효 범위: 2001~2099)

공개 함수

지우기

void Clear(
  void
)

기기 설명을 지웁니다.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

공개 정적 함수

디코딩

WEAVE_ERROR Decode(
  const uint8_t *data,
  uint32_t dataLen,
  WeaveDeviceDescriptor & outDesc
)

제공된 데이터 버퍼의 콘텐츠를 Weave 기기 설명어 객체로 디코딩합니다.

세부정보
매개변수
[in] data
텍스트 또는 TLV로 인코딩된 Weave 기기 설명어 데이터를 포함하는 버퍼에 대한 포인터.
[in] dataLen
제공된 버퍼의 길이입니다.
[out] outDesc
채울 기기 설명자 객체에 대한 참조입니다.
반환 값
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
제공된 버퍼가 유효하지 않은 경우.
WEAVE_NO_ERROR
성공했습니다.
other
오류가 발생하여 TLV를 디코딩하지 못했음을 나타내는 기타 Weave 또는 플랫폼별 오류 코드입니다.

디코딩 코드

WEAVE_ERROR DecodeTLV(
  const uint8_t *data,
  uint32_t dataLen,
  WeaveDeviceDescriptor & outDesc
)

제공된 TLV 데이터 버퍼의 콘텐츠를 Weave 기기 설명어 객체로 디코딩합니다.

세부정보
매개변수
[in] data
텍스트로 인코딩된 Weave Device Descriptor 데이터를 포함하는 버퍼에 대한 포인터입니다.
[in] dataLen
제공된 버퍼의 길이입니다.
[out] outDesc
채울 기기 설명자 객체에 대한 참조입니다.
반환 값
WEAVE_ERROR_WRONG_TLV_TYPE
기기 설명(TLV)이 아닌 경우
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
기기 설명 이후에 더 많은 TLV 데이터가 발생하면
WEAVE_NO_ERROR
성공했습니다.
other
오류가 발생하여 TLV 인코딩을 방해하는 Weave 또는 플랫폼별 오류 코드.

디코딩 코드

WEAVE_ERROR DecodeTLV(
  nl::Weave::TLV::TLVReader & reader,
  WeaveDeviceDescriptor & outDesc
)

제공된 사전 초기화 TLVReader를 사용하여 기기 설명을 디코딩합니다.

세부정보
매개변수
[in] reader
사전 초기화된 TLVReader의 참조입니다.
[out] outDesc
채울 기기 설명자 객체에 대한 참조입니다.
반환 값
WEAVE_ERROR_INVALID_TLV_ELEMENT
TLV 데이터에서 잘못된 기기 설명 정보가 발견된 경우
WEAVE_NO_ERROR
성공했습니다.
other
오류가 발생하여 TLV를 디코딩하지 못했음을 나타내는 기타 Weave 또는 플랫폼별 오류 코드입니다.

디코드텍스트

WEAVE_ERROR DecodeText(
  const char *data,
  uint32_t dataLen,
  WeaveDeviceDescriptor & outDesc
)

제공된 텍스트 데이터 버퍼의 콘텐츠를 Weave Device Descriptor 객체로 디코딩합니다.

세부정보
매개변수
[in] data
텍스트로 인코딩된 Weave Device Descriptor 데이터를 포함하는 버퍼에 대한 포인터입니다.
[in] dataLen
제공된 버퍼의 길이입니다.
[out] outDesc
채울 기기 설명자 객체에 대한 참조입니다.
반환 값
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
인코딩된 데이터 버전이 지원되지 않는 경우
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
인코딩된 데이터의 형식이 올바르지 않은 경우
WEAVE_ERROR_INCORRECT_STATE
디코더에서 일관성 없는 상태가 발생한 경우
WEAVE_ERROR_BUFFER_TOO_SMALL
디코딩 중에 버퍼 끝에 도달하는 경우
WEAVE_NO_ERROR
성공했습니다.

인코딩 LV

WEAVE_ERROR EncodeTLV(
  const WeaveDeviceDescriptor & desc,
  uint8_t *buf,
  uint32_t bufLen,
  uint32_t & outEncodedLen
)

제공된 기기 설명자를 제공된 버퍼에 작성된 Weave TLV로 인코딩합니다.

세부정보
매개변수
[in] desc
인코딩할 Weave 기기 설명자에 대한 참조입니다.
[out] buf
인코딩된 텍스트가 작성될 버퍼에 대한 포인터입니다.
[in] bufLen
제공된 버퍼의 길이입니다.
[out] outEncodedLen
버퍼에 기록된 문자 수로 덮어쓸 길이 변수에 대한 참조입니다.
반환 값
WEAVE_NO_ERROR
성공했습니다.
other
오류가 발생하여 TLV 인코딩을 방해하는 Weave 또는 플랫폼별 오류 코드.

인코딩 LV

WEAVE_ERROR EncodeTLV(
  const WeaveDeviceDescriptor & desc,
  nl::Weave::TLV::TLVWriter & writer
)

제공된 기기 설명어를 제공된 사전 초기화 TLVwriter 객체를 사용하여 작성한 Weave TLV로 인코딩합니다.

이는 더 큰 TLV 출력에 기기 설명을 추가하는 데 사용됩니다.

세부정보
매개변수
[in] desc
인코딩할 Weave 기기 설명자에 대한 참조입니다.
[in] writer
사전 초기화되어 사용할 객체 참조입니다.
반환 값
WEAVE_NO_ERROR
성공했습니다.
other
오류가 발생하여 TLV 인코딩을 방해하는 Weave 또는 플랫폼별 오류 코드.

EncodeText

WEAVE_ERROR EncodeText(
  const WeaveDeviceDescriptor & desc,
  char *buf,
  uint32_t bufLen,
  uint32_t & outEncodedLen
)

제공된 기기 설명자를 제공된 버퍼에 작성된 텍스트로 인코딩합니다.

세부정보
매개변수
[in] desc
인코딩할 Weave 기기 설명자에 대한 참조입니다.
[out] buf
인코딩된 텍스트가 작성될 버퍼에 대한 포인터입니다.
[in] bufLen
제공된 버퍼의 길이입니다.
[out] outEncodedLen
버퍼에 기록된 문자 수로 덮어쓸 길이 변수에 대한 참조입니다.
반환 값
WEAVE_ERROR_BUFFER_TOO_SMALL
제공된 버퍼가 생성된 텍스트 설명에 비해 너무 작은 경우.
WEAVE_ERROR_INVALID_ARGUMENT
설명어 필드가 잘못된 경우
WEAVE_NO_ERROR
성공했습니다.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

지정된 버퍼에 0만 포함되어 있는지 확인합니다.

세부정보
매개변수
[in] buf
버퍼 포인터로,
[in] len
버퍼의 길이입니다.
반환 값
TRUE
버퍼에 0만 포함된 경우
FALSE
버퍼에 0이 아닌 값이 포함된 경우