การตั้งค่า

โมดูลนี้ประกอบด้วยกระบวนการ Abstraction ของแพลตฟอร์มสำหรับพื้นที่เก็บข้อมูลการตั้งค่าที่ไม่ผันผวน

สรุป

การแจกแจง

anonymous enum{
  OT_SETTINGS_KEY_ACTIVE_DATASET = 0x0001,
  OT_SETTINGS_KEY_PENDING_DATASET = 0x0002,
  OT_SETTINGS_KEY_NETWORK_INFO = 0x0003,
  OT_SETTINGS_KEY_PARENT_INFO = 0x0004,
  OT_SETTINGS_KEY_CHILD_INFO = 0x0005,
  OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY = 0x0007,
  OT_SETTINGS_KEY_DAD_INFO = 0x0008,
  OT_SETTINGS_KEY_SRP_ECDSA_KEY = 0x000b,
  OT_SETTINGS_KEY_SRP_CLIENT_INFO = 0x000c,
  OT_SETTINGS_KEY_SRP_SERVER_INFO = 0x000d,
  OT_SETTINGS_KEY_BR_ULA_PREFIX = 0x000f,
  OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES = 0x0010,
  OT_SETTINGS_KEY_BORDER_AGENT_ID = 0x0011
}
enum
กำหนดคีย์ของการตั้งค่า

ฟังก์ชัน

otPlatSettingsAdd(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
เพิ่มค่าลงในการตั้งค่า
otPlatSettingsDeinit(otInstance *aInstance)
void
ดำเนินการลบค่าเริ่มต้นสำหรับระบบย่อยของการตั้งค่า หากจำเป็น
otPlatSettingsDelete(otInstance *aInstance, uint16_t aKey, int aIndex)
นำการตั้งค่าออกจากที่เก็บการตั้งค่า
otPlatSettingsGet(otInstance *aInstance, uint16_t aKey, int aIndex, uint8_t *aValue, uint16_t *aValueLength)
ดึงค่าของการตั้งค่า
otPlatSettingsInit(otInstance *aInstance, const uint16_t *aSensitiveKeys, uint16_t aSensitiveKeysLength)
void
ดำเนินการเริ่มต้นให้กับระบบย่อยของการตั้งค่า หากจำเป็น
otPlatSettingsSet(otInstance *aInstance, uint16_t aKey, const uint8_t *aValue, uint16_t aValueLength)
ตั้งค่าหรือแทนที่ค่าของการตั้งค่า
otPlatSettingsWipe(otInstance *aInstance)
void
นำการตั้งค่าทั้งหมดออกจากที่เก็บการตั้งค่า

การแจกแจง

enum ที่ไม่ระบุตัวตน

 anonymous enum

กำหนดคีย์ของการตั้งค่า

หมายเหตุ: เมื่อเพิ่มคีย์การตั้งค่าใหม่ หากการตั้งค่าที่เกี่ยวข้องกับคีย์ดังกล่าวมีข้อมูลที่ละเอียดอ่อนด้านความปลอดภัย นักพัฒนาแอปจะต้องเพิ่มคีย์ลงในอาร์เรย์ aSensitiveKeys ซึ่งส่งใน otPlatSettingsInit()

พร็อพเพอร์ตี้
OT_SETTINGS_KEY_ACTIVE_DATASET

ชุดข้อมูลการทำงานที่ใช้งานอยู่

OT_SETTINGS_KEY_BORDER_AGENT_ID

เอเจนต์ชายแดน/รหัสเราเตอร์ที่ไม่ซ้ำกัน

OT_SETTINGS_KEY_BR_ON_LINK_PREFIXES

คำนำหน้า On-link ของบราซิล

OT_SETTINGS_KEY_BR_ULA_PREFIX

คำนำหน้า BR ULA

OT_SETTINGS_KEY_CHILD_INFO

ข้อมูลย่อย

OT_SETTINGS_KEY_DAD_INFO

ข้อมูลการตรวจจับที่อยู่ (DAD) ซ้ำ

OT_SETTINGS_KEY_NETWORK_INFO

ข้อมูลเครือข่ายเทรด

OT_SETTINGS_KEY_PARENT_INFO

ข้อมูลระดับบนสุด

OT_SETTINGS_KEY_PENDING_DATASET

ชุดข้อมูลการดำเนินการที่รอดำเนินการ

OT_SETTINGS_KEY_SLAAC_IID_SECRET_KEY

คีย์ SLAAC เพื่อสร้าง IID แบบทึบเชิงความหมาย

OT_SETTINGS_KEY_SRP_CLIENT_INFO

ข้อมูลไคลเอ็นต์ SRP (ที่อยู่เซิร์ฟเวอร์ SRP ที่เลือก)

OT_SETTINGS_KEY_SRP_ECDSA_KEY

คู่คีย์สาธารณะ/ส่วนตัว ECDSA ของไคลเอ็นต์ SRP

OT_SETTINGS_KEY_SRP_SERVER_INFO

ข้อมูลเซิร์ฟเวอร์ SRP (พอร์ต UDP)

ฟังก์ชัน

otPlatSettingsAdd

otError otPlatSettingsAdd(
  otInstance *aInstance,
  uint16_t aKey,
  const uint8_t *aValue,
  uint16_t aValueLength
)

เพิ่มค่าลงในการตั้งค่า

เพิ่มค่าลงในการตั้งค่าที่ระบุโดย aKey โดยไม่แทนที่ค่าที่มีอยู่

โปรดทราบว่าคุณไม่จำเป็นต้องติดตั้งใช้งานที่สำคัญเพื่อรักษาลำดับของรายการที่เชื่อมโยงกับคีย์ที่เฉพาะเจาะจง อาจมีการเพิ่มค่าที่เพิ่มต่อท้าย ตอนต้น หรือช่วงกลางก็ได้ ลำดับของค่าที่มีอยู่แล้วอาจมีการเปลี่ยนแปลงด้วย

การเรียกใช้ฟังก์ชันนี้ให้สำเร็จอาจทำให้มีการจัดลำดับการตั้งค่าที่ไม่เกี่ยวข้องซึ่งมีหลายค่าซ้ำ

สแต็ก OpenThread รับประกันว่าจะใช้เมธอด otPlatSettingsAdd() สำหรับ aKey ที่ otPlatSettingsAdd() จัดการก่อนหน้านี้ (เช่น มีอย่างน้อย 1 รายการ) หรือว่างเปล่าและ/หรือลบทั้งหมด (ไม่มีค่า)

เลเยอร์ของแพลตฟอร์มสามารถใช้ข้อมูลนี้ในการเพิ่มประสิทธิภาพการใช้งานได้

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aKey
คีย์ที่เชื่อมโยงกับการตั้งค่าที่จะเปลี่ยน
[in] aValue
ตัวชี้ไปยังตําแหน่งที่ควรอ่านค่าใหม่ของการตั้งค่า ต้องไม่เป็นค่าว่างหาก aValueLength ไม่ใช่ 0
[in] aValueLength
ความยาวของข้อมูลชี้โดย aValue อาจเป็น 0
แสดงผลค่า
OT_ERROR_NONE
มีการเพิ่มการตั้งค่าที่กำหนดหรือปรับปรุงที่จะเพิ่มแล้ว
OT_ERROR_NOT_IMPLEMENTED
ฟังก์ชันนี้ไม่มีการใช้งานบนแพลตฟอร์มนี้
OT_ERROR_NO_BUFS
ไม่มีพื้นที่เหลือสำหรับจัดเก็บการตั้งค่าที่ระบุ

otPlatSettingsDeinit

void otPlatSettingsDeinit(
  otInstance *aInstance
)

ดำเนินการลบค่าเริ่มต้นสำหรับระบบย่อยของการตั้งค่า หากจำเป็น

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread

otPlatSettingsDelete

otError otPlatSettingsDelete(
  otInstance *aInstance,
  uint16_t aKey,
  int aIndex
)

นำการตั้งค่าออกจากที่เก็บการตั้งค่า

ลบค่าที่เจาะจงจากการตั้งค่าที่ระบุโดย aKey จากพื้นที่เก็บการตั้งค่า

โปรดทราบว่าคุณไม่จำเป็นต้องติดตั้งใช้งานที่สำคัญเพื่อรักษาลำดับของรายการที่เชื่อมโยงกับคีย์ที่เฉพาะเจาะจง

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aKey
คีย์ที่เชื่อมโยงกับการตั้งค่าที่ขอ
[in] aIndex
ดัชนีของค่าที่จะนำออก หากตั้งค่าเป็น -1 ระบบจะนำค่าทั้งหมดสำหรับ aKey นี้ออก
แสดงผลค่า
OT_ERROR_NONE
พบคีย์และดัชนีที่กำหนดและนำออกสำเร็จแล้ว
OT_ERROR_NOT_FOUND
ไม่พบคีย์หรือดัชนีที่ระบุในที่เก็บการตั้งค่า
OT_ERROR_NOT_IMPLEMENTED
ฟังก์ชันนี้ไม่มีการใช้งานบนแพลตฟอร์มนี้

otPlatSettingsGet

otError otPlatSettingsGet(
  otInstance *aInstance,
  uint16_t aKey,
  int aIndex,
  uint8_t *aValue,
  uint16_t *aValueLength
)

ดึงค่าของการตั้งค่า

จะดึงข้อมูลค่าของการตั้งค่าที่ระบุโดย aKey และเขียนไปยังหน่วยความจำที่ aValue ชี้ไป จากนั้นจะเขียนความยาวเป็นจำนวนเต็มที่ aValueLength ชี้ไป ค่าเริ่มต้น aValueLength คือจำนวนไบต์สูงสุดที่จะเขียนไปยัง aValue

ใช้เพื่อตรวจสอบการมีอยู่ของคีย์ได้โดยไม่ต้องดึงค่าโดยการตั้งค่า aValue และ aValueLength เป็น NULL นอกจากนี้คุณยังตรวจสอบความยาวของการตั้งค่าโดยไม่ต้องดึงข้อมูลได้โดยการตั้งค่าเฉพาะ aValue เป็น NULL

โปรดทราบว่าการใช้พื้นที่เก็บข้อมูลพื้นฐานไม่จำเป็นต่อการรักษาลำดับของการตั้งค่าที่มีค่าหลายค่า ลำดับของค่าดังกล่าวอาจเปลี่ยนแปลงหลังจากการเขียนใน Store

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aKey
คีย์ที่เชื่อมโยงกับการตั้งค่าที่ขอ
[in] aIndex
ดัชนีของรายการที่เจาะจงที่จะรับ
[out] aValue
ตัวชี้ไปยังบริเวณที่ควรเขียนค่าของการตั้งค่า อาจตั้งค่าเป็น NULL ได้ หากเพียงแค่ทดสอบการแสดงเนื้อหาหรือความยาวของการตั้งค่า
[in,out] aValueLength
ตัวชี้ไปยังความยาวของค่า เมื่อเรียกใช้ ตัวชี้นี้ควรชี้ไปที่จำนวนเต็มที่มีขนาดสูงสุดที่เขียนได้ถึง aValue ระบบจะเขียนข้อมูลความยาวจริงของการตั้งค่าไว้ การตั้งค่านี้อาจถูกตั้งค่าเป็น NULL หากดำเนินการตรวจสอบบุคคลในบ้าน
แสดงผลค่า
OT_ERROR_NONE
ระบบพบและดึงข้อมูลการตั้งค่าที่ระบุสำเร็จแล้ว
OT_ERROR_NOT_FOUND
ไม่พบการตั้งค่าที่กำหนดในที่เก็บการตั้งค่า
OT_ERROR_NOT_IMPLEMENTED
ฟังก์ชันนี้ไม่มีการใช้งานบนแพลตฟอร์มนี้

otPlatSettingsInit

void otPlatSettingsInit(
  otInstance *aInstance,
  const uint16_t *aSensitiveKeys,
  uint16_t aSensitiveKeysLength
)

ดำเนินการเริ่มต้นให้กับระบบย่อยของการตั้งค่า หากจำเป็น

อีกทั้งตั้งค่าคีย์ที่มีความละเอียดอ่อนซึ่งควรจัดเก็บในพื้นที่ที่ปลอดภัย

โปรดทราบว่าต้องไม่ปล่อยหน่วยความจำที่ aSensitiveKeys ชี้ไปก่อน aInstance จะถูกทำลาย

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aSensitiveKeys
ตัวชี้ไปยังอาร์เรย์ที่มีรายการคีย์ที่มีความละเอียดอ่อน อาจเป็น NULL ก็ต่อเมื่อ aSensitiveKeysLength มีค่าเป็น 0 ซึ่งหมายความว่าไม่มีคีย์ที่มีความละเอียดอ่อน
[in] aSensitiveKeysLength
จำนวนรายการในอาร์เรย์ aSensitiveKeys

otPlatSettingsSet

otError otPlatSettingsSet(
  otInstance *aInstance,
  uint16_t aKey,
  const uint8_t *aValue,
  uint16_t aValueLength
)

ตั้งค่าหรือแทนที่ค่าของการตั้งค่า

ตั้งค่าหรือแทนที่ค่าของการตั้งค่าที่ระบุโดย aKey

การเรียกใช้ฟังก์ชันนี้ให้สำเร็จอาจทำให้มีการจัดลำดับการตั้งค่าที่ไม่เกี่ยวข้องซึ่งมีหลายค่าซ้ำ

สแต็ก OpenThread รับประกันว่าจะใช้เมธอด otPlatSettingsSet() สำหรับ aKey ที่ตั้งค่าไว้ก่อนหน้านี้โดยใช้ otPlatSettingsSet() (เช่น มีค่าเดียว) หรือว่างเปล่าและ/หรือลบทั้งหมด (ไม่มีค่า)

เลเยอร์ของแพลตฟอร์มสามารถใช้ข้อมูลนี้ในการเพิ่มประสิทธิภาพการใช้งานได้

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread
[in] aKey
คีย์ที่เชื่อมโยงกับการตั้งค่าที่จะเปลี่ยน
[in] aValue
ตัวชี้ไปยังตําแหน่งที่ควรอ่านค่าใหม่ของการตั้งค่า ต้องไม่เป็นค่าว่างหาก aValueLength ไม่ใช่ 0
[in] aValueLength
ความยาวของข้อมูลที่ aValue ชี้ไป อาจเป็น 0
แสดงผลค่า
OT_ERROR_NONE
มีการเปลี่ยนแปลงหรือเก็บการตั้งค่าที่กำหนด
OT_ERROR_NOT_IMPLEMENTED
ฟังก์ชันนี้ไม่มีการใช้งานบนแพลตฟอร์มนี้
OT_ERROR_NO_BUFS
ไม่มีพื้นที่เหลือสำหรับจัดเก็บการตั้งค่าที่ระบุ

otPlatSettingsWipe

void otPlatSettingsWipe(
  otInstance *aInstance
)

นำการตั้งค่าทั้งหมดออกจากที่เก็บการตั้งค่า

ลบการตั้งค่าทั้งหมดออกจากที่เก็บการตั้งค่า แล้วรีเซ็ตเป็นค่าเริ่มต้นจากโรงงาน

รายละเอียด
พารามิเตอร์
[in] aInstance
โครงสร้างอินสแตนซ์ OpenThread

แหล่งข้อมูล

หัวข้ออ้างอิง API ของ OpenThread จะมาจากซอร์สโค้ดซึ่งพร้อมใช้งานใน GitHub ดูข้อมูลเพิ่มเติมหรือมีส่วนร่วมในเอกสารประกอบของเราได้ที่แหล่งข้อมูล