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 في النهاية. السلسلة التي تم إنشاؤها لها طول ثابت محدد بواسطة المعلمة إقرانCodeLen. ويتم ملء السلسلة على اليسار بالأصفار حسب الضرورة لتحقيق هذا الطول.

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

IntToPairingCode

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

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

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

التفاصيل
المعلمات
[in] val
القيمة المراد ترميزها.
[in] pairingCodeLen
الطول المطلوب لسلسلة رمز الإقران المُشفَّر، بما في ذلك حرف الاختيار اللاحق. يجب أن تكون القيمة >= 2.
[out] outBuf
يشير ذلك إلى مؤشر للمخزن المؤقت للأحرف الذي سيستلم رمز الإقران المرمّز، بالإضافة إلى حرف نهاية فارغ. يجب أن يكون حجم المخزن المؤقت المقدم كبيرًا على الأقل مثل إقرانCodeLen + 1.
قيم الإرجاع
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان إقرانCodeLen هو < 2 أو قيمة العدد الصحيح المُقدَّمة لا يمكن ترميزها بعدد الأحرف المحدَّد من خلال إقرانCodeLen، ناقص 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"، ولكن إذا كانت المخرجات، سيتم أيضًا إنهاء "NULL" (فارغ).

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

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 (يُرجى الاطّلاع على VerifypairingCode()).

التفاصيل
المعلمات
[in] pairingCode
سلسلة رمز الإقران المطلوب فك ترميزها. لا يلزم إنهاء هذه السلسلة "فارغ".
[in] pairingCodeLen
طول سلسلة رمز الإقران، ولا يتضمن أي حرف ختامي فارغ. يجب أن تكون القيمة >= 2.
[out] val
قيمة العدد الصحيح الذي تم فك ترميزه.
قيم الإرجاع
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان إقرانCodeLen هو < 2، أو أن سلسلة رمز الإقران المقدّمة تحتوي على حرف غير صالح، أو أنّ قيمة العدد الصحيح المُرمّزة في رمز الإقران تتجاوز الحد الأقصى للقيمة التي يمكن تخزينها في uint64_t.

VerifyPairingCode

WEAVE_ERROR VerifyPairingCode(
  const char *pairingCode,
  size_t pairingCodeLen
)

تحقق من رمز إقران Weave مقابل حرف الاختيار.

التفاصيل
المعلمات
[in] pairingCode
سلسلة رمز الإقران المطلوب التحقّق منها. لا يلزم إنهاء هذه السلسلة "فارغ".
[in] pairingCodeLen
طول سلسلة رمز الإقران، ولا يتضمن أي حرف ختامي فارغ. يجب أن تكون القيمة >= 2.
قيم الإرجاع
WEAVE_NO_ERROR
إذا نجحت الطريقة.
WEAVE_ERROR_INVALID_ARGUMENT
إذا كان إقرانCodeLen هو < 2، أو الأحرف الأولى من رمز الإقران غير متسقة مع قيمة حرف الاختيار.