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ần đồng bộ hoá.
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 Thông báo thay đổi thời gian.

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

@324 enum

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ỷ thao tác đồ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)
Hãy khởi động ứ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ý để sửa thời gian.
IsRegisteredResultValid(void)
bool
Kiểm tra xem thông tin đã đăng ký cho tính năng chỉnh 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 động, đ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 tế nào diễn ra.

kClientState_Sync_1

Đang hoạt động trong lần đồng bộ hoá đầu tiên.

kClientState_Sync_2

Đang cố gắng đồ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ần đồng bộ hoá.

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

Thông tin chi tiết
Các tham số
[in] aApp
Con trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aErrorCode
WEAVE_NO_ERROR nếu hoạt động đồ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 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ô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.

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

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

@324

 @324

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ỷ thao tác đồng bộ hoá thời gian hiện tại.

Phát hành Liên kết. Huỷ sàn 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.

Thông tin chi tiết
Trả về
trạng thái hiện tại

Bắt đầu

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

Hãy khởi động ứng dụng này.

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

Thông tin chi tiết
Các tham số
[in] aApp
Con trỏ đến dữ liệu lớp cao hơn, được dùng trong lệnh gọi lại đến lớp cao hơn.
[in] aExchangeMgr
Con trỏ tới Trình quản lý Exchange, sẽ được dùng để đăng ký trình xử lý thông báo 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ó hoạt động đồng bộ hoá thời gian đang diễn ra, hoạt động này sẽ bị huỷ hoàn toàn mà không thực hiện lệnh gọi lại. Không có trong lệnh gọi lại OnSyncCompleted, nhưng được phép trong OnTimeChangeNotificationReceived . Khi gặp lỗi, tính năng Huỷ bỏ sẽ được gọi ngầm trước khi trả về từ hàm này.

Thông tin chi tiết
Các tham số
[in] aBinding
Liên kết được sử dụng khi 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 hoạt động đồng bộ hoá
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ý để sửa thời gian.

IsRegisteredResultValid

bool IsRegisteredResultValid(
  void
)

Kiểm tra xem thông tin đã đăng ký cho tính năng chỉnh 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
)

_cancelWithCallback

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
)