با مجموعه‌ها، منظم بمانید ذخیره و دسته‌بندی محتوا براساس اولویت‌های شما.

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
اگر یک کاراکتر ارائه شده یک کاراکتر کد جفت‌سازی Weave معتبر باشد، مقدار true را برمی‌گرداند.
KryptoniteDeviceIdToPairingCode (uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
یک رشته کد جفت شدن کریپتونیت با یک شناسه دستگاه کریپتونیت ایجاد می کند.
KryptonitePairingCodeToDeviceId (const char *pairingCode, uint64_t & deviceId)
شناسه دستگاه رمزگذاری شده در کد جفت شدن کریپتونیت را برمی گرداند.
NevisDeviceIdToPairingCode (uint64_t deviceId, char *pairingCodeBuf, size_t pairingCodeBufSize)
یک رشته کد جفت‌سازی نویس با یک شناسه دستگاه Nevis ایجاد می‌کند.
NevisPairingCodeToDeviceId (const char *pairingCode, uint64_t & deviceId)
شناسه دستگاه رمزگذاری شده در کد جفت‌سازی نویس را برمی‌گرداند.
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

طول کد جفت شدن برای کریپتونیت.

kPairingCodeLenMin

حداقل طول یک کد جفت شدن.

kStandardPairingCodeLength

طول کد جفت‌سازی برای اکثر محصولات Nest.

کارکرد

GeneratePairingCode

WEAVE_ERROR GeneratePairingCode(
  uint8_t pairingCodeLen,
  char *outBuf
)

یک کد جفت شدن تصادفی ایجاد کنید.

این تابع یک رشته کد جفت تصادفی Weave با طول مشخص ایجاد می کند. مقدار، کدگذاری شده به عنوان یک عدد بیگ-اندین، عدد پایه 32، به اضافه یک کاراکتر چک ورهوف در انتهای آن. رشته تولید شده دارای طول ثابتی است که توسط پارامتر pairingCodeLen مشخص شده است. رشته در سمت چپ با صفرهایی که لازم است برای رسیدن به این طول قرار می گیرد.

جزئیات
مولفه های
[in] pairingCodeLen
طول مورد نظر رشته کد جفت سازی، از جمله کاراکتر بررسی انتهایی. باید >= 2 باشد.
[out] outBuf
یک اشاره گر به یک بافر کاراکتر که کد جفت شدن رمزگذاری شده را به اضافه یک کاراکتر پایان دهنده تهی دریافت می کند. بافر ارائه شده باید حداقل به اندازه pairingCodeLen + 1 باشد.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر روش موفق شد.
WEAVE_ERROR_INVALID_ARGUMENT
اگر pairingCodeLen < 2 باشد یا مقدار عدد صحیح ارائه شده را نمی توان در تعداد کاراکترهای مشخص شده توسط pairingCodeLen کدگذاری کرد، منهای 1 برای نویسه چک.

IntToPairingCode

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

یک مقدار صحیح را به عنوان کد جفت سازی Weave رمزگذاری کنید.

این تابع یک رشته کد جفت‌سازی Weave متشکل از یک مقدار صحیح بدون علامت ارائه‌شده، کدگذاری شده به‌عنوان یک عدد بیگ‌اندین، پایه 32، به‌علاوه یک کاراکتر بررسی Verhoeff در پایان تولید می‌کند. رشته تولید شده دارای طول ثابتی است که توسط پارامتر pairingCodeLen مشخص شده است. رشته در سمت چپ با صفرهایی که لازم است برای رسیدن به این طول قرار می گیرد.

جزئیات
مولفه های
[in] val
مقداری که باید کدگذاری شود.
[in] pairingCodeLen
طول مورد نظر رشته کد جفت شده رمزگذاری شده، از جمله کاراکتر بررسی دنباله. باید >= 2 باشد.
[out] outBuf
یک اشاره گر به یک بافر کاراکتر که کد جفت شدن رمزگذاری شده را به اضافه یک کاراکتر پایان دهنده تهی دریافت می کند. بافر ارائه شده باید حداقل به اندازه pairingCodeLen + 1 باشد.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر روش موفق شد.
WEAVE_ERROR_INVALID_ARGUMENT
اگر pairingCodeLen < 2 باشد یا مقدار عدد صحیح ارائه شده را نمی توان در تعداد کاراکترهای مشخص شده توسط pairingCodeLen کدگذاری کرد، منهای 1 برای نویسه چک.

IntToPairingCodeChar

char IntToPairingCodeChar(
  int val
)

یک مقدار صحیح در محدوده 0..31 را به کاراکتر کد جفتی Weave مربوطه تبدیل کنید.

توجه داشته باشید که این تابع همیشه حروف بزرگ تولید می کند.

جزئیات
مولفه های
[in] val
مقدار صحیحی که باید تبدیل شود.
برمی گرداند
کاراکتر کد جفتی که با مقدار صحیح مشخص شده مطابقت دارد، یا اگر مقدار عدد صحیح خارج از محدوده باشد 0.

IsValidPairingCodeChar

bool IsValidPairingCodeChar(
  char ch
)

اگر یک کاراکتر ارائه شده یک کاراکتر کد جفت‌سازی Weave معتبر باشد، مقدار true را برمی‌گرداند.

توجه داشته باشید که این تابع به حروف بزرگ و کوچک حساس است.

جزئیات
مولفه های
[in] ch
شخصیتی که باید آزمایش شود.
برمی گرداند
درست است اگر یک کاراکتر ارائه شده یک نویسه کد جفت سازی Weave معتبر باشد.

KryptoniteDeviceIdToPairingCode

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

یک رشته کد جفت شدن کریپتونیت با یک شناسه دستگاه کریپتونیت ایجاد می کند.

جزئیات
مولفه های
[in] deviceId
شناسه دستگاه کریپتونیت
[out] pairingCodeBuf
اشاره گر به بافری که کد جفت شدن کریپتونیت، یک کاراکتر خاتمه NULL را دریافت می کند. اندازه بافر ارائه شده باید 7 کاراکتر یا بیشتر باشد.
[in] pairingCodeBufSize
اندازه بافر نشان داده شده توسط pairingCodeBuf.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر روش موفق شد.
WEAVE_ERROR_INVALID_ARGUMENT
اگر شناسه دستگاه ارائه شده خارج از محدوده باشد، یا اگر بافر ارائه شده خیلی کوچک باشد.

KryptonitePairingCodeToDeviceId

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

شناسه دستگاه رمزگذاری شده در کد جفت شدن کریپتونیت را برمی گرداند.

جزئیات
مولفه های
[in] pairingCode
یک رشته با پایان NULL حاوی کد جفت شدن کریپتونیت.
[out] deviceId
ارجاع به یک عدد صحیح که شناسه دستگاه کریپتونیت رمزگشایی شده را دریافت می کند.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر روش موفق شد.
WEAVE_ERROR_INVALID_ARGUMENT
اگر طول کد جفت‌سازی ارائه‌شده نادرست است، یا اگر کد جفت‌سازی حاوی نویسه‌های نامعتبر است، یا اگر نویسه‌های اولیه کد جفت‌سازی با کاراکتر بررسی سازگار نیست.

NevisDeviceIdToPairingCode

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

یک رشته کد جفت‌سازی نویس با یک شناسه دستگاه Nevis ایجاد می‌کند.

جزئیات
مولفه های
[in] deviceId
شناسه دستگاه Nevis.
[out] pairingCodeBuf
اشاره‌گر به بافری که کد جفت‌سازی نویس، یک کاراکتر خاتمه NULL را دریافت می‌کند. اندازه بافر ارائه شده باید 7 کاراکتر یا بیشتر باشد.
[in] pairingCodeBufSize
اندازه بافر نشان داده شده توسط pairingCodeBuf.
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر روش موفق شد.
WEAVE_ERROR_INVALID_ARGUMENT
اگر شناسه دستگاه ارائه شده خارج از محدوده باشد، یا اگر بافر ارائه شده خیلی کوچک باشد.

NevisPairingCodeToDeviceId

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

شناسه دستگاه رمزگذاری شده در کد جفت‌سازی نویس را برمی‌گرداند.

جزئیات
مولفه های
[in] pairingCode
یک رشته با پایان NULL حاوی کد جفت شدن نویس.
[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 تبدیل کنید.

توجه داشته باشید که این تابع به حروف بزرگ و کوچک حساس است.

جزئیات
مولفه های
[in] ch
شخصیتی که باید تبدیل شود.
برمی گرداند
یک مقدار صحیح مربوط به کاراکتر کد جفتی مشخص شده، یا -1 اگر ch یک کاراکتر معتبر نیست.

PairingCodeToInt

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

کد جفت سازی Weave را به عنوان یک مقدار صحیح رمزگشایی کنید.

این تابع کاراکترهای اولیه یک رشته کد جفت سازی Weave را به عنوان یک عدد پایه 32-big-end تجزیه می کند و مقدار حاصل را به عنوان یک عدد صحیح بدون علامت برمی گرداند. رشته ورودی می تواند به هر طول >= 2 باشد تا زمانی که عدد صحیح رمزگشایی شده در یک uint64_t قرار گیرد.

هیچ تلاشی برای تأیید کاراکتر بررسی Verhoeff انجام نشده است (به VerifyPairingCode() مراجعه کنید.

جزئیات
مولفه های
[in] pairingCode
رشته کد جفتی که باید رمزگشایی شود. این رشته نیازی به پایان NULL ندارد.
[in] pairingCodeLen
طول رشته کد جفت‌سازی، بدون هیچ کاراکتر پایان‌دهنده NULL. باید >= 2 باشد.
[out] val
مقدار عدد صحیح رمزگشایی شده
ارزش های بازگشتی
WEAVE_NO_ERROR
اگر روش موفق شد.
WEAVE_ERROR_INVALID_ARGUMENT
اگر pairingCodeLen < 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
اگر pairingCodeLen < 2 باشد، یا نویسه‌های اولیه کد جفت‌سازی با مقدار نویسه چک مطابقت ندارند.