nl::PairingCode

Özet

Sıralamalar

@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)
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 Weave 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)
Kryptonite cihaz kimliğine sahip bir Kryptonite eşleme kodu dizesi oluşturur.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
Kryptonite eşleme kodunda kodlanmış olan cihaz kimliğini döndürür.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
Nevis cihaz kimliğine verilen Nevis eşleme kodu 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
Bir eşleme kodu dizesindeki karakterleri normalleştirin.
PairingCodeCharToInt(char ch)
int
Bir Weave eşleme kodu karakterini 0..31 aralığında bir tam sayı değerine dönüştürün.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
Weave eşleme kodunun kodunu tam sayı değeri olarak çözün.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
Weave eşleme kodunu, kontrol karakteriyle karşılaştırarak doğrulayın.

Sıralamalar

@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.

Bu işlev, belirtilen uzunluk. değerine sahip rastgele bir Weave eşleme kodu dizesi oluşturur. Bu dize, büyük uçlu, 32 tabanlı bir sayı olarak kodlanmış ve ardından Verhoeff kontrol karakteri olarak kodlanır. Oluşturulan dizenin, eşlemeCodeLen parametresi tarafından belirtilen sabit bir uzunluğu vardır. Dize, sol tarafa, bu uzunluğu karşılamak için gereken sayıda sıfırlarla doldurulur.

Ayrıntılar
Parametreler
[in] pairingCodeLen
Eşleme kodu dizesinin, sondaki kontrol karakteri de dahil olmak üzere istenen uzunluğu. En az 2 olmalıdır.
[out] outBuf
Kodlanmış eşleme kodunu alacak karakter arabelleğine ve null sonlandırıcı karaktere işaret eden bir işaretçi. Sağlanan arabellek en az eşlenenCodeLen + 1 kadar büyük olmalıdır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INVALID_ARGUMENT
CodeLen eşleştirmesi < 2 ise veya sağlanan tam sayı değeri, CodeLen eşleştirmesiyle belirtilen karakter sayısına göre kodlanamazsa (kontrol karakteri için eksi 1).

IntToPairingCode

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

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

İşlev, büyük uçlu, 32 tabanlı bir sayı olarak kodlanmış, sağlanmamış bir tam sayı değerinden ve sonda bir Verhoeff kontrol karakterinden oluşan bir Weave eşleme kodu dizesi oluşturur. Oluşturulan dizenin, eşlemeCodeLen parametresi tarafından belirtilen sabit bir uzunluğu vardır. Dize, sol tarafa, bu uzunluğu karşılamak için gereken sayıda sıfırlarla doldurulur.

Ayrıntılar
Parametreler
[in] val
Kodlanacak değer.
[in] pairingCodeLen
Kodlanmış eşleme kodu dizesinin, sondaki kontrol karakteri de dahil olmak üzere istenen uzunluğu. En az 2 olmalıdır.
[out] outBuf
Kodlanmış eşleme kodunu alacak karakter arabelleğine ve null sonlandırıcı karaktere işaret eden bir işaretçi. Sağlanan arabellek en az eşlenenCodeLen + 1 kadar büyük olmalıdır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INVALID_ARGUMENT
CodeLen eşleştirmesi < 2 ise veya sağlanan tam sayı değeri, CodeLen eşleştirmesiyle belirtilen karakter sayısına göre kodlanamazsa (kontrol karakteri için eksi 1).

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 alır.

KryptoniteDeviceIdToPairingCode

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

Kryptonite cihaz kimliğine sahip 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 bir arabelleğin işaretçisi. Sağlanan arabellek en az 7 karakter uzunluğunda olmalıdır.
[in] pairingCodeBufSize
CodeBuf eşleştirmesiyle işaret edilen arabelleğin boyutu.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
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ış olan cihaz kimliğini döndürür.

Ayrıntılar
Parametreler
[in] pairingCode
Kryptonite eşleme kodu içeren NULL ile sonlandırılmış bir dize.
[out] deviceId
Kodu çözülmüş Kryptonite cihaz kimliğini alan bir tam sayıya başvuru.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INVALID_ARGUMENT
Sağlanan eşleme 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ğine verilen Nevis eşleme kodu dizesi oluşturur.

Ayrıntılar
Parametreler
[in] deviceId
Nevis cihaz kimliği.
[out] pairingCodeBuf
Nevis eşleme kodunu alacak bir arabelleğin işaretçisi (NULL sonlandırma karakteri). Sağlanan arabellek en az 7 karakter uzunluğunda olmalıdır.
[in] pairingCodeBufSize
CodeBuf eşleştirmesiyle işaret edilen arabelleğin boyutu.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INVALID_ARGUMENT
Sağlanan cihaz kimliği aralık dışındaysa veya sağlanan 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 sonlandırılmış bir dize.
[out] deviceId
Kodu çözülmüş Nevis cihaz kimliğini alan bir tam sayıya başvuru.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INVALID_ARGUMENT
Sağlanan eşleme 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
)

Bir eşleme kodu dizesindeki karakterleri normalleştirin.

Bu işlev, tüm alfabetik karakterleri büyük harfe dönüştürür, geçersiz 'I', 'O', 'Q' ve 'Z' karakterlerini sırasıyla '1', '0', '0' ve '2' ile eşleştirir ve belirtilen dizedeki diğer tüm eşleme olmayan kod karakterlerini kaldırır.

Giriş dizesinin NULL sonlandırılması gerekmez. Ancak çıkış bu şekilde olursa da NULL sonlandırılır.

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

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

Bir Weave eşleme kodu karakterini 0..31 aralığında 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 kodunun kodunu tam sayı değeri olarak çözün.

İşlev, Weave eşleme kodu dizesinin ilk karakterlerini büyük uçlu, 32 tabanlı sayı olarak ayrıştırır ve sonuçta elde edilen değeri imzalanmamış bir tam sayı olarak döndürür. Kodu çözülmüş tam sayı bir uint64_t içine sığdığı sürece girdi dizesi, herhangi bir uzunlukta ve 2'den büyük olabilir.

Verhoeff kontrol karakterini doğrulamak için herhangi bir girişimde bulunulmaz (VerifyEşlemeingCode() konusuna bakın).

Ayrıntılar
Parametreler
[in] pairingCode
Çözülecek eşleme kodu dizesi. Bu dizenin NULL sonlandırılması gerekmez.
[in] pairingCodeLen
Eşleme kodu dizesinin uzunluğu, NULL sonlandırıcı karakteri içermez. En az 2 olmalıdır.
[out] val
Kodu çözülmüş tam sayı değeri.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INVALID_ARGUMENT
EşlemeCodeLen < 2 ise veya sağlanan eşleme kodu dizesi geçersiz bir karakter içeriyorsa ya da eşleme kodunda kodlanan tam sayı değeri, uint64_t içinde depolanabilecek maksimum değeri aşıyorsa.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

Weave eşleme kodunu, kontrol karakteriyle karşılaştırarak doğrulayın.

Ayrıntılar
Parametreler
[in] pairingCode
Kontrol edilecek eşleme kodu dizesi. Bu dizenin NULL sonlandırılması gerekmez.
[in] pairingCodeLen
Eşleme kodu dizesinin uzunluğu, NULL sonlandırıcı karakteri içermez. En az 2 olmalıdır.
Döndürülen Değerler
WEAVE_NO_ERROR
Yöntem başarılı olup olmadığı.
WEAVE_ERROR_INVALID_ARGUMENT
CodeLen eşleştirmesi 2'den küçükse veya eşleme kodunun ilk karakterleri kontrol karakterinin değeriyle tutarlı değilse.