nl::PairingCode

סיכום

ערכים של ספירה

@353 טיפוסים בני מנייה (enum)
@354 טיפוסים בני מנייה (enum)
@355 טיפוסים בני מנייה (enum)
@356{
  kStandardPairingCodeLength = 6,
  kKryptonitePairingCodeLength = 9,
  kPairingCodeLenMin = 2,
  kBitsPerCharacter = 5
}
טיפוסים בני מנייה (enum)

פונקציות

GeneratePairingCode(uint8_t pairingCodeLen, char *outBuf)
יצירת קוד התאמה אקראי.
IntToPairingCode(uint64_t val, uint8_t pairingCodeLen, char *outBuf)
קידוד ערך של מספר שלם כקוד התאמה של Weave.
IntToPairingCodeChar(int val)
char
ממירים ערך של מספר שלם בטווח 0..31 לתו של קוד ההתאמה המתאים ב-Weave.
IsValidPairingCodeChar(char ch)
bool
מחזירה true אם התו שסופק הוא תו חוקי של קוד התאמה ל-Weave.
KryptoniteDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
יצירת מחרוזת קוד התאמה של Kryptonite עם מזהה מכשיר Kryptonite.
KryptonitePairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
הפונקציה מחזירה את מזהה המכשיר שמקודד בקוד ההתאמה של Kryptonite.
NevisDeviceIdToPairingCode(uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
יוצרת מחרוזת קוד התאמה של Nevis עם מזהה מכשיר של Nevis.
NevisPairingCodeToDeviceId(const char *pairingCode, uint64_t & deviceId)
הפונקציה מחזירה את מזהה המכשיר שמקודד בקוד ההתאמה של Nevis.
NormalizePairingCode(char *pairingCode, size_t & pairingCodeLen)
void
נרמול התווים במחרוזת קוד התאמה.
PairingCodeCharToInt(char ch)
int
ממירים תו קוד התאמה של Weave לערך של מספר שלם בטווח 0..31.
PairingCodeToInt(const char *pairingCode, size_t pairingCodeLen, uint64_t & val)
פענוח קוד התאמה של Weave כערך מספר שלם.
VerifyPairingCode(const char *pairingCode, size_t pairingCodeLen)
אימות קוד התאמה של Weave מול תו הביקורת שלו.

ערכים של ספירה

@353

 @353

@354

 @354

@355

 @355

@356

 @356
מאפיינים
kBitsPerCharacter

מספר הביטים שמקודדים בתו של קוד התאמה אחד.

kKryptonitePairingCodeLength

אורך קוד ההתאמה עבור Kryptonite.

kPairingCodeLenMin

אורך מינימלי של קוד התאמה.

kStandardPairingCodeLength

אורך הקוד להתאמה ברוב מוצרי Nest.

פונקציות

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

יצירת קוד התאמה אקראי.

הפונקציה יוצרת מחרוזת קוד התאמה אקראית של Weave באורך מוגדר. מקודד כספרה big-endian, ספרה בסיס-32 וגם תו ביקורת Verhoeff בסוף. למחרוזת שנוצרה יש אורך קבוע שצוין על ידי הפרמטר matchingCodeLen. החלק השמאלי מכניס למחרוזת אפסים לפי הצורך, כדי שהאורך יתאים לאורך הזה.

פרטים
פרמטרים
[in] pairingCodeLen
האורך הרצוי של מחרוזת קוד ההתאמה, כולל תו הביקורת האחרון. חייב להיות >= 2.
[out] outBuf
מצביע למאגר נתונים זמני של תווים שיקבל את קוד ההתאמה המקודד, בתוספת תו ריקול של תו סיום קרוב. מאגר הנתונים הזמני שסופק צריך להיות לפחות בגודל של AdjustCodeLen + 1.
מוחזר ערכים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם AdjustCodeLen הוא < 2 או לא ניתן לקודד את ערך המספר השלם שסופק במספר התווים שצוין באמצעות MatchCodeLen, פחות 1 בשביל תו הביקורת.

IntToPairingCode

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

קידוד ערך של מספר שלם כקוד התאמה של Weave.

הפונקציה יוצרת מחרוזת קוד הצמדה של Weave שמורכבת מערך מספר שלם שאינו חתום, המקודדת כספרה Big-endian מסוג בסיס-32 ותו ביקורת Verhoeff. למחרוזת שנוצרה יש אורך קבוע שצוין על ידי הפרמטר matchingCodeLen. החלק השמאלי מכניס למחרוזת אפסים לפי הצורך, כדי שהאורך יתאים לאורך הזה.

פרטים
פרמטרים
[in] val
הערך לקידוד.
[in] pairingCodeLen
האורך הרצוי של מחרוזת קוד ההתאמה המקודדת, כולל תו הביקורת האחרון. חייב להיות >= 2.
[out] outBuf
מצביע למאגר נתונים זמני של תווים שיקבל את קוד ההתאמה המקודד, בתוספת תו ריקול של תו סיום קרוב. מאגר הנתונים הזמני שסופק צריך להיות לפחות בגודל של AdjustCodeLen + 1.
מוחזר ערכים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם AdjustCodeLen הוא < 2 או לא ניתן לקודד את ערך המספר השלם שסופק במספר התווים שצוין באמצעות MatchCodeLen, פחות 1 בשביל תו הביקורת.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

ממירים ערך של מספר שלם בטווח 0..31 לתו של קוד ההתאמה המתאים ב-Weave.

שימו לב שהפונקציה תמיד יוצרת תווים באותיות רישיות.

פרטים
פרמטרים
[in] val
ערך המספר השלם שיש להמיר.
החזרות
תו של קוד ההתאמה שתואם לערך המספר השלם שצוין, או 0 אם הערך של המספר השלם נמצא מחוץ לטווח.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

מחזירה true אם התו שסופק הוא תו חוקי של קוד התאמה ל-Weave.

חשוב לשים לב שהפונקציה הזו לא תלוית אותיות רישיות (case-sensitive).

פרטים
פרמטרים
[in] ch
התו שמיועד לבדיקה.
החזרות
הערך הוא True אם התו שסופק הוא תו חוקי של קוד התאמה ל-Weave.

KryptoniteDeviceIdToPairingCode

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

יצירת מחרוזת קוד התאמה של Kryptonite עם מזהה מכשיר Kryptonite.

פרטים
פרמטרים
[in] deviceId
מזהה מכשיר Kryptonite.
[out] pairingCodeBuf
מצביע למאגר נתונים זמני שיקבל את קוד ההתאמה של Kryptonite, תו סיום NULL. מאגר הנתונים הזמני חייב להיות באורך של 7 תווים ומעלה.
[in] pairingCodeBufSize
גודל מאגר הנתונים הזמני שאליו מכוונים את matchingCodeBuf.
מוחזר ערכים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם מזהה המכשיר שסופק הוא מחוץ לטווח, או אם מאגר הנתונים הזמני שסופק קטן מדי.

KryptonitePairingCodeToDeviceId

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

הפונקציה מחזירה את מזהה המכשיר שמקודד בקוד ההתאמה של Kryptonite.

פרטים
פרמטרים
[in] pairingCode
מחרוזת עם סיום NULL, שמכילה קוד התאמה של Kryptonite.
[out] deviceId
הפניה למספר שלם שמקבל את מזהה מכשיר Kryptonite המפוענח.
מוחזר ערכים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם אורך קוד ההתאמה שסופק שגוי, או אם קוד ההתאמה מכיל תווים לא חוקיים, או אם התווים הראשוניים של קוד ההתאמה אינם תואמים לתו הביקורת.

NevisDeviceIdToPairingCode

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

יוצרת מחרוזת קוד התאמה של Nevis עם מזהה מכשיר של Nevis.

פרטים
פרמטרים
[in] deviceId
מזהה מכשיר של Nevis.
[out] pairingCodeBuf
מצביע למאגר נתונים זמני שיקבל את קוד ההתאמה של Nevis, תו סיום NULL. מאגר הנתונים הזמני חייב להיות באורך של 7 תווים ומעלה.
[in] pairingCodeBufSize
גודל מאגר הנתונים הזמני שאליו מכוונים את matchingCodeBuf.
מוחזר ערכים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם מזהה המכשיר שסופק הוא מחוץ לטווח, או אם מאגר הנתונים הזמני שסופק קטן מדי.

NevisPairingCodeToDeviceId

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

הפונקציה מחזירה את מזהה המכשיר שמקודד בקוד ההתאמה של Nevis.

פרטים
פרמטרים
[in] pairingCode
מחרוזת עם סיום NULL, שמכילה קוד התאמה של Nevis.
[out] deviceId
הפניה למספר שלם שמקבל את מזהה מכשיר Nevis המפוענח.
מוחזר ערכים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם אורך קוד ההתאמה שסופק שגוי, או אם קוד ההתאמה מכיל תווים לא חוקיים, או אם התווים הראשוניים של קוד ההתאמה אינם תואמים לתו הביקורת.

NormalizePairingCode

void NormalizePairingCode(
  char *pairingCode,
  size_t & pairingCodeLen
)

נרמול התווים במחרוזת קוד התאמה.

הפונקציה הזו ממירה את כל התווים באותיות רישיות, ממפה את התווים הלא חוקיים 'I', 'O', 'Q' ו-Z עד '1', '0', '0' ו-'2', בהתאמה, ומסיר את כל תווי הקוד האחרים שלא מותאמים מהמחרוזת הנתונה.

אין צורך במחרוזת הקלט כדי לסיים את הערך NULL, אבל אם המחרוזת הזו היא התוצאה תהיה גם NULL.

פרטים
פרמטרים
[in,out] pairingCode
בקלט, מחרוזת קוד ההתאמה צריכה לנרמל. בפלט, המחרוזת המנורמלת. לא חובה שהמחרוזת תסתיים NULL.
[in,out] pairingCodeLen
בקלט, האורך של מחרוזת קוד ההתאמה, לא כולל תו NULL של תו סיום. בפלט, אורך המחרוזת המנורמלת.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

ממירים תו קוד התאמה של Weave לערך של מספר שלם בטווח 0..31.

חשוב לשים לב שהפונקציה הזו לא תלוית אותיות רישיות (case-sensitive).

פרטים
פרמטרים
[in] ch
התו שרוצים להמיר.
החזרות
ערך של מספר שלם שתואם לתו קוד ההתאמה שצוין, או 1- אם ch אינו תו חוקי.

PairingCodeToInt

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

פענוח קוד התאמה של Weave כערך מספר שלם.

הפונקציה מנתחת את התווים הראשוניים של מחרוזת קוד ההתאמה של Weave כספרה big-endian, מסוג base-32 ומחזירה את הערך שמתקבל כמספר שלם לא חתום. מחרוזת הקלט יכולה להיות בכל אורך >= 2, כל עוד המספר השלם המפוענח מתאים ל-uint64_t.

לא נעשה ניסיון לאמת את תו הביקורת Verhoeff (מידע נוסף זמין בכתובת VerifyPairingCode() ).

פרטים
פרמטרים
[in] pairingCode
מחרוזת קוד ההתאמה שיש לפענח. אין צורך לסיים את המחרוזת הזו באמצעות NULL.
[in] pairingCodeLen
האורך של מחרוזת קוד ההתאמה, לא כולל תו כלשהו מסוג NULL. חייב להיות >= 2.
[out] val
ערך המספר השלם המפוענח.
מוחזר ערכים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם AdjustCodeLen הוא < 2, או שמחרוזת קוד ההתאמה שסופקה מכילה תו לא חוקי, או שהערך השלם שמקודד בקוד ההתאמה חורג מהערך המקסימלי שניתן לאחסן ב-uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

אימות קוד התאמה של Weave מול תו הביקורת שלו.

פרטים
פרמטרים
[in] pairingCode
מחרוזת קוד ההתאמה שיש לבדוק. אין צורך לסיים את המחרוזת הזו באמצעות NULL.
[in] pairingCodeLen
האורך של מחרוזת קוד ההתאמה, לא כולל תו כלשהו מסוג NULL. חייב להיות >= 2.
מוחזר ערכים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם AdjustCodeLen הוא < 2, או שהתווים הראשונים של קוד ההתאמה אינם תואמים לערך של תו הביקורת.