nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor

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

Zawiera opisowe informacje o urządzeniu Weave.

Podsumowanie

Konstruktory i niszczyciele

WeaveDeviceDescriptor(void)

Typy publiczne

@180{
  kMaxSerialNumberLength = 32,
  kMaxPairingCodeLength = 16,
  kMaxRendezvousWiFiESSID = 32,
  kMaxSoftwareVersionLength = WEAVE_CONFIG_MAX_SOFTWARE_VERSION_LENGTH
}
enum | typ wyliczeniowy
Określa maksymalną długość niektórych atrybutów.
@181{
  kFeature_HomeAlarmLinkCapable = 0x00000001,
  kFeature_LinePowered = 0x00000002
}
enum | typ wyliczeniowy
Flagi funkcji wskazujące konkretne możliwości urządzenia.
@182{
  kFlag_IsRendezvousWiFiESSIDSuffix = 0x01
}
enum | typ wyliczeniowy
Definicje pól flag.

Atrybuty publiczne

Day
uint8_t
Dzień produkcji urządzenia (0 = brak)
DeviceFeatures
uint32_t
Pole bitowe wskazujące obsługę określonych funkcji urządzenia.
DeviceId
uint64_t
Identyfikator urządzenia Weave (0 = brak)
FabricId
uint64_t
Identyfikator tkaniny Weave, do której należy urządzenie (0 = brak)
Flags
uint8_t
Pole bitowe zawierające dodatkowe informacje o urządzeniu.
ManufacturingDate
struct nl::Weave::Profiles::DeviceDescription::WeaveDeviceDescriptor::@183
Month
uint8_t
Miesiąc produkcji urządzenia (1 = styczeń)
PairingCode[kMaxPairingCodeLength+1]
char
Kod parowania urządzenia (zakończony NUL, długość 0 = brak)
PairingCompatibilityVersionMajor
uint16_t
Główna wersja zgodności oprogramowania do parowania urządzeń.
PairingCompatibilityVersionMinor
uint16_t
Wersja obsługi dodatkowego oprogramowania do parowania urządzeń.
Primary802154MACAddress[8]
uint8_t
Adres MAC podstawowego interfejsu 802.15.4 (big-endian, wszystkie zera = brak)
PrimaryWiFiMACAddress[6]
uint8_t
Adres MAC głównego interfejsu Wi-Fi (big-endian, wszystkie zera = brak)
ProductId
uint16_t
Kod produktu urządzenia (0 = brak)
ProductRevision
uint16_t
Wersja produktu (0 = nie występuje)
RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]
char
Identyfikator ESSID sieci Wi-Fi urządzenia (zakończona NUL, długość 0 = brak)
SerialNumber[kMaxSerialNumberLength+1]
char
Numer seryjny urządzenia (zakończony NUL, długość 0 = brak)
SoftwareVersion[kMaxSoftwareVersionLength+1]
char
Aktywna wersja oprogramowania (zakończona NUL, długość 0 = brak)
VendorId
uint16_t
Kod dostawcy urządzenia (0 = brak)
Year
uint16_t
Rok produkcji urządzenia (ważny zakres: 2001–2099)

Funkcje publiczne

Clear(void)
void
Usuwa opis urządzenia.

Publiczne funkcje statyczne

Decode(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Dekoduje zawartość dostarczonego bufora danych do obiektu deskryptora urządzenia Weave.
DecodeTLV(const uint8_t *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Dekoduje zawartość podanego bufora danych TLV do obiektu deskryptora urządzenia Weave.
DecodeTLV(nl::Weave::TLV::TLVReader & reader, WeaveDeviceDescriptor & outDesc)
Dekoduje opis urządzenia za pomocą dostarczonego wstępnie zainicjowanego programu TLVReader.
DecodeText(const char *data, uint32_t dataLen, WeaveDeviceDescriptor & outDesc)
Dekoduje zawartość podanego bufora danych tekstowych do obiektu deskryptora urządzenia Weave.
EncodeTLV(const WeaveDeviceDescriptor & desc, uint8_t *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Koduje podany deskryptor urządzenia jako Weave TLV zapisany w dostarczonym buforze.
EncodeTLV(const WeaveDeviceDescriptor & desc, nl::Weave::TLV::TLVWriter & writer)
Koduje podany deskryptor urządzenia jako Weave TLV zapisanym przy użyciu podanego wstępnie zainicjowanego obiektu TLVWriter.
EncodeText(const WeaveDeviceDescriptor & desc, char *buf, uint32_t bufLen, uint32_t & outEncodedLen)
Koduje podany deskryptor urządzenia jako tekst zapisywany w udostępnionym buforze.
IsZeroBytes(const uint8_t *buf, uint32_t len)
bool
Sprawdź, czy podany bufor zawiera tylko zera.

Typy publiczne

@180

 @180

Określa maksymalną długość niektórych atrybutów.

Właściwości
kMaxPairingCodeLength

Maksymalna długość kodu parowania.

kMaxRendezvousWiFiESSID

Maksymalna długość identyfikatora ESSID sieci Wi-Fi dla rendezvous.

kMaxSerialNumberLength

Maksymalna długość numeru seryjnego.

kMaxSoftwareVersionLength

Maksymalna długość wersji oprogramowania.

@181

 @181

Flagi funkcji wskazujące konkretne możliwości urządzenia.

Właściwości
kFeature_HomeAlarmLinkCapable

Oznacza urządzenie Nest Protect, które obsługuje połączenie z domowym panelem alarmu.

kFeature_LinePowered

Oznacza urządzenie, które wymaga zasilania sieciowego.

@182

 @182

Definicje pól flag.

Właściwości
kFlag_IsRendezvousWiFiESSIDSuffix

Wskazuje, że wartość RendezvousWiFiESSID jest ciągiem znaków sufiksu, który jest widoczny na końcu identyfikatora ESSID sieci RendezvousWiFiESSID urządzenia.

Atrybuty publiczne

Dzień

uint8_t Day

Dzień produkcji urządzenia (0 = brak)

DeviceFeatures

uint32_t DeviceFeatures

Pole bitowe wskazujące obsługę określonych funkcji urządzenia.

DeviceId

uint64_t DeviceId

Identyfikator urządzenia Weave (0 = brak)

FabricId

uint64_t FabricId

Identyfikator tkaniny Weave, do której należy urządzenie (0 = brak)

Flagi

uint8_t Flags

Pole bitowe zawierające dodatkowe informacje o urządzeniu.

ManufacturingDate

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

Miesiąc

uint8_t Month

Miesiąc produkcji urządzenia (1 = styczeń)

PairingCode

char PairingCode[kMaxPairingCodeLength+1]

Kod parowania urządzenia (zakończony NUL, długość 0 = brak)

PairingCompatibilityVersionMajor

uint16_t PairingCompatibilityVersionMajor

Główna wersja zgodności oprogramowania do parowania urządzeń.

PairingCompatibilityVersionMinor

uint16_t PairingCompatibilityVersionMinor

Wersja obsługi dodatkowego oprogramowania do parowania urządzeń.

Podstawowy adres MAC 802154

uint8_t Primary802154MACAddress[8]

Adres MAC podstawowego interfejsu 802.15.4 (big-endian, wszystkie zera = brak)

PrimaryWiFiMACAddress

uint8_t PrimaryWiFiMACAddress[6]

Adres MAC głównego interfejsu Wi-Fi (big-endian, wszystkie zera = brak)

ProductId

uint16_t ProductId

Kod produktu urządzenia (0 = brak)

ProductRevision

uint16_t ProductRevision

Wersja produktu (0 = nie występuje)

RendezvousWiFiESSID

char RendezvousWiFiESSID[kMaxRendezvousWiFiESSID+1]

Identyfikator ESSID sieci Wi-Fi urządzenia (zakończona NUL, długość 0 = brak)

SerialNumber

char SerialNumber[kMaxSerialNumberLength+1]

Numer seryjny urządzenia (zakończony NUL, długość 0 = brak)

SoftwareVersion

char SoftwareVersion[kMaxSoftwareVersionLength+1]

Aktywna wersja oprogramowania (zakończona NUL, długość 0 = brak)

VendorId

uint16_t VendorId

Kod dostawcy urządzenia (0 = brak)

Rok

uint16_t Year

Rok produkcji urządzenia (ważny zakres: 2001–2099)

Funkcje publiczne

Wyczyść

void Clear(
  void
)

Usuwa opis urządzenia.

WeaveDeviceDescriptor

 WeaveDeviceDescriptor(
  void
)

Publiczne funkcje statyczne

Decode

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

Dekoduje zawartość dostarczonego bufora danych do obiektu deskryptora urządzenia Weave.

Szczegóły
Parametry
[in] data
Wskaźnik do bufora zawierającego dane tekstowe lub dane deskryptora urządzenia Weave zakodowane w TLV.
[in] dataLen
Długość podanego bufora.
[out] outDesc
Odwołanie do obiektu deskryptora urządzenia do wypełnienia.
Zwracane wartości
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Jeśli podany bufor jest nieprawidłowy.
WEAVE_NO_ERROR
Powodzenie.
other
Inne kody błędów Weave lub typowe dla platformy wskazujące, że wystąpił błąd uniemożliwiający dekodowanie TLV.

DecodeTLV

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

Dekoduje zawartość podanego bufora danych TLV do obiektu deskryptora urządzenia Weave.

Szczegóły
Parametry
[in] data
Wskaźnik do bufora zawierającego zakodowane w formacie tekstowym dane deskryptora urządzenia Weave.
[in] dataLen
Długość podanego bufora.
[out] outDesc
Odwołanie do obiektu deskryptora urządzenia do wypełnienia.
Zwracane wartości
WEAVE_ERROR_WRONG_TLV_TYPE
Jeśli to nie jest TLV w opisie urządzenia.
WEAVE_ERROR_UNEXPECTED_TLV_ELEMENT
Jeśli po opisie urządzenia występuje więcej danych TLV.
WEAVE_NO_ERROR
Powodzenie.
other
Inne kody błędów Weave lub typowe dla platformy wskazujące, że wystąpił błąd uniemożliwiający kodowanie TLV.

DecodeTLV

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

Dekoduje opis urządzenia za pomocą dostarczonego wstępnie zainicjowanego programu TLVReader.

Szczegóły
Parametry
[in] reader
Odwołanie do wstępnie zainicjowanego pliku TLVReader.
[out] outDesc
Odwołanie do obiektu deskryptora urządzenia do wypełnienia.
Zwracane wartości
WEAVE_ERROR_INVALID_TLV_ELEMENT
Jeśli w danych TLV zostaną znalezione nieprawidłowe informacje o opisie urządzenia.
WEAVE_NO_ERROR
Powodzenie.
other
Inne kody błędów Weave lub typowe dla platformy wskazujące, że wystąpił błąd, który uniemożliwił dekodowanie TLV.

DecodeText

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

Dekoduje zawartość podanego bufora danych tekstowych do obiektu deskryptora urządzenia Weave.

Szczegóły
Parametry
[in] data
Wskaźnik do bufora zawierającego zakodowane w formacie tekstowym dane deskryptora urządzenia Weave.
[in] dataLen
Długość podanego bufora.
[out] outDesc
Odwołanie do obiektu deskryptora urządzenia do wypełnienia.
Zwracane wartości
WEAVE_ERROR_UNSUPPORTED_DEVICE_DESCRIPTOR_VERSION
Jeśli wersja zakodowanych danych nie jest obsługiwana.
WEAVE_ERROR_INVALID_DEVICE_DESCRIPTOR
Jeśli zakodowane dane są nieprawidłowo sformatowane.
WEAVE_ERROR_INCORRECT_STATE
Jeśli dekoder wykrył niespójny stan.
WEAVE_ERROR_BUFFER_TOO_SMALL
Osiągnięcie końca bufora podczas dekodowania.
WEAVE_NO_ERROR
Powodzenie.

EncodeTLV

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

Koduje podany deskryptor urządzenia jako Weave TLV zapisany w dostarczonym buforze.

Szczegóły
Parametry
[in] desc
Odwołanie do deskryptora urządzenia Weave do zakodowania.
[out] buf
Wskaźnik do bufora, w którym zostanie zapisany zakodowany tekst.
[in] bufLen
Długość dostarczonego bufora.
[out] outEncodedLen
Odwołanie do zmiennej długości, która zostanie zastąpiona liczbą znaków zapisanych w buforze.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
other
Inne kody błędów Weave lub typowe dla platformy wskazujące, że wystąpił błąd uniemożliwiający kodowanie TLV.

EncodeTLV

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

Koduje podany deskryptor urządzenia jako Weave TLV zapisanym przy użyciu podanego wstępnie zainicjowanego obiektu TLVWriter.

Służy do dodawania opisu urządzenia do większych danych wyjściowych TLV.

Szczegóły
Parametry
[in] desc
Odwołanie do deskryptora urządzenia Weave do zakodowania.
[in] writer
Odwołanie do wstępnie zainicjowanego obiektu TLVWriter, który ma zostać użyty.
Zwracane wartości
WEAVE_NO_ERROR
Powodzenie.
other
Inne kody błędów Weave lub typowe dla platformy wskazujące, że wystąpił błąd uniemożliwiający kodowanie TLV.

EncodeText

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

Koduje podany deskryptor urządzenia jako tekst zapisywany w udostępnionym buforze.

Szczegóły
Parametry
[in] desc
Odwołanie do deskryptora urządzenia Weave do zakodowania.
[out] buf
Wskaźnik do bufora, w którym zostanie zapisany zakodowany tekst.
[in] bufLen
Długość dostarczonego bufora.
[out] outEncodedLen
Odwołanie do zmiennej długości, która zostanie zastąpiona liczbą znaków zapisanych w buforze.
Zwracane wartości
WEAVE_ERROR_BUFFER_TOO_SMALL
Jeśli podany bufor jest zbyt mały dla wygenerowanego opisu tekstowego.
WEAVE_ERROR_INVALID_ARGUMENT
Jeśli pole deskryptora jest nieprawidłowe.
WEAVE_NO_ERROR
Powodzenie.

IsZeroBytes

bool IsZeroBytes(
  const uint8_t *buf,
  uint32_t len
)

Sprawdź, czy podany bufor zawiera tylko zera.

Szczegóły
Parametry
[in] buf
Wskaźnik do bufora.
[in] len
Długość bufora.
Zwracane wartości
TRUE
Jeśli bufor zawiera tylko zera.
FALSE
Czy bufor zawiera wartości inne niż zero.