nl::Weave::Profiles::Time::SingleSourceTimeSyncClient

Tóm tắt

Loại công khai

ClientState{
  kClientState_Idle,
  kClientState_Sync_1,
  kClientState_Sync_2
}
enum
trạng thái hiện tại của Ứng dụng đồng bộ hoá thời gian này
SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime) typedef
void(*
Lệnh gọi lại sau khi đã hoàn tất cả hai lượt đồng bộ hoá về thời gian.
TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC) typedef
void(*
Lệnh gọi lại để cho biết chúng tôi vừa nhận được một Thông báo thay đổi thời gian.

Kiểu được bảo vệ

@324 enum

Các thuộc tính công khai

OnTimeChangeNotificationReceived

Thuộc tính được bảo vệ

mApp
void *
mBinding
mClientState
mExchangeContext
mExchangeMgr
mFlightTime_usec
int32_t
dùng để lưu trữ thời gian bay một chiều.
mIsInCallback
bool
mOnSyncCompleted
mRegisterSyncResult_usec
timesync_t
dùng để lưu trữ Dấu thời gian khi kết quả được đăng ký
mRemoteTimestamp_usec
timesync_t
dùng để lưu trữ thời gian hệ thống của nút từ xa, khi thông báo phản hồi sắp được gửi
mUnadjTimestampLastSent_usec
timesync_t

Hàm công khai

Abort(void)
void
Huỷ hoạt động đồng bộ hoá thời gian hiện tại.
GetClientState(void) const
Truy xuất trạng thái hiện tại của ứng dụng này.
Init(void *const aApp, WeaveExchangeManager *const aExchangeMgr)
Khởi chạy ứng dụng này.
Sync(Binding *const aBinding, SyncCompletionHandler OnSyncCompleted)
Đồng bộ hoá bằng cách sử dụng Binding đã cho và thực hiện lệnh gọi lại bằng con trỏ được cung cấp.

Hàm được bảo vệ

EnterSync2(void)
void
FinalProcessing(void)
void
GetClientStateName(void) const
const char *
InvalidateRegisteredResult(void)
void
Vô hiệu hoá thông tin đã đăng ký để chỉnh sửa thời gian.
IsRegisteredResultValid(void)
bool
Kiểm tra xem thông tin đã đăng ký sửa thời gian có hợp lệ hay không.
OnResponseTimeout(void)
void
OnSyncResponse(uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
ProceedToNextState(void)
void
RegisterSyncResultIfNewOrBetter(const timesync_t aNow_usec, const timesync_t aRemoteTimestamp_usec, const int32_t aFlightTime_usec)
void
SendSyncRequest(void)
SetClientState(const ClientState state)
void
_AbortWithCallback(const WEAVE_ERROR aErrorCode)
void

Hàm tĩnh được bảo vệ

HandleResponseTimeout(ExchangeContext *aEC)
void
HandleSyncResponse(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void
HandleTimeChangeNotification(ExchangeContext *aEC, const IPPacketInfo *aPktInfo, const WeaveMessageInfo *aMsgInfo, uint32_t aProfileId, uint8_t aMsgType, PacketBuffer *aPayload)
void

Loại công khai

ClientState

 ClientState

trạng thái hiện tại của Ứng dụng đồng bộ hoá thời gian này

Thuộc tính
kClientState_Idle

Đã khởi chạy, đang chờ Thông báo thay đổi thời gian, nhưng không có hoạt động đồng bộ hoá thời gian thực nào diễn ra.

kClientState_Sync_1

Đang xử lý lần đồng bộ hoá đầu tiên.

kClientState_Sync_2

Đang xử lý lần đồng bộ hoá lần thứ hai.

SyncCompletionHandler

void(* SyncCompletionHandler)(void *const aApp, const WEAVE_ERROR aErrorCode, const timesync_t aCorrectedSystemTime)

Lệnh gọi lại sau khi đã hoàn tất cả hai lượt đồng bộ hoá về thời gian.

Nếu aErrorCode là WEAVE_NO_ERROR, thì bạn đã thử ít nhất một lần. Nếu không, cả hai đều không thành công tại aErrorCode cho biết lỗi gần đây nhất.

Chi tiết
Tham số
[in] aApp
Con trỏ trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aErrorCode
WEAVE_NO_ERROR nếu đồng bộ hoá thành công ít nhất một lần
[in] aCorrectedSystemTime
Chỉ hợp lệ nếu aErrorCode là WEAVE_NO_ERROR

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, ExchangeContext *aEC)

Lệnh gọi lại để cho biết chúng tôi vừa nhận được một Thông báo thay đổi thời gian.

Đặt thành NULL tại Init. Nếu bạn không đặt chính sách này, thì Thông báo thay đổi thời gian sẽ bị bỏ qua. Lớp ứng dụng được phép gọi tính năng Huỷ bỏ và đồng bộ hoá trong lệnh gọi lại này.

Chi tiết
Tham số
[in] aApp
Con trỏ trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aEC
Ngữ cảnh trao đổi dùng cho thư đến này. Ngữ cảnh này có thể được dùng để xác thực tính xác thực của thư

Kiểu được bảo vệ

@324

 @324

Các thuộc tính công khai

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

Thuộc tính được bảo vệ

mApp

void * mApp

mBinding

Binding * mBinding

mClientState

ClientState mClientState

mExchangeContext

ExchangeContext * mExchangeContext

mExchangeMgr

WeaveExchangeManager * mExchangeMgr

mFlightTime_usec

int32_t mFlightTime_usec

dùng để lưu trữ thời gian bay một chiều.

mIsInCallback

bool mIsInCallback

mOnSyncCompleted

SyncCompletionHandler mOnSyncCompleted

mRegisterSyncResult_usec

timesync_t mRegisterSyncResult_usec

dùng để lưu trữ Dấu thời gian khi kết quả được đăng ký

mRemoteTimestamp_usec

timesync_t mRemoteTimestamp_usec

dùng để lưu trữ thời gian hệ thống của nút từ xa, khi thông báo phản hồi sắp được gửi

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

Hàm công khai

Hủy

void Abort(
  void
)

Huỷ hoạt động đồng bộ hoá thời gian hiện tại.

Liên kết nhả ra. Huỷ giao dịch đang hoạt động. Chuyển về trạng thái rảnh.

GetClientState

ClientState GetClientState(
  void
) const 

Truy xuất trạng thái hiện tại của ứng dụng này.

Chi tiết
Trả về
trạng thái hiện tại

Init

WEAVE_ERROR Init(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

Khởi chạy ứng dụng này.

Phải được gọi trước khi có thể sử dụng các hàm khác. Không/NULL sẽ khởi tạo tất cả dữ liệu nội bộ và đăng ký bằng Thông báo thay đổi thời gian.

Chi tiết
Tham số
[in] aApp
Con trỏ trỏ đến dữ liệu lớp cao hơn, dùng trong lệnh gọi lại đến lớp cao hơn.
[in] aExchangeMgr
Con trỏ trỏ đến Trình quản lý Exchange, sẽ được dùng để đăng ký trình xử lý thông báo của Thông báo thay đổi thời gian
Trả về
WEAVE_NO_ERROR khi thành công

Đồng bộ hoá

WEAVE_ERROR Sync(
  Binding *const aBinding,
  SyncCompletionHandler OnSyncCompleted
)

Đồng bộ hoá bằng cách sử dụng Binding đã cho và thực hiện lệnh gọi lại bằng con trỏ được cung cấp.

Nếu có một thao tác đồng bộ hoá thời gian đang diễn ra, thao tác này sẽ bị huỷ bỏ ngầm mà không thực hiện lệnh gọi lại. Không có sẵn trong lệnh gọi lại OnSyncCompleted, nhưng được phép trong OnTimeChangeNotificationReceived . Nếu xảy ra lỗi, lệnh Cancel (Huỷ) sẽ được gọi ngầm định trước khi quay lại từ hàm này.

Chi tiết
Tham số
[in] aBinding
Liên kết cần dùng để liên hệ với máy chủ thời gian
[in] OnSyncCompleted
Hàm callback được sử dụng sau khi hoàn tất thao tác đồng bộ hoá thời gian
Trả về
WEAVE_NO_ERROR khi thành công

Hàm được bảo vệ

EnterSync2

void EnterSync2(
  void
)

FinalProcessing

void FinalProcessing(
  void
)

GetClientStateName

const char * GetClientStateName(
  void
) const 

InvalidateRegisteredResult

void InvalidateRegisteredResult(
  void
)

Vô hiệu hoá thông tin đã đăng ký để chỉnh sửa thời gian.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Kiểm tra xem thông tin đã đăng ký sửa thời gian có hợp lệ hay không.

OnResponseTimeout

void OnResponseTimeout(
  void
)

OnSyncResponse

void OnSyncResponse(
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

ProceedToNextState

void ProceedToNextState(
  void
)

RegisterSyncResultIfNewOrBetter

void RegisterSyncResultIfNewOrBetter(
  const timesync_t aNow_usec,
  const timesync_t aRemoteTimestamp_usec,
  const int32_t aFlightTime_usec
)

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  void
)

SetClientState

void SetClientState(
  const ClientState state
)

_AbortWithCallback

void _AbortWithCallback(
  const WEAVE_ERROR aErrorCode
)

Hàm tĩnh được bảo vệ

HandleResponseTimeout

void HandleResponseTimeout(
  ExchangeContext *aEC
)

HandleSyncResponse

void HandleSyncResponse(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *aEC,
  const IPPacketInfo *aPktInfo,
  const WeaveMessageInfo *aMsgInfo,
  uint32_t aProfileId,
  uint8_t aMsgType,
  PacketBuffer *aPayload
)