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à phá huỷ

TimeSyncNode(void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
các trạng thái 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à 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ý.
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 của 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 này diễn ra ngay trước khi chúng ta tính toán thời gian điều chỉnh phản hồi.
OnSyncRequestReceivedHandler)(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
để cho biết chúng tôi vừa nhận được một 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ữ cho 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 diễn ra khi quá trình đồng bộ hoá được cho là không thành công, bao gồm cả quá trình đồng bộ hoá tự động.
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, kể cả khi quá trình đồng bộ hoá tự động diễn ra, nhưng trước khi kết quả được áp dụng.
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 một Thông báo thay đổi thời gian.

Các 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 không được đặt, hành vi mặc định sẽ lấy tất cả kết quả, ngoại trừ những chỉnh sửa rất nhỏ đối với máy chủ
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
phương thức mã hoá liên lạc cục bộ
mKeyId
uint16_t
mã khoá dùng để liên lạc 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ệ được thu thập trong suốt quá trình khám phá.
mIsAlwaysFresh
bool
mIsInCallback
bool
true nếu chúng ta đang gọi lại đến lớ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
lưu ý rằng đó phải là thời gian khởi động vì chúng tôi cần bù cho thời gian ngủ
mTimestampLastLocalSync_usec
timesync_t
lưu ý rằng đó phải là thời gian khởi động vì chúng tôi cần bù cho thời gian ngủ

Hàm công khai

Abort(void)
buộc công cụ quay lại trạng thái rảnh, huỷ mọi việc mà công cụ đ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 máy khách
GetNextLikelihood(void) const
int8_t
trích xuất khả năng cố định.
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)
khởi chạy trình điều phối 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 bạn muốn trở thành 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 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 chúng ta vừa hoàn thành 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 tiện đá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 thành một vòng đồng bộ hoá với các Điều phối viên cục bộ khác.
Shutdown(void)
dừng dịch vụ, bất kể dịch vụ đó đang đóng vai trò nào.
Sync(const bool aForceDiscoverAgain)
đồng bộ hoá bằng danh bạ hiện tại.
SyncWithNodes(const int16_t aNumNode, const ServingNode aNodes[])
đồng bộ hoá bằng danh sách địa chỉ liên hệ đã cho.
SyncWithService(WeaveConnection *const aConnection)
đồng bộ hoá bằng cách sử dụng kết nối TCP đã cho, mã hoá được liên kết và mã khoá.

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

AbortOnError(const WEAVE_ERROR aCode)
void
huỷ nội bộ nếu aCode không phải là WEAVE_NO_ERROR
AutoSyncNow(void)
void
hàm nội bộ để khởi động một 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 ra 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ả lại một khe cắm để lưu thông tin liên hệ
GetClientStateName(void) const
const char *const
GetNextIdleContact(void)
xem người liên hệ hợp lệ và đang rảnh tiếp theo để nói chuyện
GetNumNotYetCompletedContacts(void)
int16_t
biết số liên hệ hợp lệ, nhưng chúng tôi chưa nói chuyện với họ.
GetNumReliableResponses(void)
int16_t
nhận được số lượng "đáng tin cậy" câu trả lời đã thu thập cho đến thời điểm này.
InitState(const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts(void)
void
vô hiệu hóa tất cả địa chỉ liên hệ cục bộ
InvalidateServiceContact(void)
void
vô hiệu hoá người liên hệ với dịch vụ
RegisterCommError(Contact *const aContact)
void
đăng ký lỗi liên lạc trên một số liên hệ nhất định và rút ngắn khoảng thời gian tự động khám phá nếu cần, Contact có thể là NULL để cho biết rằng chúng ta không có ai để trao đổi, do đó chỉ cần rút ngắn khoảng thời gian tự động khám phá
SendSyncRequest(bool *const rIsMessageSent, Contact *const aContact)
gửi yêu cầu đồng bộ hoá unicast đến một địa chỉ liên hệ.
SetAllCompletedContactsToIdle(void)
int16_t
đặt lại tất cả các địa chỉ liên hệ đã hoàn tất về trạng thái rảnh, nhưng đừng chạm vào phản hồi.
SetAllValidContactsToIdleAndInvalidateResponse(void)
int16_t
đặt tất cả các địa chỉ liên hệ hợp lệ trên máy ở 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 quay lại từ một yêu cầu phát đa hướng
UpdateUnicastSyncResponse(const TimeSyncResponse & aResponse)
void
xử lý phản hồi trở lại từ yêu cầu unicast
_InitClient(const uint8_t aEncryptionType, const uint16_t aKeyId, const int8_t aInitialLikelyhood)
khởi tạo cho vai trò Ứng dụng khách.
_InitServer(const bool aIsAlwaysFresh)
khởi tạo cho vai trò Máy chủ.
_ShutdownClient(void)
ngăn ứng dụng không có trong lệnh gọi lại.
_ShutdownCoordinator(void)
dừng trình điều phối không có trong lệnh gọi lại.
_ShutdownServer(void)
ngăn 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á thời gian
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 rào cản khởi động không đáng tin cậy
IsOperationalState(ClientState aState)
bool
Xác định xem trạng thái cụ thể có đang 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 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à 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ý.

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

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 của 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ệ đang ở chế độ công khai

ContributorFilter

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

lệnh gọi lại này diễn ra ngay trước khi chúng ta tính toán thời gian điều chỉnh 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
Thông số
[in] aApp
Con trỏ trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aContact
mảng thông tin 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)

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

Thông tin chi tiết
Thông số
[in] aApp
Con trỏ trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aMsgInfo
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 trình khởi tạo
[in] aIsTimeCoordinator
true nếu nút ban đầu là Điều phối viên đồng bộ hoá 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ữ cho 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ệ đang ở 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 tiện 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 diễn ra khi quá trình đồng bộ hoá được cho là không thành công, bao gồm cả quá trình đồng bộ hoá tự động.

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

Thông tin chi tiết
Thông số
[in] aApp
Con trỏ trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aErrorCode
lý do không thực hiện được

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, kể cả khi quá trình đồng bộ hoá tự động diễn ra, nhưng trước khi kết quả được áp dụng.

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 quá trình tính toán

Thông tin chi tiết
Thông số
[in] aApp
Con trỏ trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aOffsetUsec
mức điều chỉnh trong usec
[in] aIsReliable
thì hiệu chỉnh được coi là đáng tin cậy theo logic tích hợp
[in] aIsServer
sự chỉnh sửa đến từ(các) máy chủ không
[in] aNumContributor
số lượng nút góp phần vào sự 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 chênh lệch này sẽ đượ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 một Thông báo thay đổi thời gian.

nếu bạn bật chế độ tự động đồng bộ hoá, thì quá trình đồng bộ hoá sẽ tự động được lên lịch ngay sau khi lệnh gọi lại này tự động diễn ra. nếu không, lớp ứng dụng có thể chọn gọi nhóm chức năng Đồ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 thông thường không sẵn dùng trong lệnh gọi lại. 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 gọi lại của lớp trao đổi Weave.

Thông tin chi tiết
Thông số
[in] aApp
Con trỏ trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aNodeId
mã nút yêu cầu
[in] aNodeAddr
địa chỉ nút yêu cầu

Các 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 không được đặt, hành vi mặc định sẽ lấy tất cả kết quả, ngoại trừ những chỉnh sửa rất nhỏ đối với máy chủ

OnTimeChangeNotificationReceived

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

phương thức mã hoá liên lạc cục bộ

mKeyId

uint16_t mKeyId

mã khoá dùng để liên lạc 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ệ được thu thập trong suốt quá trình khám phá.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

true nếu chúng ta đang gọi lại đến lớ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

lưu ý rằng đó phải là thời gian khởi động vì chúng tôi cần bù cho thời gian ngủ

mTimestampLastLocalSync_usec

timesync_t mTimestampLastLocalSync_usec

lưu ý rằng đó phải là thời gian khởi động vì chúng tôi cần bù cho thời gian ngủ

Hàm công khai

Hủy

WEAVE_ERROR Abort(
  void
)

buộc công cụ quay lại trạng thái rảnh, huỷ mọi việc mà công cụ đang thực hiện.

lưu ý rằng sẽ không có lệnh đồng bộ hoá thành công hay thất bại nào. tất cả các sàn giao dịch Weave sẽ đóng cửa. Các kết nối TCP sẽ không được tiếp tục. không có hoạt động nào nếu chúng ta đã ở trạng thái rảnh. 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

DisableAutoSync

void DisableAutoSync(
  void
)

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

chỉ dùng được ở trạng thái rảnh. không có 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ỉ dùng được ở trạng thái rảnh. khám phá xảy ra ngay lập tức. không có trong lệnh gọi lại.

Thông tin chi tiết
Thông 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
[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 phát hiện thấy 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 khách

GetNextLikelihood

int8_t GetNextLikelihood(
  void
) const 

trích xuất khả năng cố định.

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 thì đó là tạm thời và có thể là Khả năng hiện tại chứ không phải là Khả năng tiếp theo được sử dụng.

Thông tin chi tiết
Trả về
khả năng phản hồi sẽ được 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 lệnh gọi lại

Thông tin chi tiết
Thông 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ỏ tới đối tượng Weave Exchange Manager 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 yêu cầu và phản hồi
[in] aKeyId
mã khoá dùng cho các yêu cầu và phản hồi
[in] aInitialLikelyhood
khả năng ban đầu được sử 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
)

khởi chạy trình điều phối này.

Thông tin chi tiết
Thông số
[in] aExchangeMgr
Con trỏ tới đối tượng Weave Exchange Manager trên toàn hệ thống
[in] aEncryptionType
loại mã hoá dùng cho yêu cầu và phản hồi
[in] aKeyId
mã khoá 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
[in] aShortestDiscoveryPeriod_msec
số mili giây nhỏ nhất giữa các lần 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 bạn muốn trở thành Máy chủ đồng bộ hoá thời gian.

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

Thông tin chi tiết
Thông 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ỏ tới đối tượng Weave Exchange Manager 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ừ lần đầu không đáng tin cậy. 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 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
Thông số
[in] aEncryptionType
loại mã hoá dùng cho thông báo này
[in] aKeyId
mã khoá được dùng cho thông báo này

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

Được lớp cao hơn gọi để cho biết chúng ta vừa hoàn thành 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 tiện đá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 thành một vòng đồng bộ hoá với các Điều phối viên cục bộ khác.

Thông tin chi tiết
Thông số
[in] aNumContributor
số lượng điều phối viên đã đóng góp vào quá trình đồng bộ hoá này

Tắt

WEAVE_ERROR Shutdown(
  void
)

dừng dịch vụ, bất kể dịch vụ đó đang đóng vai trò nào.

Hàm này phải được gọi để xác nhận lại đúng cách tài nguyên đã phân bổ, trước khi có thể thực hiện một lệnh gọi khác đến bất kỳ hàm khởi tạo 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 tại.

thao tác đồng bộ hoá có thể không thành công nếu không có danh bạ hợp lệ. đặt aForceExploreAgain thành true (đúng) để buộc khám phá ngay lập tức. chỉ dùng được ở trạng thái rảnh. không có trong lệnh gọi lại.

Thông tin chi tiết
Thông số
[in] aForceDiscoverAgain
true nếu tất cả các địa chỉ liên hệ hiện có sẽ được xoá và thao tác 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 địa chỉ liên hệ đã cho.

danh bạ hiện tại sẽ bị xoá. chỉ dùng được ở trạng thái rảnh. không có trong lệnh gọi lại.

Thông tin chi tiết
Thông số
[in] aNumNode
số lượng đầu mối liên hệ trong các aNode trong mảng
[in] aNodes
mảng hồ sơ 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 cách sử dụng kết nối TCP đã cho, mã hoá được liên kết và mã khoá.

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

Thông tin chi tiết
Thông số
[in] aConnection
Con trỏ 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
)

huỷ nội bộ nếu aCode không phải là WEAVE_NO_ERROR

AutoSyncNow

void AutoSyncNow(
  void
)

hàm nội bộ để khởi động một 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 ra lệnh gọi lại đến lớp ứng dụng.

đặt aIsThành công 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ả lại một khe cắm để lưu thông tin liên hệ

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

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

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

biết số liên hệ hợp lệ, nhưng chúng tôi chưa nói chuyện với họ.

GetNumReliableResponses

int16_t GetNumReliableResponses(
  void
)

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

được gọi để xác định xem chúng tôi đã thu thập đủ số lượng câu trả lờ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ả địa chỉ liên hệ cục bộ

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

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

RegisterCommError

void RegisterCommError(
  Contact *const aContact
)

đăng ký lỗi liên lạc trên một số liên hệ nhất định và rút ngắn khoảng thời gian tự động khám phá nếu cần, Contact có thể là NULL để cho biết rằng chúng ta không có ai để trao đổi, do đó chỉ cần rút ngắn khoảng thời gian tự động khám phá

SendSyncRequest

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

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

*rIsMessageSent sẽ được thiết lập để cho biết tin nhắn đã được gửi đi hay chưa. các lỗi giao tiếp như không liên hệ được với địa chỉ sẽ 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ả các địa chỉ liên hệ đã hoàn tất về trạng thái rảnh, nhưng đừng chạm vào phản hồi.

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

SetAllValidContactsToIdleAndInvalidateResponse

int16_t SetAllValidContactsToIdleAndInvalidateResponse(
  void
)

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

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

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 quay lại từ một yêu cầu phát đa hướng

UpdateUnicastSyncResponse

void UpdateUnicastSyncResponse(
  const TimeSyncResponse & aResponse
)

xử lý phản hồi trở lại từ yêu cầu unicast

_InitClient

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

khởi tạo cho vai trò Ứng dụng khách.

Dành cho nhóm chức năng công khai của Init sử dụng nội bộ. Phải đặt mClientState trước khi trả về. không có trong lệnh gọi lại

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

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

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

Dành cho nhóm chức năng công khai của Init sử dụng nội bộ. Phải đặt mClientState trước khi trả về. không có trong lệnh gọi lại

Thông tin chi tiết
Thông 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ừ lần đầu không đáng tin cậy. sẽ được đặt thành false cho Điều phối viên.
Trả về
WEAVE_NO_ERROR khi thành công

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

ngăn ứng dụng 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

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

dừng trình điều phối 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

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

ngăn 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á thời gian

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 rào cản khởi động không đáng tin cậy

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

Xác định xem trạng thái cụ thể có đang 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
Thông số
[in] aState
trạng thái sẽ được đánh giá
Trả về
true nếu trạng thái rơi vào sau khi quá trình khởi chạy hoàn tất và trước khi quá trình tắt nguồn bắt đầu, nếu không thì sẽ trả về false.

_OnSyncSucceeded

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