nl::Weave::Profiles::Time::TimeSyncNode

Tóm tắt

Tính kế thừa

Kế thừa từ: nl::Weave::Profiles::Time::_TimeSyncNodeBase

Hàm khởi tạo và hàm phá

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
các trạng thái được sử dụng cho tính năng tự động đồng bộ hoá.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
ngữ cảnh giao tiếp.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover(void)
void
các hàm chuyển đổi trạng thái này là hàm nội bộ và không thể trả về mã lỗi vì trạng thái trước đó sẽ không có cách nào để xử lý chúng.
EnterState_ServiceSync_1(void)
void
EnterState_ServiceSync_2(void)
void
EnterState_Sync_1(void)
void
EnterState_Sync_2(void)
void

Loại công khai

ClientState enum
trạng thái hiện tại của Ứng dụng đồng bộ hoá thời gian này
CommState enum
trạng thái giao tiếp với một người liên hệ nhất định.
ContributorFilter)(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
lệnh gọi lại xảy ra ngay trước khi chúng tôi tính toán sửa đổi thời gian từ phản hồi.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
lệnh gọi lại để cho biết chúng tôi vừa nhận được yêu cầu đồng bộ hoá thời gian.
ResponseStatus enum
trạng thái của nội dung trả lời đã lưu trữ đối với một người liên hệ nhất định.
ServerState{
  kServerState_UnreliableAfterBoot,
  kServerState_Idle
}
enum
trạng thái hiện tại của Máy chủ đồng bộ hoá thời gian này
SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
Lệnh gọi lại xảy ra khi quá trình đồng bộ hóa được coi là không thành công, bao gồm cả quá trình tự động đồng bộ hóa.
SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor) typedef
bool(*
Lệnh gọi lại xảy ra sau khi quá trình đồng bộ hoá được coi là thành công (bao gồm cả quá trình tự động đồng bộ hoá), nhưng trước khi áp dụng kết quả.
TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr) typedef
void(*
để cho biết chúng tôi vừa nhận được Thông báo thay đổi thời gian.

Thuộc tính công khai

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
nếu không được đặt, phương thức triển khai mặc định sẽ luôn trả về giá trị true
OnSyncSucceeded
nếu bạn không đặt chính sách này, thì hành vi mặc định sẽ lấy tất cả kết quả, ngoại trừ những lần chỉnh sửa rất nhỏ trên máy chủ
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
phương thức mã hoá để giao tiếp cục bộ
mKeyId
uint16_t
mã khoá được dùng để giao tiếp cục bộ

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

mApp
void *
con trỏ đến dữ liệu lớp cao hơn
mClientState
mConnectionToService
Kết nối TCP dùng để giao tiếp với dịch vụ.
mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Thông tin liên hệ tìm hiểu được trong quá trình khám phá.
mIsAlwaysFresh
bool
mIsInCallback
bool
true nếu chúng ta thực hiện lệnh gọi lại đến phân cấp cao hơn
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Vai trò thực tế của nút này.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
xin lưu ý rằng đó phải là thời gian khởi động vì chúng ta cần được trả thù lao cho thời gian ngủ
mTimestampLastLocalSync_usec
timesync_t
xin lưu ý rằng đó phải là thời gian khởi động vì chúng ta cần được trả thù lao cho thời gian ngủ

Hàm công khai

Abort(void)
buộc công cụ trở về trạng thái rảnh, huỷ mọi hoạt động mà nó đang thực hiện.
DisableAutoSync(void)
void
tắt tính năng tự động đồng bộ hoá.
EnableAutoSync(const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
bật tự động đồng bộ hoá.
GetCapacityOfContactList(void) const
int
phương thức getter đơn giản cho số lượng địa chỉ liên hệ tối đa mà công cụ này được định cấu hình để lưu trữ
GetClientState(void) const
phương thức getter đơn giản cho trạng thái ứng dụng
GetNextLikelihood(void) const
int8_t
trích xuất khả năng thành liên tục.
GetServerState(void) const
phương thức getter đơn giản cho trạng thái máy chủ
InitClient(void *const aApp, WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
khởi chạy ứng dụng này.
InitCoordinator(nl::Weave::WeaveExchangeManager *aExchangeMgr, const uint8_t aEncryptionType, const uint16_t aKeyId, const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
hãy khởi chạy điều phối viên này.
InitServer(void *const aApp, WeaveExchangeManager *const aExchangeMgr, const bool aIsAlwaysFresh)
khởi tạo cho vai trò Máy chủ phải được gọi dưới dạng hàm đầu tiên sau khi tạo đối tượng nếu ý định là Máy chủ đồng bộ hoá thời gian.
MulticastTimeChangeNotification(const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Được lớp cao hơn gọi đến thông báo thay đổi thời gian phát đa hướng.
RegisterCorrectionFromServerOrNtp(void)
void
Được lớp cao hơn gọi để cho biết rằng chúng ta vừa hoàn tất một vòng đồng bộ hoá với bất kỳ Máy chủ nào hoặc thông qua một số phương thức đáng tin cậy như NTP.
RegisterLocalSyncOperation(const uint8_t aNumContributor)
void
Được lớp cao hơn gọi để cho biết rằng chúng ta vừa hoàn tất một vòng đồng bộ hoá với các Điều phối viên khác tại địa phương.
Shutdown(void)
ngừng dịch vụ, bất kể vai trò đó là gì.
Sync(const bool aForceDiscoverAgain)
đồng bộ hoá bằng danh bạ hiện có.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
đồng bộ hoá bằng danh sách liên hệ đã cho.
SyncWithService(WeaveConnection *const aConnection)
đồng bộ hoá bằng kết nối TCP đã cho và mã hoá cũng như mã khoá được liên kết.

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

AbortOnError(const WEAVE_ERROR aCode)
void
hủy nội bộ nếu aCode không phải là WEAVE_NO_ERROR
AutoSyncNow(void)
void
chức năng nội bộ để bắt đầu phiên tự động đồng bộ hoá
CallbackForSyncCompletion(const bool aIsSuccessful, bool aShouldUpdate, const bool aIsCorrectionReliable, const bool aIsFromServer, const uint8_t aNumContributor, const timesync_t aSystemTimestamp_usec, const timesync_t aDiffTime_usec)
tạo lệnh gọi lại đến lớp ứng dụng.
ClearState(void)
void
DestroyCommContext(void)
bool
đóng ExchangeContext của Weave
EndLocalSyncAndTryCalculateTimeFix(void)
void
EndServiceSyncAndTryCalculateTimeFix(void)
void
FindReplaceableContact(const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
trả về một vị trí để lưu trữ thông tin liên hệ
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
lấy người liên hệ tiếp theo đang rảnh và hợp lệ để trò chuyện
GetNumNotYetCompletedContacts(void)
int16_t
tìm số liên hệ hợp lệ, nhưng chúng tôi chưa trao đổi với họ.
GetNumReliableResponses(void)
int16_t
số lượng câu trả lời "đáng tin cậy" thu thập được cho đến thời điểm hiện tại.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
vô hiệu hóa tất cả người liên hệ tại địa phương
InvalidateServiceContact(void)
void
vô hiệu hóa người liên hệ với dịch vụ
RegisterCommError(Contact *const aContact)
void
đăng ký lỗi giao tiếp trên một số liên hệ nhất định và rút ngắn khoảng thời gian tự động phát hiện nếu cần
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
gửi yêu cầu đồng bộ hoá unicast cho một địa chỉ liên hệ.
SetAllCompletedContactsToIdle(void)
int16_t
đặt lại tất cả địa chỉ liên hệ đã hoàn tất về trạng thái rảnh, nhưng không chạm vào phản hồi.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
đặt tất cả địa chỉ liên hệ trên máy hợp lệ sang trạng thái rảnh và xoá phản hồi.
SetClientState(const ClientState state)
void
SetupUnicastCommContext(Contact *const aContact)
tạo Weave Exchange mới để giao tiếp unicast
StoreNotifyingContact(const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
lưu trữ thông tin liên hệ của nút vừa gửi cho chúng tôi thông báo thay đổi thời gian
UpdateMulticastSyncResponse(const uint64_t aNodeId, const IPAddress & aNodeAddr, const TimeSyncResponse & aResponse)
void
xử lý phản hồi đến từ một yêu cầu phát đa hướng
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
xử lý phản hồi từ một yêu cầu unicast
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
khởi chạy cho vai trò Khách hàng.
_InitServer(const bool aIsAlwaysFresh)
khởi chạy cho vai trò Máy chủ.
_ShutdownClient(void)
dừng ứng dụng khách không có trong các lệnh gọi lại.
_ShutdownCoordinator(void)
dừng điều phối viên không có trong các lệnh gọi lại.
_ShutdownServer(void)
dừng máy chủ không có trong lệnh gọi lại.

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

HandleAutoDiscoveryTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleAutoSyncTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastResponseTimeout(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
HandleMulticastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleSyncRequest(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
lệnh gọi lại từ Weave Exchange khi có yêu cầu đồng bộ hoá
HandleTimeChangeNotification(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnicastResponseTimeout(ExchangeContext *const ec)
void
HandleUnicastSyncResponse(ExchangeContext *ec, const IPPacketInfo *pktInfo, const WeaveMessageInfo *msgInfo, uint32_t profileId, uint8_t msgType, PacketBuffer *payload)
void
HandleUnreliableAfterBootTimer(System::Layer *aSystemLayer, void *aAppState, System::Error aError)
void
lệnh gọi lại từ Weave Timer khi chúng tôi vượt qua ngưỡng không đáng tin cậy sau rào cản khởi động
IsOperationalState(ClientState aState)
bool
Xác định xem trạng thái xác định có hoạt động hay không.
_OnSyncSucceeded(void *const aApp, const nl::Weave::Profiles::Time::timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)
bool

mBootTimeForNextAutoDiscovery_usec

timesync_t mBootTimeForNextAutoDiscovery_usec

mIsAutoSyncEnabled

bool mIsAutoSyncEnabled

các trạng thái được sử dụng cho tính năng tự động đồng bộ hoá.

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

ngữ cảnh giao tiếp.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

các hàm chuyển đổi trạng thái này là hàm nội bộ và không thể trả về mã lỗi vì trạng thái trước đó sẽ không có cách nào để xử lý chúng.

bất kỳ lỗi nào cũng sẽ dẫn đến quá trình chuyển đổi trạng thái khác (có thể bị hết thời gian chờ) nếu ngay cả bộ tính giờ cũng bị lỗi, chúng ta đã hết lỗi và có thể bị treo ở một số trạng thái không đúng

EnterState_ServiceSync_1

void EnterState_ServiceSync_1(
  void
)

EnterState_ServiceSync_2

void EnterState_ServiceSync_2(
  void
)

EnterState_Sync_1

void EnterState_Sync_1(
  void
)

EnterState_Sync_2

void EnterState_Sync_2(
  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

CommState

 CommState

trạng thái giao tiếp với một người liên hệ nhất định.

Thông tin này hiển thị công khai vì Người liên hệ ở chế độ công khai

ContributorFilter

void(* ContributorFilter)(void *const aApp, Contact aContact[], const int aSize)

lệnh gọi lại xảy ra ngay trước khi chúng tôi tính toán sửa đổi thời gian từ phản hồi.

lớp ứng dụng có thể ghi đè aContact[i].mResponseStatus thành kResponseStatus_Invalid để phản hồi sẽ bị bỏ qua trong quá trình tính toán

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] aContact
danh sách liên hệ và trạng thái phản hồi
[in] aSize
số lượng bản ghi trong mảng aContact

OnSyncRequestReceivedHandler

bool(* OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator)

lệnh gọi lại để cho biết chúng tôi vừa nhận được yêu cầu đồng bộ hoá thời gian.

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] aMsgInfo
Một WeaveMessageInfo chứa thông tin về yêu cầu đồng bộ hoá thời gian nhận được, bao gồm cả thông tin về người gửi.
[in] aLikelyhood
khả năng phản hồi theo yêu cầu của người tạo
[in] aIsTimeCoordinator
true nếu nút gốc là Điều phối viên đồng bộ hóa thời gian
Trả về
false và công cụ sẽ bỏ qua yêu cầu này

ResponseStatus

 ResponseStatus

trạng thái của nội dung trả lời đã lưu trữ đối với một người liên hệ nhất định.

Thông tin này hiển thị công khai vì Người liên hệ ở chế độ công khai

ServerState

 ServerState

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

Thuộc tính
kServerState_Idle

máy chủ đã sẵn sàng phản hồi các yêu cầu bằng chế độ cài đặt bình thường

kServerState_UnreliableAfterBoot

thời gian dành riêng cho máy chủ để đồng bộ hoá thời gian hệ thống thông qua một số phương thức khác chỉ có ý nghĩa nếu aIsAlwaysFresh là true khi Init được gọi

SyncFailedHandler

void(* SyncFailedHandler)(void *const aApp, const WEAVE_ERROR aErrorCode)

Lệnh gọi lại xảy ra khi quá trình đồng bộ hóa được coi là không thành công, bao gồm cả quá trình tự động đồng bộ hóa.

xin lưu ý rằng lệnh gọi lại không xảy ra nếu lệnh Huỷ được gọi để dừng đồng bộ hoá

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
lý do lỗi

SyncSucceededHandler

bool(* SyncSucceededHandler)(void *const aApp, const timesync_t aOffsetUsec, const bool aIsReliable, const bool aIsServer, const uint8_t aNumContributor)

Lệnh gọi lại xảy ra sau khi quá trình đồng bộ hoá được coi là thành công (bao gồm cả quá trình tự động đồng bộ hoá), nhưng trước khi áp dụng kết quả.

Xin lưu ý rằng thành công không có nghĩa là chúng tôi có kết quả phù hợp. Trong trường hợp không nhận được phản hồi nào, aNumContributor sẽ được đặt thành 0. lớp ứng dụng có thể ghi đè aContact[i].mResponseStatus thành kResponseStatus_Invalid để phản hồi sẽ bị bỏ qua trong tính toán

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] aOffsetUsec
mức chỉnh sửa trong usec
[in] aIsReliable
bản chỉnh sửa có được coi là đáng tin cậy theo logic tích hợp
[in] aIsServer
nội dung chỉnh sửa có đến từ(các) Máy chủ không
[in] aNumContributor
số nút đã đóng góp vào bản chỉnh sửa này. 0 có nghĩa là không có kết quả nào từ hoạt động đồng bộ hoá.
Trả về
true nếu mức bù trừ này được dùng để điều chỉnh thời gian hệ thống. Trong trường hợp aNumContributor là 0, thì giá trị trả về sẽ bị bỏ qua.

TimeChangeNotificationHandler

void(* TimeChangeNotificationHandler)(void *const aApp, const uint64_t aNodeId, const IPAddress &aNodeAddr)

để cho biết chúng tôi vừa nhận được Thông báo thay đổi thời gian.

nếu chế độ tự động đồng bộ hoá được bật, đồng bộ hoá thời gian sẽ tự động được lên lịch ngay sau lệnh gọi lại này. Nếu không, lớp ứng dụng có thể chọn gọi nhóm hàm Đồng bộ hoá để trực tiếp bắt đầu hoạt động đồng bộ hoá không bị hạn chế bởi quy tắc gọi lại thông thường không có sẵn. Tuy nhiên, cần lưu ý rằng lệnh gọi lại đặc biệt này vẫn nằm trên ngăn xếp lệnh gọi lại của lớp trao đổi Weave.

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] aNodeId
đang yêu cầu mã nhận dạng nút
[in] aNodeAddr
đang yêu cầu địa chỉ nút

Thuộc tính công khai

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestReceived

OnSyncRequestReceivedHandler OnSyncRequestReceived

nếu không được đặt, phương thức triển khai mặc định sẽ luôn trả về giá trị true

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

nếu bạn không đặt chính sách này, thì hành vi mặc định sẽ lấy tất cả kết quả, ngoại trừ những lần chỉnh sửa rất nhỏ trên máy chủ

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

phương thức mã hoá để giao tiếp cục bộ

mKeyId

uint16_t mKeyId

mã khoá được dùng để giao tiếp cục bộ

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

mApp

void * mApp

con trỏ đến dữ liệu lớp cao hơn

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Kết nối TCP dùng để giao tiếp với dịch vụ.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Thông tin liên hệ tìm hiểu được trong quá trình khám phá.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

true nếu chúng ta thực hiện lệnh gọi lại đến phân cấp cao hơn

mLastLikelihoodSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Vai trò thực tế của nút này.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

xin lưu ý rằng đó phải là thời gian khởi động vì chúng ta cần được trả thù lao cho thời gian ngủ

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

xin lưu ý rằng đó phải là thời gian khởi động vì chúng ta cần được trả thù lao cho thời gian ngủ

Hàm công khai

Hủy

WEAVE_ERROR Abort(
  void
)

buộc công cụ trở về trạng thái rảnh, huỷ mọi hoạt động mà nó đang thực hiện.

lưu ý không có quá trình đồng bộ hoá thành công hoặc không thành công sẽ được gọi. tất cả Trao đổi Weave sẽ bị đóng. Kết nối TCP sẽ không được chạm thêm. không có hoạt động nào nếu chúng tôi đã ở trạng thái rảnh. không có sẵn trong lệnh gọi lại.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR khi thành công

DisableAutoSync

void DisableAutoSync(
  void
)

tắt tính năng tự động đồng bộ hoá.

chỉ khả dụng ở trạng thái rảnh. không có sẵn trong lệnh gọi lại.

EnableAutoSync

WEAVE_ERROR EnableAutoSync(
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

bật tự động đồng bộ hoá.

chỉ khả dụng ở trạng thái rảnh. khám phá xảy ra ngay lập tức. Không có trong các lệnh gọi lại.

Thông tin chi tiết
Các tham số
[in] aSyncPeriod_msec
số mili giây giữa các lần đồng bộ hoá
[in] aNominalDiscoveryPeriod_msec
số mili giây giữa các lần khám phá, nếu không quan sát thấy lỗi giao tiếp nào
[in] aShortestDiscoveryPeriod_msec
thời gian ngắn nhất giữa các lần khám phá (tính bằng mili giây) nếu có lỗi giao tiếp
Trả về
WEAVE_NO_ERROR khi thành công

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

phương thức getter đơn giản cho số lượng địa chỉ liên hệ tối đa mà công cụ này được định cấu hình để lưu trữ

GetClientState

ClientState GetClientState(
  void
) const 

phương thức getter đơn giản cho trạng thái ứng dụng

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

trích xuất khả năng thành liên tục.

kết quả sẽ chỉ hợp lệ sau khi hoàn tất thao tác đồng bộ hoá, trong các lệnh gọi lại của OnSyncSucceeded và OnSyncFailed. Nếu không, kết quả là tạm thời và có thể là Khả năng hiện tại thay vì khả năng được sử dụng tiếp theo.

Thông tin chi tiết
Trả về
khả năng phản hồi sẽ được sử dụng trong yêu cầu tiếp theo

GetServerState

ServerState GetServerState(
  void
) const 

phương thức getter đơn giản cho trạng thái máy chủ

InitClient

WEAVE_ERROR InitClient(
  void *const aApp,
  WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

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

không có trong các lệnh gọi lại

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ỏ đến đối tượng Trình quản lý Weave Exchange trên toàn hệ thống
[in] aRole
có thể là kTimeSyncRole_Client hoặc kTimeSyncRole_Coordinator
[in] aEncryptionType
loại mã hoá dùng cho các yêu cầu và phản hồi
[in] aKeyId
mã nhận dạng khoá được dùng cho các yêu cầu và phản hồi
[in] aInitialLikelyhood
khả năng ban đầu được dùng cho giai đoạn khám phá
Trả về
WEAVE_NO_ERROR khi thành công

InitCoordinator

WEAVE_ERROR InitCoordinator(
  nl::Weave::WeaveExchangeManager *aExchangeMgr,
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int32_t aSyncPeriod_msec,
  const int32_t aNominalDiscoveryPeriod_msec,
  const int32_t aShortestDiscoveryPeriod_msec
)

hãy khởi chạy điều phối viên này.

Thông tin chi tiết
Các tham số
[in] aExchangeMgr
Con trỏ đến đối tượng Trình quản lý Weave Exchange trên toàn hệ thống
[in] aEncryptionType
loại mã hoá dùng cho các yêu cầu và phản hồi
[in] aKeyId
mã nhận dạng khoá được dùng cho các yêu cầu và phản hồi
[in] aSyncPeriod_msec
số mili giây giữa các lần đồng bộ hoá
[in] aNominalDiscoveryPeriod_msec
thời gian ngắn nhất giữa các lần khám phá (tính bằng mili giây) nếu không quan sát thấy lỗi giao tiếp nào
[in] aShortestDiscoveryPeriod_msec
số mili giây nhỏ nhất giữa thời gian khám phá, nếu quan sát thấy lỗi giao tiếp
Trả về
WEAVE_NO_ERROR khi thành công

InitServer

WEAVE_ERROR InitServer(
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr,
  const bool aIsAlwaysFresh
)

khởi tạo cho vai trò Máy chủ phải được gọi dưới dạng hàm đầu tiên sau khi tạo đối tượng nếu ý định là Máy chủ đồng bộ hoá thời gian.

không có trong các lệnh gọi lại

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ỏ đến đối tượng Trình quản lý Weave Exchange trên toàn hệ thống
[in] aIsAlwaysFresh
có thể được đặt thành true để cho biết máy chủ luôn được đồng bộ hoá ngoại trừ khoảng thời gian không đáng tin cậy ban đầu. sẽ được đặt thành false cho Điều phối viên.
Trả về
WEAVE_NO_ERROR khi thành công

MulticastTimeChangeNotification

void MulticastTimeChangeNotification(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId
) const 

Được lớp cao hơn gọi đến thông báo thay đổi thời gian phát đa hướng.

không có trong lệnh gọi lại.

Thông tin chi tiết
Các tham số
[in] aEncryptionType
loại mã hoá dùng cho thông báo này
[in] aKeyId
mã khoá để dùng cho thông báo này

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Được lớp cao hơn gọi để cho biết rằng chúng ta vừa hoàn tất một vòng đồng bộ hoá với bất kỳ Máy chủ nào hoặc thông qua một số phương thức đáng tin cậy như NTP.

RegisterLocalSyncOperation

void RegisterLocalSyncOperation(
  const uint8_t aNumContributor
)

Được lớp cao hơn gọi để cho biết rằng chúng ta vừa hoàn tất một vòng đồng bộ hoá với các Điều phối viên khác tại địa phương.

Thông tin chi tiết
Các tham số
[in] aNumContributor
số lượng người điều phối đã đóng góp vào quá trình đồng bộ hóa lần này

Tắt

WEAVE_ERROR Shutdown(
  void
)

ngừng dịch vụ, bất kể vai trò đó là gì.

Hàm này phải được gọi để xác nhận lại tài nguyên đã được phân bổ đúng cách trước khi có thể thực hiện một lệnh gọi khác tới bất kỳ hàm init nào không có trong lệnh gọi lại.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR khi thành công

Đồng bộ hoá

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

đồng bộ hoá bằng danh bạ hiện có.

hoạt động đồng bộ hóa có thể không thành công nếu không có địa chỉ liên hệ hợp lệ nào. Hãy đặt aForceExploreA LẠI thành true để buộc khám phá ngay lập tức. chỉ khả dụng ở trạng thái rảnh. không khả dụng trong lệnh gọi lại.

Thông tin chi tiết
Các tham số
[in] aForceDiscoverAgain
true nếu tất cả địa chỉ liên hệ hiện có sẽ được kích hoạt và khám phá được thực hiện
Trả về
WEAVE_NO_ERROR khi thành công

SyncWithNodes

WEAVE_ERROR SyncWithNodes(
  const int16_t aNumNode,
  const ServingNode aNodes[]
)

đồng bộ hoá bằng danh sách liên hệ đã cho.

danh sách liên hệ hiện có sẽ bị xóa. chỉ khả dụng ở trạng thái rảnh. không có sẵn trong lệnh gọi lại.

Thông tin chi tiết
Các tham số
[in] aNumNode
số đầu mối liên hệ trong mảng aNodes
[in] aNodes
mảng thông tin liên hệ
Trả về
WEAVE_NO_ERROR khi thành công

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

đồng bộ hoá bằng kết nối TCP đã cho và mã hoá cũng như mã khoá được liên kết.

người gọi phải nắm quyền sở hữu kết nối TCP sau khi quá trình đồng bộ hoá kết thúc. Không có lệnh gọi lại nào bị ghi đè cho kết nối TCP, vì Weave Exchange mới sẽ được tạo và các lệnh gọi lại được đặt ở trên ngữ cảnh đó chỉ có sẵn ở trạng thái rảnh. Không có sẵn trong lệnh gọi lại.

Thông tin chi tiết
Các tham số
[in] aConnection
Con trỏ đến kết nối Weave
Trả về
WEAVE_NO_ERROR khi thành công

TimeSyncNode

 TimeSyncNode(
  void
)

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

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

hủy nội bộ nếu aCode không phải là WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

chức năng nội bộ để bắt đầu phiên tự động đồng bộ hoá

CallbackForSyncCompletion

WEAVE_ERROR CallbackForSyncCompletion(
  const bool aIsSuccessful,
  bool aShouldUpdate,
  const bool aIsCorrectionReliable,
  const bool aIsFromServer,
  const uint8_t aNumContributor,
  const timesync_t aSystemTimestamp_usec,
  const timesync_t aDiffTime_usec
)

tạo lệnh gọi lại đến lớp ứng dụng.

đặt aIsSuccess thành false để tạo ra lệnh gọi lại lỗi

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

đóng ExchangeContext của Weave

EndLocalSyncAndTryCalculateTimeFix

void EndLocalSyncAndTryCalculateTimeFix(
  void
)

EndServiceSyncAndTryCalculateTimeFix

void EndServiceSyncAndTryCalculateTimeFix(
  void
)

FindReplaceableContact

Contact * FindReplaceableContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  bool aIsTimeChangeNotification
)

trả về một vị trí để lưu trữ thông tin liên hệ

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

lấy người liên hệ tiếp theo đang rảnh và hợp lệ để trò chuyện

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

tìm số liên hệ hợp lệ, nhưng chúng tôi chưa trao đổi với họ.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

số lượng câu trả lời "đáng tin cậy" thu thập được cho đến thời điểm hiện tại.

được gọi để xác định xem chúng tôi đã thu thập đủ số lượng phản hồi hay chưa

InitState

WEAVE_ERROR InitState(
  const TimeSyncRole aRole,
  void *const aApp,
  WeaveExchangeManager *const aExchangeMgr
)

InvalidateAllContacts

void InvalidateAllContacts(
  void
)

vô hiệu hóa tất cả người liên hệ tại địa phương

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

vô hiệu hóa người liên hệ với dịch vụ

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

đăng ký lỗi giao tiếp trên một số liên hệ nhất định và rút ngắn khoảng thời gian tự động phát hiện nếu cần

SendSyncRequest

WEAVE_ERROR SendSyncRequest(
  bool *const rIsMessageSent,
  Contact *const aContact
)

gửi yêu cầu đồng bộ hoá unicast cho một địa chỉ liên hệ.

*rIsMessageSender sẽ được thiết lập để cho biết liệu tin nhắn đã được gửi đi hay chưa. Các lỗi giao tiếp như địa chỉ không thể nhận được không được trả về, vì vậy, phương thức gọi sẽ kiểm tra cả mã trả về và *rIsMessageSender.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

đặt lại tất cả địa chỉ liên hệ đã hoàn tất về trạng thái rảnh, nhưng không chạm vào phản hồi.

đây được gọi là giữa hai vòng giao tiếp đến cùng một nút

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

đặt tất cả địa chỉ liên hệ trên máy hợp lệ sang trạng thái rảnh và xoá phản hồi.

cuộc gọi này được gọi trước khi chúng tôi bắt đầu liên hệ với từng người

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

tạo Weave Exchange mới để giao tiếp unicast

StoreNotifyingContact

void StoreNotifyingContact(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr
)

lưu trữ thông tin liên hệ của nút vừa gửi cho chúng tôi thông báo thay đổi thời gian

UpdateMulticastSyncResponse

void UpdateMulticastSyncResponse(
  const uint64_t aNodeId,
  const IPAddress & aNodeAddr,
  const TimeSyncResponse & aResponse
)

xử lý phản hồi đến từ một yêu cầu phát đa hướng

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

xử lý phản hồi từ một yêu cầu unicast

_InitClient

WEAVE_ERROR _InitClient(
  const uint8_t aEncryptionType,
  const uint16_t aKeyId,
  const int8_t aInitialLikelyhood
)

khởi chạy cho vai trò Khách hàng.

Dùng nội bộ trong nhóm hàm công khai Init. Phải đặt mClientState trước khi trả về. không có sẵn trong lệnh gọi lại

Thông tin chi tiết
Các tham số
[in] aEncryptionType
loại mã hoá dùng cho các yêu cầu và phản hồi
[in] aKeyId
mã nhận dạng khoá được dùng cho các yêu cầu và phản hồi
[in] aInitialLikelyhood
khả năng ban đầu được dùng cho giai đoạn khám phá
Trả về
WEAVE_NO_ERROR khi thành công

_Máy chủ Init

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

khởi chạy cho vai trò Máy chủ.

Dùng nội bộ trong nhóm hàm công khai Init. Phải đặt mClientState trước khi trả về. không có sẵn trong lệnh gọi lại

Thông tin chi tiết
Các tham số
[in] aIsAlwaysFresh
có thể được đặt thành true để cho biết máy chủ luôn được đồng bộ hoá ngoại trừ khoảng thời gian không đáng tin cậy ban đầu. sẽ được đặt thành false cho Điều phối viên.
Trả về
WEAVE_NO_ERROR khi thành công

_Tắt ứng dụng

WEAVE_ERROR _ShutdownClient(
  void
)

dừng ứng dụng khách không có trong các lệnh gọi lại.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR khi thành công

_Điều phối viên tắt máy

WEAVE_ERROR _ShutdownCoordinator(
  void
)

dừng điều phối viên không có trong các lệnh gọi lại.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR khi thành công

_Tắt máy chủ

WEAVE_ERROR _ShutdownServer(
  void
)

dừng máy chủ không có trong lệnh gọi lại.

Thông tin chi tiết
Trả về
WEAVE_NO_ERROR khi thành công

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

HandleAutoDiscoveryTimeout

void HandleAutoDiscoveryTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleAutoSyncTimeout

void HandleAutoSyncTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastResponseTimeout

void HandleMulticastResponseTimeout(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

HandleMulticastSyncResponse

void HandleMulticastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleSyncRequest

void HandleSyncRequest(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

lệnh gọi lại từ Weave Exchange khi có yêu cầu đồng bộ hoá

HandleTimeChangeNotification

void HandleTimeChangeNotification(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnicastResponseTimeout

void HandleUnicastResponseTimeout(
  ExchangeContext *const ec
)

HandleUnicastSyncResponse

void HandleUnicastSyncResponse(
  ExchangeContext *ec,
  const IPPacketInfo *pktInfo,
  const WeaveMessageInfo *msgInfo,
  uint32_t profileId,
  uint8_t msgType,
  PacketBuffer *payload
)

HandleUnreliableAfterBootTimer

void HandleUnreliableAfterBootTimer(
  System::Layer *aSystemLayer,
  void *aAppState,
  System::Error aError
)

lệnh gọi lại từ Weave Timer khi chúng tôi vượt qua ngưỡng không đáng tin cậy sau rào cản khởi động

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Xác định xem trạng thái xác định có hoạt động hay không.

Phương thức thuận tiện để xác định xem ClientState có biểu thị trạng thái hoạt động hay không, tức là ứng dụng đã hoàn tất quá trình khởi chạy và không trong quá trình tắt.

Thông tin chi tiết
Các tham số
[in] aState
trạng thái cần đánh giá
Trả về
Giá trị true (đúng) nếu trạng thái giảm sau khi quá trình khởi chạy hoàn tất và trước khi quá trình tắt bắt đầu, nếu không thì giá trị false (sai).

_Đã đồng bộ hoá thành công

bool _OnSyncSucceeded(
  void *const aApp,
  const nl::Weave::Profiles::Time::timesync_t aOffsetUsec,
  const bool aIsReliable,
  const bool aIsServer,
  const uint8_t aNumContributor
)