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
מצביע אל מאגר תווים שיקבל את קוד ההתאמה המקודד, יחד עם תו סיום (null). המאגר הזמני שסופק צריך להיות גדול לפחות כמו matchingCodeLen + 1.
ערכים מוחזרים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם matchingCodeLen קטן מ-2 או שלא ניתן לקודד את הערך השלם שסופק במספר התווים שצוין על ידי matchingCodeLen, מינוס 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
מצביע אל מאגר תווים שיקבל את קוד ההתאמה המקודד, יחד עם תו סיום (null). המאגר הזמני שסופק צריך להיות גדול לפחות כמו matchingCodeLen + 1.
ערכים מוחזרים
WEAVE_NO_ERROR
אם השיטה הצליחה.
WEAVE_ERROR_INVALID_ARGUMENT
אם matchingCodeLen קטן מ-2 או שלא ניתן לקודד את הערך השלם שסופק במספר התווים שצוין על ידי matchingCodeLen, מינוס 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 כמספר גדול של endian, לפי בסיס 32 ומחזירה את הערך שמתקבל כמספר שלם ללא סימן. מחרוזת הקלט יכולה להיות בכל אורך >= 2, כל עוד המספר השלם המפוענח מתאים למחרוזת uint64_t.

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

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