nl::PairingCode

Özet

Numaralandırmalar

@353 enum
@354 enum
@355 enum
@356{
  kStandardPairingCodeLength = 6,
  kKryptonitePairingCodeLength = 9,
  kPairingCodeLenMin = 2,
  kBitsPerCharacter = 5
}
enum

İşlevler

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
Rastgele bir eşleme kodu oluşturun.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
Bir tam sayı değerini Weave eşleme kodu olarak kodlayın.
IntToPairingCodeChar(int val)
char
0..31 aralığındaki bir tam sayı değerini, karşılık gelen Örgü eşleme kodu karakterine dönüştürün.
IsValidPairingCodeChar(char ch)
bool
Sağlanan karakter geçerli bir Weave eşleme kodu karakteriyse true değerini döndürür.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Bir Kryptonite cihaz kimliği verilen bir Kryptonite eşleme kodu dizesi oluşturur.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Kryptonite eşleme kodunda kodlanmış cihaz kimliğini döndürür.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Nevis cihaz kimliği verilen bir Nevis eşleme kod dizesi oluşturur.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Nevis eşleme kodunda kodlanmış cihaz kimliğini döndürür.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
Eşleme kodu dizesindeki karakterleri normalleştirin.
PairingCodeCharToInt(char ch)
int
Weave eşleme kod karakterini 0..31 aralığındaki bir tam sayı değerine dönüştürün.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Weave eşleme kodunu tam sayı değeri olarak çözün.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Weave eşleme kodunu, onay karakteriyle doğrulayın.

Numaralandırmalar

@353

 @353

@354

 @354

@355

 @355

@356

 @356
Özellikler
kBitsPerCharacter

Tek bir eşleme kodu karakterinde kodlanmış bit sayısı.

kKryptonitePairingCodeLength

Kryptonite için eşleme kodu uzunluğu.

kPairingCodeLenMin

Eşleme kodunun minimum uzunluğu.

kStandardPairingCodeLength

Çoğu Nest ürünü için eşleme kodu uzunluğu.

İşlevler

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

Rastgele bir eşleme kodu oluşturun.

İşlev, belirtilen uzunlukta rastgele bir Weave eşleme kod dizesi oluşturur. değeri (büyük-endien, 32'lik taban rakamı ve sondaki Verhoeff kontrol karakteri) şeklinde kodlanır. Oluşturulan dize matchCodeLen parametresi tarafından belirtilen sabit uzunluğa sahip. Bu uzunluğun karşılanması için dize, sol tarafta sıfırlarla doldurulur.

Ayrıntılar
Parametreler
[in] pairingCodeLen
Sondaki kontrol karakteri de dahil olmak üzere eşleme kod dizesi için istenen uzunluk. En az 2 olmalıdır.
[out] outBuf
Kodlanmış eşleme kodunu alacak karakter arabelleğine işaret eden bir işaretçi ve boş bir sonlandırıcı karakteri. Sağlanan arabellek en az matchingCodeLen + 1 kadar büyük olmalıdır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INVALID_ARGUMENT
matchCodeLen değeri < ise 2 veya sağlanan tam sayı değeri, matchingCodeLen tarafından belirtilen karakter sayısı, kontrol karakteri için eksi 1 olarak kodlanamaz.

IntToPairingCode

WEAVE_ERROR IntToPairingCode(
  uint64_t val,
  uint8_t pairingCodeLen,
  char *outBuf
)

Bir tam sayı değerini Weave eşleme kodu olarak kodlayın.

İşlev, büyük sonda, 32'lik tabana ait bir sayı ve sondaki Verhoeff kontrol karakteri olarak kodlanmış, sağlanmış bir imzalanmamış tam sayı değerinden oluşan bir Weave eşleme kod dizesi oluşturur. Oluşturulan dize matchCodeLen parametresi tarafından belirtilen sabit uzunluğa sahip. Bu uzunluğun karşılanması için dize, sol tarafta sıfırlarla doldurulur.

Ayrıntılar
Parametreler
[in] val
Kodlanacak değer.
[in] pairingCodeLen
Sondaki kontrol karakteri de dahil olmak üzere, kodlanmış eşleme kodu dizesinin istenen uzunluğu. En az 2 olmalıdır.
[out] outBuf
Kodlanmış eşleme kodunu alacak karakter arabelleğine işaret eden bir işaretçi ve boş bir sonlandırıcı karakteri. Sağlanan arabellek en az matchingCodeLen + 1 kadar büyük olmalıdır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INVALID_ARGUMENT
matchCodeLen değeri < ise 2 veya sağlanan tam sayı değeri, matchingCodeLen tarafından belirtilen karakter sayısı, kontrol karakteri için eksi 1 olarak kodlanamaz.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

0..31 aralığındaki bir tam sayı değerini, karşılık gelen Weave eşleme kodu karakterine dönüştürün.

Bu işlevin her zaman büyük harfli karakterler oluşturduğunu unutmayın.

Ayrıntılar
Parametreler
[in] val
Dönüştürülecek tam sayı değeri.
İadeler
Belirtilen tam sayı değerine karşılık gelen eşleme kodu karakteri veya tam sayı değeri aralık dışındaysa 0.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

Sağlanan karakter geçerli bir Weave eşleme kodu karakteriyse true değerini döndürür.

Bu işlevin büyük/küçük harfe duyarlı olmadığını unutmayın.

Ayrıntılar
Parametreler
[in] ch
Test edilecek karakter.
İadeler
Sağlanan karakter geçerli bir Weave eşleme kodu karakteriyse doğru değerini döndürür.

KryptoniteDeviceIdToPairingCode

WEAVE_ERROR KryptoniteDeviceIdToPairingCode(
  uint64_t deviceId,
  char *pairingCodeBuf,
  size_t pairingCodeBufSize
)

Bir Kryptonite cihaz kimliği verilen bir Kryptonite eşleme kodu dizesi oluşturur.

Ayrıntılar
Parametreler
[in] deviceId
Kryptonite cihaz kimliği.
[out] pairingCodeBuf
Bir NULL sonlandırma karakteri olan Kryptonite eşleme kodunu alacak arabelleğe işaret eden bir işaret. Sağlanan arabelleğin boyutu en az 7 karakter olmalıdır.
[in] pairingCodeBufSize
matchCodeBuf tarafından işaret edilen arabelleğin boyutu.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INVALID_ARGUMENT
Sağlanan cihaz kimliği aralık dışındaysa veya sağlanan arabellek çok küçükse.

KryptonitePairingCodeToDeviceId

WEAVE_ERROR KryptonitePairingCodeToDeviceId(
  const char *pairingCode,
  uint64_t & deviceId
)

Kryptonite eşleme kodunda kodlanmış cihaz kimliğini döndürür.

Ayrıntılar
Parametreler
[in] pairingCode
Kryptonite eşleme kodu içeren, NULL sonlu bir dize.
[out] deviceId
Kodu çözülmüş Kryptonite cihaz kimliğini alan bir tam sayı referansı.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INVALID_ARGUMENT
Sağlanan eşleştirme kodunun uzunluğu yanlışsa, eşleme kodu geçersiz karakterler içeriyorsa ya da eşleme kodunun ilk karakterleri kontrol karakteriyle tutarlı değilse.

NevisDeviceIdToPairingCode

WEAVE_ERROR NevisDeviceIdToPairingCode(
  uint64_t deviceId,
  char *pairingCodeBuf,
  size_t pairingCodeBufSize
)

Nevis cihaz kimliği verilen bir Nevis eşleme kod dizesi oluşturur.

Ayrıntılar
Parametreler
[in] deviceId
Nevis cihaz kimliği.
[out] pairingCodeBuf
Nevis eşleme kodunu alacak arabelleğe yönelik bir işaret, bir NULL sonlandırma karakteri. Sağlanan arabelleğin boyutu en az 7 karakter olmalıdır.
[in] pairingCodeBufSize
matchCodeBuf tarafından işaret edilen arabelleğin boyutu.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INVALID_ARGUMENT
Sağlanan cihaz kimliği aralık dışındaysa veya arabellek çok küçükse.

NevisPairingCodeToDeviceId

WEAVE_ERROR NevisPairingCodeToDeviceId(
  const char *pairingCode,
  uint64_t & deviceId
)

Nevis eşleme kodunda kodlanmış cihaz kimliğini döndürür.

Ayrıntılar
Parametreler
[in] pairingCode
Nevis eşleme kodu içeren NULL ile sonlandırılmış bir dize.
[out] deviceId
Kodu çözülmüş Nevis cihaz kimliğini alan bir tam sayıya referans.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INVALID_ARGUMENT
Sağlanan eşleştirme kodunun uzunluğu yanlışsa, eşleme kodu geçersiz karakterler içeriyorsa ya da eşleme kodunun ilk karakterleri kontrol karakteriyle tutarlı değilse.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

Eşleme kodu dizesindeki karakterleri normalleştirin.

Bu işlev tüm alfabetik karakterleri büyük harfe dönüştürür ve geçersiz "I", "O", "Q" karakterlerini eşler ve "Z" '1', '0', '0' olarak ve "2" çevirir ve eşleme olmayan diğer tüm kod karakterlerini belirtilen dizeden kaldırır.

Giriş dizesinin NULL olarak sonlandırılmasına gerek yoktur ancak bu durumda çıkış da NULL olarak sonlandırılır.

Ayrıntılar
Parametreler
[in,out] pairingCode
Girişte, eşleştirme kodu dizesi normalleştirilecek. Çıkışta, normalleştirilmiş dize. Dizenin NULL sonlandırılmasına gerek yoktur.
[in,out] pairingCodeLen
Girişte, eşleme kodu dizesinin herhangi bir NULL sonlandırıcı karakteri hariç uzunluğu. Çıkışta, normalleştirilmiş dizenin uzunluğu.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Weave eşleme kod karakterini 0..31 aralığındaki bir tam sayı değerine dönüştürün.

Bu işlevin büyük/küçük harfe duyarlı olmadığını unutmayın.

Ayrıntılar
Parametreler
[in] ch
Dönüştürülecek karakter.
İadeler
Belirtilen eşleme kodu karakterine karşılık gelen bir tam sayı değeri veya ch geçerli bir karakter değilse -1.

PairingCodeToInt

WEAVE_ERROR PairingCodeToInt(
  const char *pairingCode,
  size_t pairingCodeLen,
  uint64_t & val
)

Weave eşleme kodunu tam sayı değeri olarak çözün.

İşlev, Weave eşleme kod dizesinin ilk karakterlerini büyük-endian, 32 tabanlı bir sayı olarak ayrıştırır ve sonuç değerini, imzasız bir tam sayı olarak döndürür. Giriş dizesi, kodu çözülmüş tam sayı bir uint64_t içine sığdığı sürece herhangi bir uzunlukta >= 2 olabilir.

Verhoeff kontrol karakterinin doğrulanması için herhangi bir girişimde bulunulmaz (VerifyPairingCode() bölümüne bakın).

Ayrıntılar
Parametreler
[in] pairingCode
Kodu çözülecek eşleme kodu dizesi. Bu dizenin NULL sonlu olması gerekmez.
[in] pairingCodeLen
Eşleme kod dizesinin, NULL sonlandırıcı karakteri hariç uzunluğu. En az 2 olmalıdır.
[out] val
Kodu çözülmüş tam sayı değeri.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INVALID_ARGUMENT
MatchingCodeLen değeri < ise 2 veya sağlanan eşleme kod dizesi geçersiz bir karakter içeriyor ya da eşleme koduna kodlanan tam sayı değeri, uint64_t içinde depolanabilecek maksimum değeri aşıyor.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Weave eşleme kodunu, onay karakteriyle doğrulayın.

Ayrıntılar
Parametreler
[in] pairingCode
Kontrol edilecek eşleme kodu dizesi. Bu dizenin NULL sonlu olması gerekmez.
[in] pairingCodeLen
Eşleme kod dizesinin, NULL sonlandırıcı karakteri hariç uzunluğu. En az 2 olmalıdır.
Değerleri Döndür
WEAVE_NO_ERROR
Yöntem başarılı olursa.
WEAVE_ERROR_INVALID_ARGUMENT
matchCodeLen değeri < ise 2 veya eşleme kodunun ilk karakterleri, kontrol karakterinin değeriyle tutarlı değil.