Time Correction

Tổng quan

Nếu thời gian của thiết bị không được định cấu hình hoặc hiển thị lệch thời gian, nnoway cung cấp phương thức cho phép thiết bị đồng bộ hóa thời gian với server để có được thời gian mới nhất.

Đối với các thiết bị không nhạy cảm với thời gian, chúng có thể sử dụng trực tiếp timestamp của server.

Đối với các thiết bị nhạy cảm với thời gian yêu cầu hiệu chỉnh thời gian có độ chính xác cao, cần xem xét chi phí đường truyền. Giả sử dấu thời gian của server là t3 và sau 10 ms, thiết bị sẽ nhận được dấu thời gian. Do đó, t3 + 10 ms phải là thời gian chính xác được đồng bộ hóa với thiết bị.

Giả sử chi phí yêu cầu bằng chi phí phản hồi và chi phí phản hồi bằng một nửa tổng chi phí đường truyền, như minh họa trong hình dưới đây.

  • t4 − t1 = Tổng thời gian chi phí

  • t3 − t2 = Thời gian chi phí của server

  • Thời gian chi phí của đường truyề = Tổng thời gian chi phí − Thời gian chi phí của server

  • Thời gian phản hồi = Thời gian chi phí của đường truyền ÷ 2 = (Tổng thời gian chi phí −Thời gian chi phí của server) ÷ 2 = (t4 − t1 − (t3 − t2)) ÷ 2 = (t4 − t1 − t3 + t2) ÷ 2

  • Thời gian chính xác = t3 + Thời gian phản hồi = t3 + (t4 − t1 − t3 + t2) ÷ 2 = (t4 − t1 + t3 + t2) ÷ 2

Khi thiết bị gửi yêu cầu đồng bộ thời gian tới server sẽ kèm thời gian gửi (t1). Server sẽ gửi lại t1, t2, t3. Sau đó thiết bị có thể tính toán thời gian chính xác.

Thiết bị

Để thực hiện đồng bộ thời gian, thiết bị sẽ gửi yêu cầu lên server:

Topic: time

Ví dụ:

{
  "time":1715573004000
}

Sau đó sever sẽ gửi bản tin phản hồi về topic time/response. Trong đó:

  • dst (device send time) - t1

  • srt (server receive time) - t2

  • sst (server send time) - t3

Ví dụ:

{
  "dst": 1715573004000,
  "srt": 1715573066273,
  "sst": 1715573066295
}

Last updated