nl::Weave::Profiles::DeviceDescription::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
기기가 속한 Weave 패브릭의 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 Device Descriptor 객체로 디코딩합니다.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
제공된 TLV 데이터 버퍼의 콘텐츠를 Weave Device Descriptor 객체로 디코딩합니다.
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 값이 기기의 WiFi rendezvous 네트워크의 ESSID 끝에 표시되는 접미사 문자열임을 나타냅니다.

공개 속성

일차

uint8_t Day

기기 제조일 (0 = 없음)

DeviceFeatures

uint32_t DeviceFeatures

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

DeviceId

uint64_t DeviceId

Weave 기기 ID (0 = 없음)

FabricId

uint64_t FabricId

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

플래그

uint8_t Flags

기기에 대한 추가 정보가 포함된 비트 필드.

ManufacturingDate

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

uint8_t Month

기기 제조 월 (1 = 1월)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

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

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

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

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

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

기본802154MAC주소

uint8_t Primary802154MACAddress[8]

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

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

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

ProductId

uint16_t ProductId

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

ProductRevision

uint16_t ProductRevision

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

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

기기 Wi-Fi 렌데즈 네트워크용 ESSID (NUL 종료됨, 길이 0 = 없음)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

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

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

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

VendorId

uint16_t VendorId

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

연도

uint16_t Year

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

공개 함수

지우기

void Clear(
  void
)

기기 설명을 지웁니다.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

공개 정적 함수

Decode

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

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

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

DecodeTLV

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

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

세부정보
매개변수
[in] data
텍스트로 인코딩된 Weave 기기 설명자 데이터가 포함된 버퍼에 대한 포인터입니다.
[in] dataLen
제공된 버퍼의 길이입니다.
[out] outDesc
채워질 기기 설명자 객체에 대한 참조입니다.
반환 값
WEAVE_ERROR_WRONG_TLV_TYPE
기기 설명 TLV가 아닌 경우
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
기기 설명 다음에 TLV 데이터가 더 많이 발생한 경우.
WEAVE_NO_ERROR
성공 시
other
오류가 발생했음을 나타내는 기타 Weave 또는 플랫폼별 오류 코드로 TLV가 인코딩되지 않습니다.

DecodeTLV

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 또는 플랫폼별 오류 코드입니다.

DecodeText

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

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

세부정보
매개변수
[in] data
텍스트로 인코딩된 Weave 기기 설명자 데이터가 포함된 버퍼에 대한 포인터입니다.
[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
성공 시

EncodeTLV

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
오류가 발생했음을 나타내는 기타 Weave 또는 플랫폼별 오류 코드로 TLV가 인코딩되지 않습니다.

EncodeTLV

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

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

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

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

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이 아닌 값이 포함되어 있는 경우