کمیسیونر، رئیس پلیس

این ماژول شامل توابعی برای نقش Thread Commissioner است.

خلاصه

شمارش ها

otCommissionerJoinerEvent enum
یک رویداد Joiner را در کمیسیونر تعریف می کند.
otCommissionerState {
OT_COMMISSIONER_STATE_DISABLED = 0,
OT_COMMISSIONER_STATE_PETITION = 1,
OT_COMMISSIONER_STATE_ACTIVE = 2
}
enum
دولت کمیسر را تعریف می کند.
otJoinerInfoType {
OT_JOINER_INFO_TYPE_ANY = 0,
OT_JOINER_INFO_TYPE_EUI64 = 1,
OT_JOINER_INFO_TYPE_DISCERNER = 2
}
enum
نوع اطلاعات Joiner را تعریف می کند.

Typedefs

otCommissionerEnergyReportCallback )(uint32_t aChannelMask, const uint8_t *aEnergyList, uint8_t aEnergyListLength, void *aContext) typedef
void(*
زمانی که کمیسیونر گزارش انرژی دریافت می کند، اشاره گر فراخوانی می شود.
otCommissionerJoinerCallback )(otCommissionerJoinerEvent aEvent, const otJoinerInfo *aJoinerInfo, const otExtAddress *aJoinerId, void *aContext) typedef
void(*
هر زمان که وضعیت اتصال دهنده تغییر کند، اشاره گر فراخوانی می شود.
otCommissionerJoinerEvent typedef
یک رویداد Joiner را در کمیسیونر تعریف می کند.
otCommissionerPanIdConflictCallback )(uint16_t aPanId, uint32_t aChannelMask, void *aContext) typedef
void(*
هنگامی که کمیسیونر پیام تضاد PAN ID را دریافت می کند، اشاره گر فراخوانی می شود.
otCommissionerState typedef
دولت کمیسر را تعریف می کند.
otCommissionerStateCallback )(otCommissionerState aState, void *aContext) typedef
void(*
هر زمان که وضعیت کمیسیون تغییر کند، اشاره گر فراخوانی می شود.
otCommissioningDataset typedef
یک مجموعه داده راه اندازی را نشان می دهد.
otJoinerInfo typedef
struct otJoinerInfo
نشان دهنده اطلاعات وصال است.
otJoinerInfoType typedef
نوع اطلاعات Joiner را تعریف می کند.
otJoinerPskd typedef
struct otJoinerPskd
یک Joiner PSKd را نشان می دهد.
otSteeringData typedef
نشان دهنده داده های فرمان است.

کارکرد

otCommissionerAddJoiner ( otInstance *aInstance, const otExtAddress *aEui64, const char *aPskd, uint32_t aTimeout)
یک ورودی Joiner اضافه می کند.
otCommissionerAddJoinerWithDiscerner ( otInstance *aInstance, const otJoinerDiscerner *aDiscerner, const char *aPskd, uint32_t aTimeout)
یک ورودی Joiner با مقدار Joiner Discerner داده شده اضافه می کند.
otCommissionerAnnounceBegin ( otInstance *aInstance, uint32_t aChannelMask, uint8_t aCount, uint16_t aPeriod, const otIp6Address *aAddress)
یک پیام اعلام شروع ارسال می کند.
otCommissionerEnergyScan ( otInstance *aInstance, uint32_t aChannelMask, uint8_t aCount, uint16_t aPeriod, uint16_t aScanDuration, const otIp6Address *aAddress, otCommissionerEnergyReportCallback aCallback, void *aContext)
یک پیام پرسش اسکن انرژی ارسال می کند.
otCommissionerGetId ( otInstance *aInstance)
const char *
شناسه کمیسیونر را برمی گرداند.
otCommissionerGetNextJoinerInfo ( otInstance *aInstance, uint16_t *aIterator, otJoinerInfo *aJoiner)
اطلاعات وصال را در موقعیت aIterator دریافت کنید.
otCommissionerGetProvisioningUrl ( otInstance *aInstance)
const char *
URL تدارکات را دریافت می کند.
otCommissionerGetSessionId ( otInstance *aInstance)
uint16_t
شناسه جلسه کمیسیون را برمی گرداند.
otCommissionerGetState ( otInstance *aInstance)
ایالت کمیسر را برمی گرداند.
otCommissionerPanIdQuery ( otInstance *aInstance, uint16_t aPanId, uint32_t aChannelMask, const otIp6Address *aAddress, otCommissionerPanIdConflictCallback aCallback, void *aContext)
یک پیام پرس و جو PAN ID ارسال می کند.
otCommissionerRemoveJoiner ( otInstance *aInstance, const otExtAddress *aEui64)
ورودی Joiner را حذف می کند.
otCommissionerRemoveJoinerWithDiscerner ( otInstance *aInstance, const otJoinerDiscerner *aDiscerner)
ورودی Joiner را حذف می کند.
otCommissionerSendMgmtGet ( otInstance *aInstance, const uint8_t *aTlvs, uint8_t aLength)
MGMT_COMMISSIONER_GET را ارسال می کند.
otCommissionerSendMgmtSet ( otInstance *aInstance, const otCommissioningDataset *aDataset, const uint8_t *aTlvs, uint8_t aLength)
MGMT_COMMISSIONER_SET را ارسال می کند.
otCommissionerSetId ( otInstance *aInstance, const char *aId)
شناسه کمیسیونر را تنظیم می کند.
otCommissionerSetProvisioningUrl ( otInstance *aInstance, const char *aProvisioningUrl)
URL تامین را تنظیم می کند.
otCommissionerStart ( otInstance *aInstance, otCommissionerStateCallback aStateCallback, otCommissionerJoinerCallback aJoinerCallback, void *aCallbackContext)
نقش Thread Commissioner را فعال می کند.
otCommissionerStop ( otInstance *aInstance)
نقش Thread Commissioner را غیرفعال می کند.

سازه ها

otCommissioningDataset

یک مجموعه داده راه اندازی را نشان می دهد.

otJoinerInfo

نشان دهنده اطلاعات وصال است.

otJoinerPskd

یک Joiner PSKd را نشان می دهد.

otSteeringData

نشان دهنده داده های فرمان است.

شمارش ها

otCommissionerJoinerEvent

 otCommissionerJoinerEvent

یک رویداد Joiner را در کمیسیونر تعریف می کند.

OCommissioner State

 otCommissionerState

دولت کمیسر را تعریف می کند.

خواص
OT_COMMISSIONER_STATE_ACTIVE

نقش کمیسر فعال است.

OT_COMMISSIONER_STATE_DISABLED

نقش کمیسر غیرفعال است.

OT_COMMISSIONER_STATE_PETITION

در حال حاضر در حال درخواست برای کمیسیونر شدن.

otJoinerInfoType

 otJoinerInfoType

نوع اطلاعات Joiner را تعریف می کند.

خواص
OT_JOINER_INFO_TYPE_ANY

هر Joiner را بپذیرید (هیچ EUI64 یا Discerner مشخص نشده است).

OT_JOINER_INFO_TYPE_DISCERNER

Joiner Discerner مشخص شده است ( mSharedId.mDiscerner در otJoinerInfo ).

OT_JOINER_INFO_TYPE_EUI64

Joiner EUI-64 مشخص شده است ( mSharedId.mEui64 در otJoinerInfo ).

Typedefs

otCommissionerEnergyReportCallback

void(* otCommissionerEnergyReportCallback)(uint32_t aChannelMask, const uint8_t *aEnergyList, uint8_t aEnergyListLength, void *aContext)

زمانی که کمیسیونر گزارش انرژی دریافت می کند، اشاره گر فراخوانی می شود.

جزئیات
مولفه های
[in] aChannelMask
مقدار ماسک کانال
[in] aEnergyList
اشاره گر به لیست اندازه گیری انرژی
[in] aEnergyListLength
تعداد ورودی های aEnergyListLength .
[in] aContext
اشاره‌ای به زمینه خاص برنامه.

otCommissionerJoinerCallback

void(* otCommissionerJoinerCallback)(otCommissionerJoinerEvent aEvent, const otJoinerInfo *aJoinerInfo, const otExtAddress *aJoinerId, void *aContext)

هر زمان که وضعیت اتصال دهنده تغییر کند، اشاره گر فراخوانی می شود.

جزئیات
مولفه های
[in] aEvent
نوع رویداد Joiner.
[in] aJoinerInfo
اشاره گر به اطلاعات Joiner.
[in] aJoinerId
یک اشاره گر به شناسه Joiner (اگر شناخته نشده باشد، NULL خواهد بود).
[in] aContext
اشاره‌ای به زمینه خاص برنامه.

otCommissionerJoinerEvent

enum otCommissionerJoinerEvent otCommissionerJoinerEvent

یک رویداد Joiner را در کمیسیونر تعریف می کند.

otCommissionerPanIdConflictCallback

void(* otCommissionerPanIdConflictCallback)(uint16_t aPanId, uint32_t aChannelMask, void *aContext)

هنگامی که کمیسیونر پیام تضاد PAN ID را دریافت می کند، اشاره گر فراخوانی می شود.

جزئیات
مولفه های
[in] aPanId
مقدار PAN ID.
[in] aChannelMask
مقدار ماسک کانال
[in] aContext
اشاره‌ای به زمینه خاص برنامه.

OCommissioner State

enum otCommissionerState otCommissionerState

دولت کمیسر را تعریف می کند.

otCommissionerStateCallback

void(* otCommissionerStateCallback)(otCommissionerState aState, void *aContext)

هر زمان که وضعیت کمیسیون تغییر کند، اشاره گر فراخوانی می شود.

جزئیات
مولفه های
[in] aState
ایالت کمیسر
[in] aContext
اشاره‌ای به زمینه خاص برنامه.

otCommissioningDataset

struct otCommissioningDataset otCommissioningDataset

یک مجموعه داده راه اندازی را نشان می دهد.

otJoinerInfo

struct otJoinerInfo otJoinerInfo

نشان دهنده اطلاعات وصال است.

otJoinerInfoType

enum otJoinerInfoType otJoinerInfoType

نوع اطلاعات Joiner را تعریف می کند.

otJoinerPskd

struct otJoinerPskd otJoinerPskd

یک Joiner PSKd را نشان می دهد.

otSteeringData

struct otSteeringData otSteeringData

نشان دهنده داده های فرمان است.

کارکرد

otCommissionerAddJoiner

otError otCommissionerAddJoiner(
  otInstance *aInstance,
  const otExtAddress *aEui64,
  const char *aPskd,
  uint32_t aTimeout
)

یک ورودی Joiner اضافه می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aEui64
یک اشاره گر به IEEE EUI-64 یا NULL برای هر Joiner.
[in] aPskd
یک اشاره گر به PSKd.
[in] aTimeout
زمانی که پس از آن یک Joiner به صورت خودکار در چند ثانیه حذف می شود.
ارزش های بازگشتی
OT_ERROR_NONE
Joiner با موفقیت اضافه شد.
OT_ERROR_NO_BUFS
هیچ بافری برای افزودن Joiner موجود نیست.
OT_ERROR_INVALID_ARGS
aEui64 یا aPskd نامعتبر است.
OT_ERROR_INVALID_STATE
کمیسر فعال نیست.

otCommissionerAddJoinerWithDiscerner

otError otCommissionerAddJoinerWithDiscerner(
  otInstance *aInstance,
  const otJoinerDiscerner *aDiscerner,
  const char *aPskd,
  uint32_t aTimeout
)

یک ورودی Joiner با مقدار Joiner Discerner داده شده اضافه می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aDiscerner
اشاره گر به Joiner Discerner.
[in] aPskd
یک اشاره گر به PSKd.
[in] aTimeout
زمانی که پس از آن یک Joiner به صورت خودکار در چند ثانیه حذف می شود.
ارزش های بازگشتی
OT_ERROR_NONE
Joiner با موفقیت اضافه شد.
OT_ERROR_NO_BUFS
هیچ بافری برای افزودن Joiner موجود نیست.
OT_ERROR_INVALID_ARGS
aDiscerner یا aPskd نامعتبر است.
OT_ERROR_INVALID_STATE
کمیسر فعال نیست.

otCommissionerAnnounceBegin

otError otCommissionerAnnounceBegin(
  otInstance *aInstance,
  uint32_t aChannelMask,
  uint8_t aCount,
  uint16_t aPeriod,
  const otIp6Address *aAddress
)

یک پیام اعلام شروع ارسال می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aChannelMask
مقدار ماسک کانال
[in] aCount
تعداد پیام های اعلامیه در هر کانال.
[in] aPeriod
زمان بین دو ارسال متوالی MLE اعلام (بر حسب میلی ثانیه).
[in] aAddress
اشاره گر به مقصد IPv6.
ارزش های بازگشتی
OT_ERROR_NONE
پیام اعلام شروع با موفقیت در صف قرار گرفت.
OT_ERROR_NO_BUFS
بافرهای ناکافی برای ایجاد پیام اعلام شروع.
OT_ERROR_INVALID_STATE
کمیسر فعال نیست.

otCommissionerEnergyScan

otError otCommissionerEnergyScan(
  otInstance *aInstance,
  uint32_t aChannelMask,
  uint8_t aCount,
  uint16_t aPeriod,
  uint16_t aScanDuration,
  const otIp6Address *aAddress,
  otCommissionerEnergyReportCallback aCallback,
  void *aContext
)

یک پیام پرسش اسکن انرژی ارسال می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aChannelMask
مقدار ماسک کانال
[in] aCount
تعداد اندازه گیری انرژی در هر کانال.
[in] aPeriod
زمان بین اندازه گیری انرژی (میلی ثانیه).
[in] aScanDuration
مدت زمان اسکن برای هر اندازه گیری انرژی (میلی ثانیه).
[in] aAddress
اشاره گر به مقصد IPv6.
[in] aCallback
اشاره گر به تابعی که با دریافت پیام گزارش انرژی فراخوانی می شود.
[in] aContext
اشاره‌ای به زمینه خاص برنامه.
ارزش های بازگشتی
OT_ERROR_NONE
پیام پرسش اسکن انرژی با موفقیت در صف قرار گرفت.
OT_ERROR_NO_BUFS
بافرهای ناکافی برای ایجاد پیام جستجوی اسکن انرژی.
OT_ERROR_INVALID_STATE
کمیسر فعال نیست.

otCommissionerGetId

const char * otCommissionerGetId(
  otInstance *aInstance
)

شناسه کمیسیونر را برمی گرداند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
شناسه کمیسر

otCommissionerGetNextJoinerInfo

otError otCommissionerGetNextJoinerInfo(
  otInstance *aInstance,
  uint16_t *aIterator,
  otJoinerInfo *aJoiner
)

اطلاعات وصال را در موقعیت aIterator دریافت کنید.

جزئیات
مولفه های
[in] aInstance
اشاره گر به نمونه
[in,out] aIterator
اشاره گر به زمینه تکرار کننده اطلاعات Joiner.
[out] aJoiner
ارجاع به اطلاعات Joiner.
ارزش های بازگشتی
OT_ERROR_NONE
اطلاعات Joiner با موفقیت دریافت شد.
OT_ERROR_NOT_FOUND
وصال بعدی یافت نشد.

otCommissionerGetProvisioningUrl

const char * otCommissionerGetProvisioningUrl(
  otInstance *aInstance
)

URL تدارکات را دریافت می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
اشاره گر به رشته URL.

otCommissionerGetSessionId

uint16_t otCommissionerGetSessionId(
  otInstance *aInstance
)

شناسه جلسه کمیسیون را برمی گرداند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
برمی گرداند
شناسه جلسه کمیسیون فعلی

otCommissionerGetState

otCommissionerState otCommissionerGetState(
  otInstance *aInstance
)

ایالت کمیسر را برمی گرداند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
ارزش های بازگشتی
OT_COMMISSIONER_STATE_DISABLED
کمیسر از کار افتاده
OT_COMMISSIONER_STATE_PETITION
کمیسر شدن.
OT_COMMISSIONER_STATE_ACTIVE
کمیسیونر فعال شد.

otCommissionerPanIdQuery

otError otCommissionerPanIdQuery(
  otInstance *aInstance,
  uint16_t aPanId,
  uint32_t aChannelMask,
  const otIp6Address *aAddress,
  otCommissionerPanIdConflictCallback aCallback,
  void *aContext
)

یک پیام پرس و جو PAN ID ارسال می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aPanId
PAN ID برای پرس و جو.
[in] aChannelMask
مقدار ماسک کانال
[in] aAddress
اشاره گر به مقصد IPv6.
[in] aCallback
اشاره گر به تابعی که با دریافت پیام تداخل شناسه PAN فراخوانی می شود.
[in] aContext
اشاره‌ای به زمینه خاص برنامه.
ارزش های بازگشتی
OT_ERROR_NONE
پیام PAN ID Query با موفقیت در صف قرار گرفت.
OT_ERROR_NO_BUFS
بافرهای ناکافی برای ایجاد پیام PAN ID Query.
OT_ERROR_INVALID_STATE
کمیسر فعال نیست.

otCommissionerRemoveJoiner

otError otCommissionerRemoveJoiner(
  otInstance *aInstance,
  const otExtAddress *aEui64
)

ورودی Joiner را حذف می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aEui64
یک اشاره گر به IEEE EUI-64 یا NULL برای هر Joiner.
ارزش های بازگشتی
OT_ERROR_NONE
Joiner با موفقیت حذف شد.
OT_ERROR_NOT_FOUND
وصال مشخص شده توسط aEui64 پیدا نشد.
OT_ERROR_INVALID_ARGS
aEui64 نامعتبر است.
OT_ERROR_INVALID_STATE
کمیسر فعال نیست.

otCommissionerRemoveJoinerWithDiscerner

otError otCommissionerRemoveJoinerWithDiscerner(
  otInstance *aInstance,
  const otJoinerDiscerner *aDiscerner
)

ورودی Joiner را حذف می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aDiscerner
اشاره گر به Joiner Discerner.
ارزش های بازگشتی
OT_ERROR_NONE
Joiner با موفقیت حذف شد.
OT_ERROR_NOT_FOUND
وصال مشخص شده توسط aEui64 پیدا نشد.
OT_ERROR_INVALID_ARGS
aDiscerner نامعتبر است.
OT_ERROR_INVALID_STATE
کمیسر فعال نیست.

otCommissionerSendMgmtGet

otError otCommissionerSendMgmtGet(
  otInstance *aInstance,
  const uint8_t *aTlvs,
  uint8_t aLength
)

MGMT_COMMISSIONER_GET را ارسال می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aTlvs
اشاره گر به TLV ها.
[in] aLength
طول TLV ها.
ارزش های بازگشتی
OT_ERROR_NONE
دستور مجموعه داده meshcop با موفقیت ارسال شد.
OT_ERROR_NO_BUFS
فضای بافر کافی برای ارسال وجود ندارد.
OT_ERROR_INVALID_STATE
کمیسر فعال نیست.

otCommissionerSendMgmtSet

otError otCommissionerSendMgmtSet(
  otInstance *aInstance,
  const otCommissioningDataset *aDataset,
  const uint8_t *aTlvs,
  uint8_t aLength
)

MGMT_COMMISSIONER_SET را ارسال می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aDataset
اشاره‌ای به راه‌اندازی مجموعه داده.
[in] aTlvs
اشاره گر به TLV ها.
[in] aLength
طول TLV ها.
ارزش های بازگشتی
OT_ERROR_NONE
دستور مجموعه داده meshcop با موفقیت ارسال شد.
OT_ERROR_NO_BUFS
فضای بافر کافی برای ارسال وجود ندارد.
OT_ERROR_INVALID_STATE
کمیسر فعال نیست.

otCommissionerSetId

otError otCommissionerSetId(
  otInstance *aInstance,
  const char *aId
)

شناسه کمیسیونر را تنظیم می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aId
یک اشاره گر به یک آرایه کاراکتر رشته ای. باید باطل فسخ شود.
ارزش های بازگشتی
OT_ERROR_NONE
شناسه کمیسیونر با موفقیت تنظیم شد.
OT_ERROR_INVALID_ARGS
نام داده شده خیلی طولانی است.
OT_ERROR_INVALID_STATE
کمیسیونر فعال است و شناسه قابل تغییر نیست.

otCommissionerSetProvisioningUrl

otError otCommissionerSetProvisioningUrl(
  otInstance *aInstance,
  const char *aProvisioningUrl
)

URL تامین را تنظیم می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aProvisioningUrl
یک اشاره گر به URL تأمین (ممکن است NULL باشد تا به عنوان رشته خالی تنظیم شود).
ارزش های بازگشتی
OT_ERROR_NONE
URL تدارکات با موفقیت تنظیم شد.
OT_ERROR_INVALID_ARGS
aProvisioningUrl نامعتبر است (خیلی طولانی).

otCommissionerStart

otError otCommissionerStart(
  otInstance *aInstance,
  otCommissionerStateCallback aStateCallback,
  otCommissionerJoinerCallback aJoinerCallback,
  void *aCallbackContext
)

نقش Thread Commissioner را فعال می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
[in] aStateCallback
اشاره گر به تابعی که با تغییر حالت کمیسیون فراخوانی می شود.
[in] aJoinerCallback
اشاره گر به تابعی که با یک رویداد Joiner فراخوانی می شود رخ می دهد.
[in] aCallbackContext
اشاره‌ای به زمینه خاص برنامه.
ارزش های بازگشتی
OT_ERROR_NONE
خدمات کمیسیونر را با موفقیت شروع کرد.
OT_ERROR_ALREADY
کمیسر در حال حاضر شروع شده است.
OT_ERROR_INVALID_STATE
دستگاه در حال حاضر به شبکه متصل نیست.

otCommissionerStop

otError otCommissionerStop(
  otInstance *aInstance
)

نقش Thread Commissioner را غیرفعال می کند.

جزئیات
مولفه های
[in] aInstance
اشاره گر به یک نمونه OpenThread.
ارزش های بازگشتی
OT_ERROR_NONE
خدمات کمیسر با موفقیت متوقف شد.
OT_ERROR_ALREADY
کمیسر قبلا متوقف شده است.

ماکروها

OT_COMMISSIONING_PASSPHRASE_MAX_SIZE

 OT_COMMISSIONING_PASSPHRASE_MAX_SIZE 255

حداکثر اندازه عبارت عبور راه اندازی.

OT_COMMISSIONING_PASSPHRASE_MIN_SIZE

 OT_COMMISSIONING_PASSPHRASE_MIN_SIZE 6

حداقل اندازه کلمه عبور راه اندازی.

OT_JOINER_MAX_PSKD_LENGTH

 OT_JOINER_MAX_PSKD_LENGTH 32

حداکثر طول رشته یک Joiner PSKd (شامل کاراکتر تهی نمی شود).

OT_PROVISIONING_URL_MAX_SIZE

 OT_PROVISIONING_URL_MAX_SIZE 64

حداکثر اندازه (تعداد کاراکترها) در رشته URL تهیه (به استثنای کاراکتر تهی).

OT_STEERING_DATA_MAX_LENGTH

 OT_STEERING_DATA_MAX_LENGTH 16

حداکثر طول داده فرمان (بایت)

منابع

موضوعات مرجع OpenThread API از کد منبع موجود در GitHub سرچشمه می گیرند. برای اطلاعات بیشتر، یا مشارکت در اسناد ما، به منابع مراجعه کنید.