ntptime --- ไคลเอนต์ NTP แบบง่าย

โมดูลนี้จัดเตรียมไคลเอนต์ขนาดเล็กสำหรับ Network Time Protocol (NTP) ซึ่งเป็นประโยชน์สำหรับการดึงเวลา UTC ปัจจุบันจากเซิร์ฟเวอร์เวลาทางอินเทอร์เน็ตและตั้งค่านาฬิกาเรียลไทม์บนบอร์ดได้ตามต้องการ โมดูลนี้ส่งคำขอ UDP เพียงครั้งเดียวไปยังเซิร์ฟเวอร์ NTP และถอดรหัสค่าไทม์สแตมป์ขนาด 64 บิตที่ได้รับกลับมา

โมดูลนี้ต้องอาศัยการเชื่อมต่อเครือข่ายที่ใช้งานได้ ค่าไทม์สแตมป์ขนาด 32 บิตที่ส่งผ่านเครือข่ายจะได้รับการแก้ไขโดยอัตโนมัติสำหรับการโรลโอเวอร์ NTP ปี 2036 ทำให้การนำไปใช้ยังคงใช้งานได้จนถึงเดือนกุมภาพันธ์ 2160

ฟังก์ชัน

ntptime.time() int

ส่งคำถามไปยังเซิร์ฟเวอร์ NTP ที่กำหนดไว้ (host) และส่งคืนเวลา UTC ปัจจุบันเป็นจำนวนวินาทีนับตั้งแต่ยุคของ MicroPython

ยุคของ MicroPython จะถูกตรวจสอบในระหว่างรันไทม์โดยใช้ time.gmtime() ทั้งยุค 1970 (Unix) และ 2000 ได้รับการรองรับ หากเป็นยุคอื่นจะเกิดข้อยกเว้น Exception

ข้อผิดพลาดของเครือข่ายจะถูกส่งต่อไปยังผู้เรียก โดยซ็อกเก็ตพื้นฐานจะถูกปิดเสมอก่อนที่จะส่งคืน

ntptime.settime() None

ดึงเวลาปัจจุบันโดยใช้ time() และตั้งค่า RTC บนบอร์ดตามนั้นผ่าน machine.RTC

โปรดทราบว่า MicroPython ไม่รองรับเขตเวลา RTC จะถูกตั้งค่าเป็น UTC เสมอ

ค่าคงที่

ntptime.host: str

ชื่อโฮสต์ของเซิร์ฟเวอร์ NTP ที่จะสืบค้น ค่าเริ่มต้นคือ "pool.ntp.org" สามารถกำหนดค่าใหม่ได้ในระหว่างรันไทม์เพื่อแทนที่ เช่น ntptime.host = "time.google.com"

ntptime.timeout: int

ค่าหมดเวลาของซ็อกเก็ตเป็นวินาทีที่ใช้กับคำขอ UDP ของ NTP ค่าเริ่มต้นคือ 1 ควรเพิ่มค่าสำหรับเครือข่ายที่ช้าหรือมีเวลาแฝงสูง