nl::PairingCode

ملخّص

عمليات التعداد

@353 تعداد
@354 تعداد
@355 تعداد
@356{
  kStandardPairingCodeLength = 6,
  kKryptonitePairingCodeLength = 9,
  kPairingCodeLenMin = 2,
  kBitsPerCharacter = 5
}
تعداد

الدوال

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 ذات طول محدد، مع ترميزها كرقم أساسي كبير 32، بالإضافة إلى حرف تحقّق Verhoeff لاحق. تحتوي السلسلة التي تم إنشاؤها على طول ثابت محدَّد في مَعلمة engagementCodeLen. تتم تعبئة السلسلة على اليسار بأصفار حسب الضرورة لاستيفاء هذا الطول.

التفاصيل
المَعلمات
[in] pairingCodeLen
الطول المطلوب لسلسلة رمز الإقران، بما في ذلك حرف الاختبار اللاحق. يجب أن يكون أكبر من أو يساوي 2.
[out] outBuf
مؤشر يشير إلى المخزن المؤقت للأحرف الذي سيتلقى رمز الإقران المشفّر، بالإضافة إلى حرف فاصل نهاية فارغ. يجب أن يكون حجم المخزن المؤقت المقدم على الأقل بحجمذكور partnerCodeLen + 1.
قيم الإرجاع
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INVALID_ARGUMENT
في حال كانت قيمة clientCodeLen أقل من 2 أو إذا كان لا يمكن تشفير قيمة العدد الصحيح المقدَّمة بعدد الأحرف المحدّد من خلال partnerCodeLen، يجب طرح 1 لرمز الاختيار.

IntToPairingCode

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

ترميز قيمة عدد صحيح كرمز إقران Weave

تنشئ الدالة سلسلة رمز إقران Weave تتكون من قيمة عددية صحيحة غير موقعة، يتم ترميزها كرقم أساسي 32 كبير، بالإضافة إلى حرف تحقق Verhoeff لاحق. تحتوي السلسلة التي تم إنشاؤها على طول ثابت محدَّد في مَعلمة engagementCodeLen. تتم تعبئة السلسلة على اليسار بأصفار حسب الضرورة لاستيفاء هذا الطول.

التفاصيل
المَعلمات
[in] val
القيمة المطلوب ترميزها.
[in] pairingCodeLen
الطول المطلوب لسلسلة رمز الإقران المشفرة، بما في ذلك حرف الاختبار اللاحق. يجب أن يكون أكبر من أو يساوي 2.
[out] outBuf
مؤشر يشير إلى المخزن المؤقت للأحرف الذي سيتلقى رمز الإقران المشفّر، بالإضافة إلى حرف فاصل نهاية فارغ. يجب أن يكون حجم المخزن المؤقت المقدم على الأقل بحجمذكور partnerCodeLen + 1.
قيم الإرجاع
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INVALID_ARGUMENT
في حال كانت قيمة clientCodeLen أقل من 2 أو إذا كان لا يمكن تشفير قيمة العدد الصحيح المقدَّمة بعدد الأحرف المحدّد من خلال partnerCodeLen، يجب طرح 1 لرمز الاختيار.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

تحويل قيمة عدد صحيح في النطاق 0..31 إلى رمز إقران Weave المقابل لها.

لاحظ أن هذه الدالة تنتج دائمًا أحرفًا كبيرة.

التفاصيل
المَعلمات
[in] val
قيمة العدد الصحيح المطلوب تحويلها.
المرتجعات
حرف رمز الإقران الذي يتوافق مع قيمة العدد الصحيح المحددة، أو 0 إذا كانت قيمة العدد الصحيح خارج النطاق.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

تعرض القيمة true إذا كان الحرف المقدم حرفًا صالحًا لرمز إقران Weave.

لاحظ أن هذه الدالة غير حساسة لحالة الأحرف.

التفاصيل
المَعلمات
[in] ch
الشخصية المطلوب اختبارها
المرتجعات
صحيح إذا كان الحرف المقدم حرفًا صالحًا لرمز إقران 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
حجم المخزن المؤقت المشار إليه من خلال إقرانCodeBuf.
قيم الإرجاع
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان رقم تعريف الجهاز المُقدم خارج النطاق أو إذا كان المخزن المؤقت المقدم صغيرًا جدًا.

KryptonitePairingCodeToDeviceId

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

لعرض رقم تعريف الجهاز الذي تم ترميزه برمز إقران Kryptonite.

التفاصيل
المَعلمات
[in] pairingCode
يشير ذلك المصطلح إلى سلسلة تم إنهاؤها فارغة وتحتوي على رمز إقران 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، وهو حرف إنهاء فارغ. يجب أن يبلغ حجم المخزن المؤقت المقدم 7 أحرف أو أكثر.
[in] pairingCodeBufSize
حجم المخزن المؤقت المشار إليه من خلال إقرانCodeBuf.
قيم الإرجاع
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان رقم تعريف الجهاز المُقدم خارج النطاق أو إذا كان المخزن المؤقت المقدم صغيرًا جدًا.

NevisPairingCodeToDeviceId

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

لعرض رقم تعريف الجهاز المشفّر في رمز إقران Nevis.

التفاصيل
المَعلمات
[in] pairingCode
سلسلة تم إنهاؤها فارغة وتحتوي على رمز إقران 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، ولكن إذا كانت الإخراج سيتم إنهاؤها أيضًا.

التفاصيل
المَعلمات
[in,out] pairingCode
عند الإدخال، سلسلة رمز الإقران المطلوب تسويتها. عند الإخراج، تظهر السلسلة التي تمت تسويتها. ليس من الضروري إنهاء السلسلة NULL.
[in,out] pairingCodeLen
عند الإدخال، طول سلسلة رمز الإقران، ولا يشمل أي حرف نهاية فارغة (NULL). عند الإخراج، يكون طول السلسلة التي تمت تسويتها.

PairingCodeCharToInt

int PairingCodeCharToInt(
  char ch
)

يمكنك تحويل حرف رمز إقران Weave إلى قيمة عدد صحيح في النطاق 0..31.

لاحظ أن هذه الدالة غير حساسة لحالة الأحرف.

التفاصيل
المَعلمات
[in] ch
الحرف المطلوب تحويله.
المرتجعات
قيمة عدد صحيح تتوافق مع حرف رمز الإقران المحدد، أو -1 إذا لم يكن ch حرفًا صالحًا.

PairingCodeToInt

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

فك ترميز رمز إقران Weave كقيمة عدد صحيح.

تحلل الدالة الأحرف الأولية لسلسلة رمز إقران Weave كعدد كبير لأساس 32 وترجع القيمة الناتجة كعدد صحيح غير موقع. يمكن أن تكون سلسلة الإدخال بأي طول >= 2 طالما أنّ العدد الصحيح الذي تم فك ترميزه يتناسب مع uint64_t.

لم يتم إجراء أي محاولة للتحقق من حرف علامة الاختيار Verhoeff (يُرجى الاطّلاع على مقالة CheckزوجingCode() ).

التفاصيل
المَعلمات
[in] pairingCode
سلسلة رمز الإقران المطلوب فك ترميزها لا يلزم إنهاء هذه السلسلة كقيمة فارغة (NULL).
[in] pairingCodeLen
طول سلسلة رمز الازدواج، ولا يتضمن أي حرف فاصلة فارغة (NULL). يجب أن يكون أكبر من أو يساوي 2.
[out] val
قيمة العدد الصحيح التي تم فك ترميزها.
قيم الإرجاع
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INVALID_ARGUMENT
في حال كانت قيمة clientCodeLen أقل من 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
في حال كانت قيمة clientCodeLen أقل من 2، أو كانت الأحرف الأولية في رمز الإقران غير متسقة مع قيمة حرف الاختبار.