จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ

nl::Weave::ระบบ:เลเยอร์

#include <src/system/SystemLayer.h>

This provides access to timers according to the configured event handling model.

สรุป

สําหรับ WEAVE_SYSTEM_CONFIG_USE_SOCKETS การแจ้งเตือนความพร้อมของกิจกรรมจะจัดการผ่านการใช้แบบสํารวจ/การเลือกแบบดั้งเดิมในการปรับแพลตฟอร์ม

สําหรับ WEAVE_SYSTEM_CONFIG_USE_LWIP การแจ้งเตือนความพร้อมของเหตุการณ์จะได้รับการจัดการผ่านเหตุการณ์ / ข้อความ และฮุกเฉพาะแพลตฟอร์มและระบบสําหรับระบบเหตุการณ์/ข้อความ

เครื่องมือสร้างและตัวสร้าง

Layer(void)

ประเภทสาธารณะ

EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument) Typedef
Error(*
TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError) Typedef
void(*

ฟังก์ชันสาธารณะ

AddEventHandlerDelegate(LwIPEventHandlerDelegate & aDelegate)
Error
การดําเนินการนี้จะเพิ่มผู้รับมอบสิทธิ์เหตุการณ์ไปยังเลเยอร์ของระบบเพื่อขยายความสามารถในการจัดการเหตุการณ์ LwIP
CancelTimer(TimerCompleteFunct aOnComplete, void *aAppState)
void
การดําเนินการนี้จะยกเลิกตัวจับเวลา 1 ช็อต โดยเริ่มก่อนหน้านี้ผ่าน StartTimer()
DispatchEvent(Event aEvent)
Error
ส่งเหตุการณ์ที่ระบุเพื่อจัดการโดยอินสแตนซ์นี้
DispatchEvents(void)
Error
Wrapper ของ Syntactic ครอบคลุมพื้นที่เฉพาะแพลตฟอร์มซึ่งส่งผลต่อ Game Loop ที่กําลังรอคิวที่ให้บริการอินสแตนซ์นี้ ดึงเหตุการณ์ออกจากคิว แล้วส่งเพื่อดําเนินการจัดการ
GetPlatformData(void) const
void *
การตั้งค่านี้จะส่งคืนข้อมูลแพลตฟอร์มเฉพาะไคลเอ็นต์ที่มอบหมายให้กับอินสแตนซ์ หากเคยตั้งค่าไว้
HandleEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
วิธีนี้จะนําการแจกจ่ายและการจัดการเหตุการณ์ Layer ของระบบ Weave ตามจริง
HandlePlatformTimer(void)
Error
จัดการเหตุการณ์การหมดอายุของตัวจับเวลาในแพลตฟอร์ม
HandleSelectResult(int aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet)
void
จัดการ I/O จากการโทรที่เลือก
Init(void *aContext)
Error
NewTimer(Timer *& aTimerPtr)
Error
PostEvent(Object & aTarget, EventType aEventType, uintptr_t aArgument)
Error
การตั้งค่านี้จะโพสต์เหตุการณ์ / ข้อความประเภทที่ระบุพร้อมอาร์กิวเมนต์ที่ระบุไปยังคิวกิจกรรมเฉพาะแพลตฟอร์มของอินสแตนซ์นี้
PrepareSelect(int & aSetSize, fd_set *aReadSet, fd_set *aWriteSet, fd_set *aExceptionSet, struct timeval & aSleepTime)
void
เตรียมชุดคําอธิบายไฟล์สําหรับ select() ให้จะทํางาน
ScheduleWork(TimerCompleteFunct aComplete, void *aAppState)
Error
กําหนดเวลาให้ฟังก์ชันที่มีลายเซ็นเหมือนกับ TimerCompleteFunct เพื่อเรียกใช้โดยเร็วที่สุดในเทรด Weave
SetPlatformData(void *aPlatformData)
void
ซึ่งจะเป็นการตั้งค่าข้อมูลแพลตฟอร์มเฉพาะไคลเอ็นต์ที่ระบุให้กับอินสแตนซ์สําหรับการเรียกดูในภายหลังโดยแพลตฟอร์มไคลเอ็นต์
Shutdown(void)
Error
StartTimer(uint32_t aMilliseconds, TimerCompleteFunct aComplete, void *aAppState)
Error
วิธีนี้เริ่มต้นตัวจับเวลา 1 ช็อต
State(void) const
LayerState
การดําเนินการนี้จะแสดงสถานะปัจจุบันของออบเจ็กต์เลเยอร์
WakeSelect(void)
void
ปลุกเทรด I/O ที่ตรวจสอบตัวอธิบายไฟล์โดยใช้ select() โดยเขียนไบต์เดียวไปยังไปป์ไลน์การปลุกระบบ

ฟังก์ชันสาธารณะแบบคงที่

GetClock_Monotonic(void)
uint64_t
ส่งคืนเวลาระบบโมโนโทนในหน่วยไมโครวินาที
GetClock_MonotonicHiRes(void)
uint64_t
แสดงเวลาของระบบโมโนโทนความละเอียดสูง (ที่เป็นไปได้) ในหน่วยไมโครวินาที
GetClock_MonotonicMS(void)
uint64_t
แสดงเวลาของระบบโมโนโทนในหน่วยมิลลิวินาที
GetClock_RealTime(uint64_t & curTime)
Error
แสดงเวลาจริง (พลเรือน) ปัจจุบันในรูปแบบเวลา Unix แบบ Unix
GetClock_RealTimeMS(uint64_t & curTimeMS)
Error
แสดงผลเวลาจริง (ล่าสุด) ในปัจจุบันในรูปแบบเวลา Unixsecond Unix
SetClock_RealTime(uint64_t newCurTime)
Error
ตั้งค่าแนวคิดของแพลตฟอร์มของเวลาจริง (พลเรือน) ในปัจจุบัน

ประเภทสาธารณะ

เครื่องจัดการเหตุการณ์

Error(* EventHandler)(Object &aTarget, EventType aEventType, uintptr_t aArgument)

ตัวจับเวลาเสร็จสมบูรณ์

void(* TimerCompleteFunct)(Layer *aLayer, void *aAppState, Error aError)

ฟังก์ชันสาธารณะ

AddEventHandler

Error AddEventHandlerDelegate(
  LwIPEventHandlerDelegate & aDelegate
)

การดําเนินการนี้จะเพิ่มผู้รับมอบสิทธิ์เหตุการณ์ไปยังเลเยอร์ของระบบเพื่อขยายความสามารถในการจัดการเหตุการณ์ LwIP

รายละเอียด
พารามิเตอร์
[in] aDelegate
โครงสร้างผู้รับมอบสิทธิ์เหตุการณ์ LwIP ที่ยังไม่ได้กําหนดค่าเริ่มต้น
แสดงผลค่า
WEAVE_SYSTEM_NO_ERROR
สําเร็จแล้ว
WEAVE_SYSTEM_ERROR_BAD_ARGS
หากตัวระบุฟังก์ชันที่มีอยู่ใน aDelegate มีค่าเป็น NULL

ยกเลิกตัวจับเวลา

void CancelTimer(
  TimerCompleteFunct aOnComplete,
  void *aAppState
)

การดําเนินการนี้จะยกเลิกตัวจับเวลา 1 ช็อต โดยเริ่มก่อนหน้านี้ผ่าน StartTimer()

รายละเอียด
พารามิเตอร์
[in] aOnComplete
ตัวชี้ไปยังฟังก์ชันเรียกกลับที่ใช้เรียก StartTimer()
[in] aAppState
ตัวชี้ไปยังออบเจ็กต์สถานะแอปพลิเคชันที่ใช้ในการเรียกใช้ StartTimer()

เหตุการณ์ Dispatch

Error DispatchEvent(
  Event aEvent
)

ส่งเหตุการณ์ที่ระบุเพื่อจัดการโดยอินสแตนซ์นี้

การเลิกจัดวางประเภทและอาร์กิวเมนต์จากเหตุการณ์จะจัดการโดย ฮุกเฉพาะแพลตฟอร์ม ซึ่งควรเรียกกลับไปยัง Layer::HandleEvent สําหรับการกระจายจริง

รายละเอียด
พารามิเตอร์
[in] aEvent
ออบเจ็กต์เหตุการณ์เฉพาะแพลตฟอร์มสําหรับจัดการ
การคืนสินค้า
WEhave_SYSTEM_NO_ERROR สําเร็จ ไม่เช่นนั้นจะแสดงข้อผิดพลาดที่ระบุสาเหตุของการเริ่มต้นไม่สําเร็จ

เหตุการณ์การเผยแพร่

Error DispatchEvents(
  void
)

Wrapper ของ Syntactic ครอบคลุมพื้นที่เฉพาะแพลตฟอร์มซึ่งส่งผลต่อ Game Loop ที่กําลังรอคิวที่ให้บริการอินสแตนซ์นี้ ดึงเหตุการณ์ออกจากคิว แล้วส่งเพื่อดําเนินการจัดการ

รายละเอียด
การคืนสินค้า
WEhave_SYSTEM_NO_ERROR สําเร็จ ไม่เช่นนั้นจะแสดงข้อผิดพลาดที่ระบุสาเหตุของการเริ่มต้นไม่สําเร็จ

รับข้อมูลแพลตฟอร์ม

void * GetPlatformData(
  void
) const 

การตั้งค่านี้จะส่งคืนข้อมูลแพลตฟอร์มเฉพาะไคลเอ็นต์ที่มอบหมายให้กับอินสแตนซ์ หากเคยตั้งค่าไว้

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

แฮนเดิล

Error HandleEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

วิธีนี้จะนําการแจกจ่ายและการจัดการเหตุการณ์ Layer ของระบบ Weave ตามจริง

รายละเอียด
พารามิเตอร์
[in,out] aTarget
การอ้างอิงถึงออบเจ็กต์เลเยอร์ที่มีการกําหนดเป้าหมายเหตุการณ์
[in] aEventType
ประเภทเหตุการณ์ / ข้อความที่จะจัดการ
[in] aArgument
อาร์กิวเมนต์ที่เชื่อมโยงกับเหตุการณ์ / ข้อความ
แสดงผลค่า
WEAVE_SYSTEM_NO_ERROR
สําเร็จแล้ว
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
หากสถานะของออบเจ็กต์ InetLayer ไม่ถูกต้อง
WEAVE_SYSTEM_ERROR_UNEXPECTED_EVENT
หากไม่รู้จักประเภทเหตุการณ์

ตัวจับเวลาแพลตฟอร์ม

Error HandlePlatformTimer(
  void
)

จัดการเหตุการณ์การหมดอายุของตัวจับเวลาในแพลตฟอร์ม

การเรียก nl::Weave::System::ตัวจับเวลา::HandleTimeouts ตัวจับเวลาเพื่อจัดการกับตัวจับเวลาที่หมดอายุ ระบบคิดว่า API นี้จะเรียกใช้เฉพาะเมื่อชุดข้อความดังกล่าวเป็นเจ้าของออบเจ็กต์ Layer ของระบบ Weave

รายละเอียด
การคืนสินค้า
WEhave_SYSTEM_NO_ERROR สําเร็จ รหัสข้อผิดพลาด ไม่เช่นนั้น

ผลลัพธ์

void HandleSelectResult(
  int aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet
)

จัดการ I/O จากการโทรที่เลือก

วิธีนี้จะบันทึกเหตุการณ์ I/O ที่รอดําเนินการในปลายทางแต่ละรายการที่ใช้งานอยู่ และจะเรียกใช้ฟังก์ชันการจัดการ I/O ที่เกี่ยวข้องสําหรับปลายทางเหล่านั้น

รายละเอียด
พารามิเตอร์
[in] aSetSize
ค่าผลตอบแทนของการโทรที่เลือก
[in] aReadSet
ตัวชี้ไปยังชุดคําอธิบายของไฟล์สําหรับอ่าน
[in] aWriteSet
ตัวชี้ไปยังชุดคําอธิบายของไฟล์สําหรับเขียน
[in] aExceptionSet
ตัวชี้ไปยังชุดตัวบอกไฟล์พร้อมข้อผิดพลาด

เริ่ม

Error Init(
  void *aContext
)

เลเยอร์

 Layer(
  void
)

ตัวจับเวลาใหม่

Error NewTimer(
  Timer *& aTimerPtr
)

หลังกิจกรรม

Error PostEvent(
  Object & aTarget,
  EventType aEventType,
  uintptr_t aArgument
)

การตั้งค่านี้จะโพสต์เหตุการณ์ / ข้อความประเภทที่ระบุพร้อมอาร์กิวเมนต์ที่ระบุไปยังคิวกิจกรรมเฉพาะแพลตฟอร์มของอินสแตนซ์นี้

รายละเอียด
พารามิเตอร์
[in,out] aTarget
ตัวชี้ไปยังออบเจ็กต์ Layer ของระบบ Weave ที่สร้างคําขอโพสต์
[in] aEventType
ประเภทของกิจกรรมที่จะโพสต์
[in,out] aArgument
อาร์กิวเมนต์ที่เชื่อมโยงกับเหตุการณ์ที่จะโพสต์
แสดงผลค่า
WEAVE_SYSTEM_NO_ERROR
สําเร็จแล้ว
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
หากสถานะของออบเจ็กต์เลเยอร์ไม่ถูกต้อง
WEAVE_SYSTEM_ERROR_NO_MEMORY
หากคิวกิจกรรมเต็มแล้ว
other
ข้อผิดพลาดเฉพาะแพลตฟอร์มที่สร้างขึ้นเพื่อระบุสาเหตุที่เกิดความล้มเหลว

เตรียมพร้อมเลือก

void PrepareSelect(
  int & aSetSize,
  fd_set *aReadSet,
  fd_set *aWriteSet,
  fd_set *aExceptionSet,
  struct timeval & aSleepTime
)

เตรียมชุดคําอธิบายไฟล์สําหรับ select() ให้จะทํางาน

รายละเอียด
พารามิเตอร์
[out] aSetSize
ช่วงของตัวแจ้งไฟล์ในชุดตัวบอกไฟล์
[in] aReadSet
ตัวชี้ไปยังชุดคําอธิบายไฟล์ที่อ่านได้
[in] aWriteSet
ตัวชี้ไปยังชุดตัวบอกไฟล์ที่เขียนได้
[in] aExceptionSet
ตัวชี้ไปยังชุดตัวบอกไฟล์พร้อมข้อผิดพลาด
[in] aSleepTime
การอ้างอิงถึงระยะเวลาการนอนหลับสูงสุด

กําหนดเวลางาน

Error ScheduleWork(
  TimerCompleteFunct aComplete,
  void *aAppState
)

กําหนดเวลาให้ฟังก์ชันที่มีลายเซ็นเหมือนกับ TimerCompleteFunct เพื่อเรียกใช้โดยเร็วที่สุดในเทรด Weave

รายละเอียด
พารามิเตอร์
[in] aComplete
ตัวชี้ไปยังฟังก์ชันเรียกกลับที่จะเรียกใช้เมื่อตัวจับเวลานี้เริ่มทํางาน
[in] aAppState
ตัวชี้ไปยังออบเจ็กต์สถานะแอปพลิเคชันที่จะส่งผ่านไปยังฟังก์ชันเรียกกลับเป็นอาร์กิวเมนต์
แสดงผลค่า
WEAVE_SYSTEM_ERROR_UNEXPECTED_STATE
หากยังไม่ได้เริ่ม SystemLayer
WEAVE_SYSTEM_ERROR_NO_MEMORY
หาก SystemLayer จัดสรรตัวจับเวลาใหม่ไม่ได้
WEAVE_SYSTEM_NO_ERROR
สําเร็จแล้ว

ข้อมูลแพลตฟอร์ม

void SetPlatformData(
  void *aPlatformData
)

ซึ่งจะเป็นการตั้งค่าข้อมูลแพลตฟอร์มเฉพาะไคลเอ็นต์ที่ระบุให้กับอินสแตนซ์สําหรับการเรียกดูในภายหลังโดยแพลตฟอร์มไคลเอ็นต์

รายละเอียด
พารามิเตอร์
[in] aPlatformData
ข้อมูลแพลตฟอร์มเฉพาะไคลเอ็นต์ที่ตั้งค่าไว้

ปิดการทำงาน

Error Shutdown(
  void
)

เริ่มตัวจับเวลา

Error StartTimer(
  uint32_t aMilliseconds,
  TimerCompleteFunct aComplete,
  void *aAppState
)

วิธีนี้เริ่มต้นตัวจับเวลา 1 ช็อต

รายละเอียด
พารามิเตอร์
[in] aMilliseconds
เวลาหมดอายุเป็นมิลลิวินาที
[in] aComplete
ตัวชี้ไปยังฟังก์ชันที่เรียกว่าเมื่อตัวจับเวลาหมดอายุ
[in] aAppState
ตัวชี้ไปยังออบเจ็กต์สถานะแอปพลิเคชันที่ใช้เมื่อตัวจับเวลาหมดอายุ
การคืนสินค้า
WEhave_SYSTEM_NO_ERROR สําเร็จแล้ว
การคืนสินค้า
WEhave_SYSTEM_ERROR_NO_MEMORY หากจัดสรรตัวจับเวลาไม่ได้
การคืนสินค้า
ค่าอื่นๆ ที่ระบุว่าเริ่มตัวจับเวลาไม่สําเร็จ

สถานะ

LayerState State(
  void
) const 

การดําเนินการนี้จะแสดงสถานะปัจจุบันของออบเจ็กต์เลเยอร์

เลือกโหมด Wake

void WakeSelect(
  void
)

ปลุกเทรด I/O ที่ตรวจสอบตัวอธิบายไฟล์โดยใช้ select() โดยเขียนไบต์เดียวไปยังไปป์ไลน์การปลุกระบบ

หมายเหตุ: หากมีการเรียก WakeSelect() จากภายใน HandleSelectResult() ก็สามารถข้ามการเขียนไปยังท่อปลุกระบบได้ เนื่องจากชุดข้อความ I/O เปิดอยู่ นอกจากนั้น เรายังไม่สนใจว่าการเขียนนี้ล้มเหลวหรือเกิดจากสาเหตุที่เป็นไปได้เพียงข้อเดียว คือไปป์ไลน์จะเต็ม ซึ่งในกรณีนี้ ชุดข้อความการโทรที่เลือกจะยังคงทํางาน

ฟังก์ชันสาธารณะแบบคงที่

GetClock_Monotonic

uint64_t GetClock_Monotonic(
  void
)

ส่งคืนเวลาระบบโมโนโทนในหน่วยไมโครวินาที

ฟังก์ชันนี้จะส่งคืนเวลาที่ผ่านไปในหน่วยไมโครวินาทีนับตั้งแต่ยุคที่กําหนดเองตามแพลตฟอร์ม ค่าที่แสดงผลรับประกันว่าจะเพิ่มขึ้นเรื่อยๆ (เช่น ไม่ตัดมาใหม่) ระหว่างการรีบูตระบบ นอกจากนี้ แหล่งที่มาของเวลาพื้นฐานยังรับประกันเห็บอย่างต่อเนื่องระหว่างโหมดสลีปในระบบใดๆ ที่ไม่ได้รีสตาร์ทเมื่อตื่นนอน

แม้ว่าบางแพลตฟอร์มอาจเลือกส่งคืนค่าที่วัดเวลานับจากการเปิดเครื่อง แอปพลิเคชันต้องไม่ใช้ขั้นตอนนี้ นอกจากนี้ องค์ประกอบ GetClock_Monotonic() ยังไม่จําเป็นต้องเหมือนกับฟังก์ชัน อื่นๆ ของ GetClock... ดังนั้น การคํานวณเวลาสัมพัทธ์จะใช้ได้เฉพาะกับค่าที่แสดงผลโดยฟังก์ชันเดียวกันเท่านั้น

ฟังก์ชันการทํางานนี้รับประกันได้ว่าชุดข้อความจะปลอดภัยในทุกแพลตฟอร์มที่ใช้ชุดข้อความ

รายละเอียด
การคืนสินค้า
เวลาที่ผ่านไปในหน่วยไมโครวินาทีนับตั้งแต่ยุคที่กําหนดเองหรือตามแพลตฟอร์ม

GetClock_MonotonicHiRes

uint64_t GetClock_MonotonicHiRes(
  void
)

แสดงเวลาของระบบโมโนโทนความละเอียดสูง (ที่เป็นไปได้) ในหน่วยไมโครวินาที

ฟังก์ชันนี้จะส่งคืนเวลาที่ผ่านไปในหน่วยไมโครวินาทีนับตั้งแต่ยุคที่กําหนดเองตามแพลตฟอร์ม ค่าที่แสดงผลรับประกันว่าจะเพิ่มขึ้นเรื่อยๆ (เช่น ไม่ตัดมาใหม่) ระหว่างการรีบูตระบบ อย่างไรก็ตาม ตัวควบคุมอุณหภูมิที่เกี่ยวข้องไม่จําเป็นต้องจับเวลาอย่างต่อเนื่องในระหว่างสถานะการนอนหลับลึกของระบบ

บางแพลตฟอร์มอาจใช้ GetClock_MonotonicHiRes() โดยใช้ตัวจับเวลาความละเอียดสูงที่มีความแม่นยํามากกว่า GetClock_Monotonic() และไม่ขึ้นอยู่กับการปรับนาฬิกาแบบค่อยเป็นค่อยไป (สลิง) ระบบที่ไม่มีตัวจับเวลาดังกล่าวอาจแสดงค่าเหมือนกับ GetClock_Monotonic()

Epoch สําหรับเวลาที่แสดงโดย GetClock_MonotonicHiRes() ไม่จําเป็นต้องเหมือนกับฟังก์ชัน GetClock... อื่นๆ รวมถึง GetClock_Monotonic()

ฟังก์ชันการทํางานนี้รับประกันได้ว่าชุดข้อความจะปลอดภัยในทุกแพลตฟอร์มที่ใช้ชุดข้อความ

รายละเอียด
การคืนสินค้า
เวลาที่ผ่านไปในหน่วยไมโครวินาทีนับตั้งแต่ยุคที่กําหนดเองหรือตามแพลตฟอร์ม

GetClock_MonotonicMS

uint64_t GetClock_MonotonicMS(
  void
)

แสดงเวลาของระบบโมโนโทนในหน่วยมิลลิวินาที

ฟังก์ชันนี้จะส่งคืนเวลาที่ผ่านไปเป็นหน่วยมิลลิวินาที เนื่องจากจะใช้ Epoch ตามแพลตฟอร์มหรือที่กําหนดเองได้ ค่าที่แสดงผลรับประกันว่าจะเพิ่มขึ้นเรื่อยๆ (เช่น ไม่ตัดมาใหม่) ระหว่างการรีบูตระบบ นอกจากนี้ แหล่งที่มาของเวลาพื้นฐานยังรับประกันเห็บอย่างต่อเนื่องระหว่างโหมดสลีปในระบบใดๆ ที่ไม่ได้รีสตาร์ทเมื่อตื่นนอน

แม้ว่าบางแพลตฟอร์มอาจเลือกส่งคืนค่าที่วัดเวลานับจากการเปิดเครื่อง แอปพลิเคชันต้องไม่ใช้ขั้นตอนนี้ นอกจากนี้ องค์ประกอบ GetClock_Monotonic() ยังไม่จําเป็นต้องเหมือนกับฟังก์ชัน อื่นๆ ของ GetClock... ดังนั้น การคํานวณเวลาสัมพัทธ์จะใช้ได้เฉพาะกับค่าที่แสดงผลโดยฟังก์ชันเดียวกันเท่านั้น

ฟังก์ชันการทํางานนี้รับประกันได้ว่าชุดข้อความจะปลอดภัยในทุกแพลตฟอร์มที่ใช้ชุดข้อความ

รายละเอียด
การคืนสินค้า
เวลาที่ผ่านไปในหน่วยมิลลิวินาที นับตั้งแต่ยุคที่กําหนดเองหรือตามแพลตฟอร์ม

รับนาฬิกาแบบเรียลไทม์

Error GetClock_RealTime(
  uint64_t & curTime
)

แสดงเวลาจริง (พลเรือน) ปัจจุบันในรูปแบบเวลา Unix แบบ Unix

เมธอดนี้แสดงแนวคิดแพลตฟอร์มแบบเรียลไทม์ โดยแสดงเป็นค่าเวลา Unix ที่ปรับขนาดเป็นไมโครวินาที เพื่อให้แน่ใจว่านาฬิกาที่ใช้งานอยู่จะทําเครื่องหมายเห็บที่วินาทีเต็ม (ค่า 1,000,000) เป็นอย่างน้อย แต่ในบางแพลตฟอร์มอาจทําเครื่องหมายเร็วกว่า

หากแพลตฟอร์มที่เกี่ยวข้องติดตามแบบเรียลไทม์ได้ แต่ระบบยังไม่ซิงค์ในขณะนี้ GetClock_RealTime() จะแสดงข้อผิดพลาด WEhave_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED

บนแพลตฟอร์มที่ไม่สามารถติดตามได้แบบเรียลไทม์ เมธอด GetClock_RealTime() อาจหายไป ซึ่งทําให้เกิดข้อผิดพลาดในลิงก์ของแอปพลิเคชันใดก็ตามที่อ้างอิงถึง หรือแพลตฟอร์มดังกล่าวอาจระบุการใช้งาน GetClock_RealTime() ที่แสดงข้อผิดพลาด WEhave_SYSTEM_ERROR_NOT_SUPPORTED เสมอ

ฟังก์ชันการทํางานนี้รับประกันได้ว่าชุดข้อความจะปลอดภัยในทุกแพลตฟอร์มที่ใช้ชุดข้อความ

รายละเอียด
พารามิเตอร์
[out] curTime
เวลาปัจจุบันจะแสดงเป็นเวลา Unix โดยปรับขนาดเป็นไมโครวินาที
แสดงผลค่า
WEAVE_SYSTEM_NO_ERROR
หากวิธีการประสบความสําเร็จ
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
หากแพลตฟอร์มติดตามได้แบบเรียลไทม์ แต่ระบบจะไม่ซิงค์ในขณะนี้
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
หากแพลตฟอร์มติดตามแบบเรียลไทม์ไม่ได้

GetClock_RealTimeMS

Error GetClock_RealTimeMS(
  uint64_t & curTimeMS
)

แสดงผลเวลาจริง (ล่าสุด) ในปัจจุบันในรูปแบบเวลา Unixsecond Unix

เมธอดนี้แสดงแนวคิดของแพลตฟอร์มในพื้นที่แบบเรียลไทม์ โดยแสดงเป็นค่าเวลา Unix ที่ปรับขนาดเป็นมิลลิวินาที เพื่อให้แน่ใจว่านาฬิกาที่ใช้งานอยู่จะทําเครื่องหมายเห็บที่วินาทีเต็ม (ค่า 1,000,000) เป็นอย่างน้อย แต่ในบางแพลตฟอร์มอาจทําเครื่องหมายเร็วกว่า

หากแพลตฟอร์มที่เกี่ยวข้องติดตามแบบเรียลไทม์ได้ แต่ระบบยังไม่ซิงค์ในขณะนี้ GetClock_RealTimeMS() จะแสดงข้อผิดพลาด WEhave_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED

บนแพลตฟอร์มที่ไม่สามารถติดตามได้แบบเรียลไทม์ เมธอด GetClock_RealTimeMS() อาจหายไป ซึ่งทําให้เกิดข้อผิดพลาดในลิงก์ของแอปพลิเคชันใดก็ตามที่อ้างอิงถึง หรือแพลตฟอร์มดังกล่าวอาจติดตั้งใช้งาน GetClock_RealTimeMS() ซึ่งส่งคืนข้อผิดพลาด WEhave_SYSTEM_ERROR_NOT_SUPPORTED เสมอ

ฟังก์ชันการทํางานนี้รับประกันได้ว่าชุดข้อความจะปลอดภัยในทุกแพลตฟอร์มที่ใช้ชุดข้อความ

รายละเอียด
พารามิเตอร์
[out] curTime
เวลาปัจจุบันจะแสดงเป็นเวลา Unix โดยปรับขนาดเป็นมิลลิวินาที
แสดงผลค่า
WEAVE_SYSTEM_NO_ERROR
หากวิธีการประสบความสําเร็จ
#WEAVE_SYSTEM_ERROR_REAL_TIME_NOT_SYNCED
หากแพลตฟอร์มติดตามได้แบบเรียลไทม์ แต่ระบบจะไม่ซิงค์ในขณะนี้
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
หากแพลตฟอร์มติดตามแบบเรียลไทม์ไม่ได้

ตั้งนาฬิกาแบบเรียลไทม์

Error SetClock_RealTime(
  uint64_t newCurTime
)

ตั้งค่าแนวคิดของแพลตฟอร์มของเวลาจริง (พลเรือน) ในปัจจุบัน

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

เมื่อตั้งค่าแล้ว นาฬิกาของแพลตฟอร์มที่สําคัญควรติดตามแบบเรียลไทม์พร้อมข้อมูลรายละเอียดอย่างน้อย 2 วินาที

บางแพลตฟอร์มอาจจํากัดว่าแอปพลิเคชันหรือกระบวนการใดจะตั้งค่าแบบเรียลไทม์ได้ หากผู้โทรไม่ได้รับอนุญาตให้เปลี่ยนแบบเรียลไทม์ ฟังก์ชัน SetClock_RealTime() จะแสดงข้อผิดพลาด WEhave_SYSTEM_ERROR_ACCESS_DENIED

บนแพลตฟอร์มที่ไม่สามารถติดตามได้แบบเรียลไทม์หรือไม่สามารถตั้งค่าแบบเรียลไทม์ ฟังก์ชัน SetClock_RealTime() อาจหายไป ซึ่งทําให้เกิดข้อผิดพลาดในลิงก์สําหรับแอปพลิเคชันใดก็ตามที่อ้างอิงฟังก์ชันดังกล่าว หรือแพลตฟอร์มดังกล่าวอาจระบุการใช้งาน SetClock_RealTime() ที่แสดงข้อผิดพลาด WEhave_SYSTEM_ERROR_NOT_SUPPORTED เสมอ

ฟังก์ชันการทํางานนี้รับประกันได้ว่าชุดข้อความจะปลอดภัยในทุกแพลตฟอร์มที่ใช้ชุดข้อความ

รายละเอียด
พารามิเตอร์
[in] newCurTime
เวลาปัจจุบันใหม่ในรูปแบบ Unix ที่ปรับขนาดเป็นไมโครวินาที
แสดงผลค่า
WEAVE_SYSTEM_NO_ERROR
หากวิธีการประสบความสําเร็จ
#WEAVE_SYSTEM_ERROR_NOT_SUPPORTED
หากแพลตฟอร์มติดตามแบบเรียลไทม์ไม่ได้
#WEAVE_SYSTEM_ERROR_ACCESS_DENIED
หากแอปพลิเคชันการโทรไม่มีสิทธิ์ตั้งเวลาปัจจุบัน