nl :: Dệt :: Hồ sơ :: Thời gian:: TimeSyncNode

Tóm lược

Di sản

Inherits từ: nl :: Weave :: Profiles :: Thời gian :: _ TimeSyncNodeBase

Người xây dựng và Người phá hủy

TimeSyncNode (void)
mBootTimeForNextAutoDiscovery_usec
timesync_t
mIsAutoSyncEnabled
bool
trạng thái được sử dụng cho tính năng tự động đồng bộ hóa.
mIsUrgentDiscoveryPending
bool
mNominalDiscoveryPeriod_msec
int32_t
mShortestDiscoveryPeriod_msec
int32_t
mSyncPeriod_msec
int32_t
mActiveContact
bối cảnh giao tiếp.
mExchangeContext
mUnadjTimestampLastSent_usec
timesync_t
EnterState_Discover (void)
void
các chức năng 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ý chúng.
EnterState_ServiceSync_1 (void)
void
EnterState_ServiceSync_2 (void)
void
EnterState_Sync_1 (void)
void
EnterState_Sync_2 (void)
void

Các loại công khai

ClientState enum
trạng thái hiện tại của ứng dụng đồng bộ hóa thời gian này
CommState enum
tình trạng giao tiếp đến một số liên lạc nhất định.
ContributorFilter )(void *const aApp, Contact aContact[], const int aSize) typedef
void(*
gọi lại xảy ra ngay trước khi chúng tôi tính toán thời gian hiệu chỉnh từ các phản hồi.
OnSyncRequestReceivedHandler )(void *const aApp, const WeaveMessageInfo *aMsgInfo, const uint8_t aLikelyhood, const bool aIsTimeCoordinator) typedef
bool(*
gọi lại để cho biết chúng tôi vừa nhận được yêu cầu đồng bộ thời gian.
ResponseStatus enum
trạng thái của phản hồi được lưu trữ cho một số liên lạc nhất định.
ServerState {
kServerState_UnreliableAfterBoot ,
kServerState_Idle
}
enum
trạng thái hiện tại của Máy chủ Đồng bộ hóa Thời gian này
SyncFailedHandler )(void *const aApp, const WEAVE_ERROR aErrorCode) typedef
void(*
gọi lại xảy ra khi đồng bộ hóa được coi là không thành công, bao gồm cả 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(*
gọi lại xảy ra sau khi đồng bộ hóa được coi là thành công, bao gồm đồng bộ hóa tự động, 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(*
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.

Thuộc tính công cộng

FilterTimeCorrectionContributor
OnSyncFailed
OnSyncRequestReceived
nếu không được đặt, việc triển khai mặc định luôn trả về true
OnSyncSucceeded
nếu không được đặt, hành vi mặc định sẽ lấy tất cả các kết quả, ngoại trừ các chỉnh sửa máy chủ rất nhỏ
OnTimeChangeNotificationReceived
mEncryptionType
uint8_t
phương pháp mã hóa cho giao tiếp cục bộ
mKeyId
uint16_t
id khóa được sử dụng cho 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 được sử dụng để nói chuyện với dịch vụ.
mContacts [WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]
Liên hệ thông tin học suốt khám phá.
mIsAlwaysFresh
bool
mIsInCallback
bool
true nếu chúng ta đang gọi lại lớp cao hơn
mLastLikelihoodSent
int8_t
mNumContributorInLastLocalSync
uint8_t
mRole
TimeSyncRole
Thực tế vai trò của nút này.
mServerState
mServiceContact
mTimestampLastCorrectionFromServerOrNtp_usec
timesync_t
lưu ý rằng nó 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 nó phải là thời gian khởi động vì chúng tôi cần bù cho thời gian ngủ

Chức năng công cộng

Abort (void)
buộc động cơ quay trở lại trạng thái không tải, hủy bỏ bất cứ điều gì nó đang làm.
DisableAutoSync (void)
void
tắt tự động đồng bộ hóa.
EnableAutoSync (const int32_t aSyncPeriod_msec, const int32_t aNominalDiscoveryPeriod_msec, const int32_t aShortestDiscoveryPeriod_msec)
bật tự động đồng bộ hóa.
GetCapacityOfContactList (void) const
int
đơn giản getter cho số lượng liên hệ tối đa mà công cụ này được định cấu hình để lưu trữ
GetClientState (void) const
getter đơn giản cho trạng thái khách hàng
GetNextLikelihood (void) const
int8_t
trích xuất khả năng tồn tại.
GetServerState (void) const
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 tạo ứng dụng khách 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 tạo bộ đ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 là chức năng đầu tiên sau khi xây dựng đối tượng nếu mục đích là Máy chủ Đồng bộ Thời gian.
MulticastTimeChangeNotification (const uint8_t aEncryptionType, const uint16_t aKeyId) const
void
Được gọi bởi lớp cao hơn để thông báo thay đổi thời gian phát đa hướng.
RegisterCorrectionFromServerOrNtp (void)
void
Được gọi bởi lớp cao hơn để cho biết rằng chúng tôi vừa hoàn thành một vòng đồng bộ thời gian 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 gọi bởi lớp cao hơn để cho biết rằng chúng tôi vừa hoàn thành một vòng đồng bộ thời gian với các Điều phối viên địa phương khác.
Shutdown (void)
ngừng dịch vụ, bất kể nó đang ở vai trò nào.
Sync (const bool aForceDiscoverAgain)
đồng bộ hóa bằng cách sử dụng danh bạ hiện có.
SyncWithNodes (const int16_t aNumNode, const ServingNode aNodes[])
đồng bộ hóa bằng cách sử dụng danh sách liên hệ nhất định.
SyncWithService ( WeaveConnection *const aConnection)
đồng bộ hóa bằng cách sử dụng kết nối TCP đã cho và mã hóa và mã khóa liên quan.

Các chức năng được bảo vệ

AbortOnError (const WEAVE_ERROR aCode)
void
hủy bỏ 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 một phiên đồng bộ hóa tự động
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)
gọi lại lớp ứng dụng.
ClearState (void)
void
DestroyCommContext (void)
bool
đóng Weave ExchangeContext
EndLocalSyncAndTryCalculateTimeFix (void)
void
EndServiceSyncAndTryCalculateTimeFix (void)
void
FindReplaceableContact (const uint64_t aNodeId, const IPAddress & aNodeAddr, bool aIsTimeChangeNotification)
trả lại một vị trí để lưu trữ thông tin liên hệ
GetClientStateName (void) const
const char *const
GetNextIdleContact (void)
có được liên hệ hợp lệ và nhàn rỗi tiếp theo để nói chuyện
GetNumNotYetCompletedContacts (void)
int16_t
nhận được số lượng 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 câu trả lời 'đáng tin cậy' được thu thập cho đến nay.
InitState (const TimeSyncRole aRole, void *const aApp, WeaveExchangeManager *const aExchangeMgr)
InvalidateAllContacts (void)
void
vô hiệu hóa tất cả các địa chỉ liên hệ địa phương
InvalidateServiceContact (void)
void
vô hiệu hóa liên hệ với dịch vụ
RegisterCommError ( Contact *const aContact)
void
đăng ký lỗi giao tiếp trên một 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 a Liên hệ có thể là NULL để cho biết chúng tôi không có ai để nói chuyện và do đó chỉ cần rút ngắn khoảng thời gian tự động phát hiện
SendSyncRequest (bool *const rIsMessageSent, Contact *const aContact)
gửi yêu cầu đồng bộ unicast đến một liên hệ.
SetAllCompletedContactsToIdle (void)
int16_t
đặt lại tất cả các liên hệ đã hoàn thành về trạng thái không hoạt động một lần nữa, nhưng không chạm vào phản hồi.
SetAllValidContactsToIdleAndInvalidateResponse (void)
int16_t
đặt tất cả các địa chỉ liên hệ cục bộ hợp lệ thành trạng thái không hoạt động và xóa phản hồi.
SetClientState (const ClientState state)
void
SetupUnicastCommContext ( Contact *const aContact)
tạo Weave Exchange mới để liên lạc unicast
StoreNotifyingContact (const uint64_t aNodeId, const IPAddress & aNodeAddr)
void
lưu trữ thông tin liên hệ của một 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 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 tạo cho vai trò Khách hàng.
_InitServer (const bool aIsAlwaysFresh)
khởi tạo cho vai trò Máy chủ.
_ShutdownClient (void)
dừng ứng dụng khách không có sẵn trong các cuộc gọi lại.
_ShutdownCoordinator (void)
dừng điều phối viên không có sẵn trong các cuộc gọi lại.
_ShutdownServer (void)
dừng máy chủ không khả dụng trong các lệnh gọi lại.

Các chức năng 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
gọi lại từ Weave Exchange khi có yêu cầu đồng bộ hóa 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
gọi lại từ Weave Timer khi chúng tôi vượt qua rào cản không đáng tin cậy sau khi khởi động
IsOperationalState ( ClientState aState)
bool
Xác định xem trạng thái đã cho 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

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

mIsUrgentDiscoveryPending

bool mIsUrgentDiscoveryPending

mNominalDiscoveryPeriod_msec

int32_t mNominalDiscoveryPeriod_msec

mShortestDiscoveryPeriod_msec

int32_t mShortestDiscoveryPeriod_msec

mSyncPeriod_msec

int32_t mSyncPeriod_msec

mActiveContact

Contact * mActiveContact

bối cảnh giao tiếp.

mExchangeContext

ExchangeContext * mExchangeContext

mUnadjTimestampLastSent_usec

timesync_t mUnadjTimestampLastSent_usec

EnterState_Discover

void EnterState_Discover(
  void
)

các chức năng 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ý chúng.

bất kỳ lỗi nào cuối cùng sẽ dẫn đến chuyển đổi trạng thái khác (có thể hết thời gian chờ) nếu ngay cả bộ đếm thời gian không thành công, chúng tôi không có thủ thuật và có thể bị treo ở một số trạng thái sai

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
)

Các loại công khai

ClientState

 ClientState

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

CommState

 CommState

tình trạng giao tiếp đến một số liên lạc nhất định.

Đây là ở nơi công cộng vì Liên là ở nơi công cộng

ContributorFilter

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

gọi lại xảy ra ngay trước khi chúng tôi tính toán thời gian hiệu chỉnh từ các 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 phép tính

Chi tiết
Thông số
[in] aApp
Một con trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aContact
mảng liên hệ và trạng thái phản hồi
[in] aSize
số lượng bản ghi trong mảng aContact

OnSyncRequestReceiveHandler

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

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

Chi tiết
Thông số
[in] aApp
Một 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ề các yêu cầu đồng bộ hóa thời gian nhận được, bao gồm 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 khở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
Lợi nhuận
sai và động cơ sẽ bỏ qua yêu cầu này

Trạng thái đáp ứng

 ResponseStatus

trạng thái của phản hồi được lưu trữ cho một số liên lạc nhất định.

Đây là ở nơi công cộng vì Liên là ở nơi công cộng

ServerState

 ServerState

trạng thái hiện tại của Máy chủ Đồng bộ hóa Thời gian này

Tính chất
kServerState_Idle

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

kServerState_UnreliableAfterBoot

thời gian dành riêng cho máy chủ để đồng bộ thời gian hệ thống của nó 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)

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

lưu ý rằng gọi lại không xảy ra nếu Abort được gọi để dừng đồng bộ hóa

Chi tiết
Thông số
[in] aApp
Một con trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aErrorCode
lý do cho sự thất bại

SyncSucceededHandler

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

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

Lưu ý rằng thành công không có nghĩa là chúng ta có kết quả phù hợp. Trong trường hợp không nhận được phản hồi, 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 phép tính

Chi tiết
Thông số
[in] aApp
Một con trỏ đến dữ liệu lớp ứng dụng, được đặt trong Init.
[in] aOffsetUsec
số tiền điều chỉnh trong usec
[in] aIsReliable
sự điều chỉnh có được coi là đáng tin cậy theo logic tích hợp không
[in] aIsServer
sự sửa chữa có đến từ (các) Máy chủ không
[in] aNumContributor
số lượng nút đã đóng góp vào sự điều chỉnh này. 0 có nghĩa là không có kết quả từ hoạt động đồng bộ hóa.
Lợi nhuận
true nếu độ lệch này sẽ được sử dụng để điều chỉnh thời gian của hệ thống. trong trường hợp aNumContributor là 0, giá trị trả về sẽ bị bỏ qua.

TimeChangeNotificationHandler

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

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.

nếu chế độ đồng bộ hóa tự động được bật, đồng bộ hóa thời gian sẽ được lên lịch ngay sau khi tự động gọi lại này. nếu không, lớp ứng dụng có thể chọn gọi nhóm chức năng Đồng bộ hóa để bắt đầu trực tiếp hoạt động đồng bộ hóa không bị hạn chế bởi quy tắc gọi lại thông thường. 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.

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

Thuộc tính công cộng

FilterTimeCorrectionContributor

ContributorFilter FilterTimeCorrectionContributor

OnSyncFailed

SyncFailedHandler OnSyncFailed

OnSyncRequestRenition

OnSyncRequestReceivedHandler OnSyncRequestReceived

nếu không được đặt, việc triển khai mặc định luôn trả về true

OnSyncSucceeded

SyncSucceededHandler OnSyncSucceeded

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

OnTimeChangeNotificationRenition

TimeChangeNotificationHandler OnTimeChangeNotificationReceived

mEncryptionType

uint8_t mEncryptionType

phương pháp mã hóa cho giao tiếp cục bộ

mKeyId

uint16_t mKeyId

mã khóa được sử dụng cho giao tiếp cục bộ

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

bản đồ

void * mApp

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

mClientState

ClientState mClientState

mConnectionToService

WeaveConnection * mConnectionToService

Kết nối TCP được sử dụng để nói chuyện với dịch vụ.

mContacts

Contact mContacts[WEAVE_CONFIG_TIME_CLIENT_MAX_NUM_CONTACTS]

Liên hệ thông tin học suốt khám phá.

mIsAlwaysFresh

bool mIsAlwaysFresh

mIsInCallback

bool mIsInCallback

true nếu chúng ta đang gọi lại lớp cao hơn

mLastLikelikeSent

int8_t mLastLikelihoodSent

mNumContributorInLastLocalSync

uint8_t mNumContributorInLastLocalSync

mRole

TimeSyncRole mRole

Thực tế vai trò của nút này.

mServerState

ServerState mServerState

mServiceContact

Contact mServiceContact

mTimestampLastCorrectionFromServerOrNtp_usec

timesync_t mTimestampLastCorrectionFromServerOrNtp_usec

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

Chức năng công cộng

Huỷ bỏ

WEAVE_ERROR Abort(
  void
)

buộc động cơ quay trở lại trạng thái không tải, hủy bỏ bất cứ điều gì nó đang làm.

lưu ý rằng không có đồng bộ thành công hoặc thất bại sẽ được gọi. tất cả các Sàn giao dịch Weave sẽ bị đóng. Các kết nối TCP sẽ không được chạm vào nữa. không hoạt động nếu chúng ta đã ở trạng thái nhàn rỗi. không có sẵn trong các cuộc gọi lại.

Chi tiết
Lợi nhuận
WEAVE_NO_ERROR thành công

DisableAutoSync

void DisableAutoSync(
  void
)

tắt tự động đồng bộ hóa.

chỉ khả dụng ở trạng thái nhàn rỗi. không có sẵn trong các cuộc 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ộ hóa.

chỉ có sẵn ở trạng thái nhàn rỗi. khám phá xảy ra ngay lập tức. không có sẵn trong các cuộc gọi lại.

Chi tiết
Thông số
[in] aSyncPeriod_msec
số mili giây giữa quá trình đồng bộ hóa
[in] aNominalDiscoveryPeriod_msec
số msec giữa các lần khám phá, nếu không có lỗi giao tiếp nào được quan sát thấy
[in] aShortestDiscoveryPeriod_msec
thời gian ngắn nhất giữa các lần phát hiện, tính bằng mili giây, nếu lỗi giao tiếp đã được quan sát thấy
Lợi nhuận
WEAVE_NO_ERROR thành công

GetCapacityOfContactList

int GetCapacityOfContactList(
  void
) const 

đơn giản getter 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 

getter đơn giản cho trạng thái khách hàng

GetNextLikelike

int8_t GetNextLikelihood(
  void
) const 

trích xuất khả năng tồn tại.

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

Chi tiết
Lợi nhuận
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 

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 tạo ứng dụng khách này.

không có sẵn trong các cuộc gọi lại

Chi tiết
Thông số
[in] aApp
Một con trỏ đến dữ liệu lớp cao hơn, được sử dụng trong các lệnh gọi lại đến lớp cao hơn.
[in] aExchangeMgr
Một con trỏ đến đố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ã hóa được sử dụng cho các yêu cầu và phản hồi
[in] aKeyId
mã khóa được sử 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á
Lợi nhuận
WEAVE_NO_ERROR 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 tạo bộ điều phối này.

Chi tiết
Thông số
[in] aExchangeMgr
Một con trỏ đến đối tượng Weave Exchange Manager trên toàn hệ thống
[in] aEncryptionType
loại mã hóa được sử dụng cho các yêu cầu và phản hồi
[in] aKeyId
mã khóa được sử dụng cho các yêu cầu và phản hồi
[in] aSyncPeriod_msec
số mili giây giữa quá trình đồng bộ hóa
[in] aNominalDiscoveryPeriod_msec
thời gian ngắn nhất giữa các lần phát hiện, 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ố msec nhỏ nhất giữa các lần phát hiện, nếu lỗi giao tiếp đã được quan sát thấy
Lợi nhuận
WEAVE_NO_ERROR 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 là chức năng đầu tiên sau khi xây dựng đối tượng nếu mục đích là Máy chủ Đồng bộ Thời gian.

không có sẵn trong các cuộc gọi lại

Chi tiết
Thông số
[in] aApp
Một con trỏ đến dữ liệu lớp cao hơn, được sử dụng trong các lệnh gọi lại đến lớp cao hơn.
[in] aExchangeMgr
Một con trỏ đến đố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ộ hóa ngoại trừ thời gian không đáng tin cậy ban đầu. sẽ được đặt thành false cho Điều phối viên.
Lợi nhuận
WEAVE_NO_ERROR thành công

MulticastTimeChangeNotification

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

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

không có sẵn trong các cuộc gọi lại.

Chi tiết
Thông số
[in] aEncryptionType
loại mã hóa được sử dụng cho thông báo này
[in] aKeyId
mã khóa được sử dụng cho thông báo này

RegisterCorrectionFromServerOrNtp

void RegisterCorrectionFromServerOrNtp(
  void
)

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

Chi tiết
Thông số
[in] aNumContributor
số lượng điều phối viên đã đóng góp cho việc đồng bộ hóa lần này

Tắt

WEAVE_ERROR Shutdown(
  void
)

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

Hàm này phải được gọi để lấy lại đúng cách các tài nguyên được cấp phát, 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ó sẵn trong các cuộc gọi lại.

Chi tiết
Lợi nhuận
WEAVE_NO_ERROR thành công

Đồng bộ hóa

WEAVE_ERROR Sync(
  const bool aForceDiscoverAgain
)

đồng bộ hóa bằng cách sử dụng danh bạ hiện có.

hoạt động đồng bộ có thể không thành công nếu không có sẵn liên hệ hợp lệ. đặt aForceDiscoverAgain thành true để buộc khám phá ngay lập tức. chỉ khả dụng ở trạng thái nhàn rỗi. không có sẵn trong các cuộc gọi lại.

Chi tiết
Thông số
[in] aForceDiscoverAgain
đúng nếu tất cả các địa chỉ liên lạc hiện có sẽ được xóa và hoạt động khám phá được thực hiện
Lợi nhuận
WEAVE_NO_ERROR thành công

SyncWithNodes

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

đồng bộ hóa bằng cách sử dụng danh sách liên hệ nhất định.

danh sách liên hệ hiện có sẽ được xóa. chỉ khả dụng ở trạng thái nhàn rỗi. không có sẵn trong các cuộc gọi lại.

Chi tiết
Thông số
[in] aNumNode
số lượng liên hệ trong mảng aNodes
[in] aNodes
mảng hồ sơ liên hệ
Lợi nhuận
WEAVE_NO_ERROR thành công

SyncWithService

WEAVE_ERROR SyncWithService(
  WeaveConnection *const aConnection
)

đồng bộ hóa bằng cách sử dụng kết nối TCP đã cho và mã hóa và mã khóa liên quan.

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

Chi tiết
Thông số
[in] aConnection
Một con trỏ đến kết nối Weave
Lợi nhuận
WEAVE_NO_ERROR thành công

TimeSyncNode

 TimeSyncNode(
  void
)

Các chức năng được bảo vệ

AbortOnError

void AbortOnError(
  const WEAVE_ERROR aCode
)

hủy bỏ 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 một phiên đồng bộ hóa tự động

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
)

gọi lại lớp ứng dụng.

đặt aIsSuccessful thành false để gọi lại lỗi

ClearState

void ClearState(
  void
)

DestroyCommContext

bool DestroyCommContext(
  void
)

đóng Weave ExchangeContext

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 vị trí để lưu trữ thông tin liên hệ

GetClientStateName

const char *const GetClientStateName(
  void
) const 

GetNextIdleContact

Contact * GetNextIdleContact(
  void
)

có được liên hệ hợp lệ và nhàn rỗi tiếp theo để nói chuyện

GetNumNotYetCompletedContacts

int16_t GetNumNotYetCompletedContacts(
  void
)

nhận được số lượng 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 câu trả lời 'đáng tin cậy' được thu thập cho đến nay.

đượ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ả các địa chỉ liên hệ địa phương

InvalidateServiceContact

void InvalidateServiceContact(
  void
)

vô hiệu hóa 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 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 a Liên hệ có thể là NULL để cho biết chúng tôi không có ai để nói chuyện và do đó chỉ cần rút ngắn khoảng thời gian tự động phát hiện

SendSyncRequest

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

gửi yêu cầu đồng bộ unicast đến một liên hệ.

* rIsMessageSent sẽ được đặt để cho biết tin nhắn đã được gửi đi chưa. Các lỗi giao tiếp như địa chỉ không thể truy cập được sẽ không được trả lại, vì vậy người gọi sẽ kiểm tra cả mã trả lại và * rIsMessageSent.

SetAllCompletedContactsToIdle

int16_t SetAllCompletedContactsToIdle(
  void
)

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

điều nà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ả các địa chỉ liên hệ cục bộ hợp lệ thành trạng thái không hoạt động và xóa phản hồi.

cá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 một

SetClientState

void SetClientState(
  const ClientState state
)

SetupUnicastCommContext

WEAVE_ERROR SetupUnicastCommContext(
  Contact *const aContact
)

tạo Weave Exchange mới để liên lạc unicast

StoreNotifyingContact

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

lưu trữ thông tin liên hệ của một 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 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 tạo cho vai trò Khách hàng.

Dự định sẽ được sử dụng nội bộ bởi họ Init các chức năng công cộng. Phải đặt mClientState trước khi trả lại. không có sẵn trong các cuộc gọi lại

Chi tiết
Thông số
[in] aEncryptionType
loại mã hóa được sử dụng cho các yêu cầu và phản hồi
[in] aKeyId
mã khóa được sử 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á
Lợi nhuận
WEAVE_NO_ERROR thành công

_InitServer

WEAVE_ERROR _InitServer(
  const bool aIsAlwaysFresh
)

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

Dự định sẽ được sử dụng nội bộ bởi họ Init các chức năng công cộng. Phải đặt mClientState trước khi trả lại. không có sẵn trong các cuộc gọi lại

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ộ hóa ngoại trừ thời gian không đáng tin cậy ban đầu. sẽ được đặt thành false cho Điều phối viên.
Lợi nhuận
WEAVE_NO_ERROR thành công

_ShutdownClient

WEAVE_ERROR _ShutdownClient(
  void
)

dừng ứng dụng khách không có sẵn trong các cuộc gọi lại.

Chi tiết
Lợi nhuận
WEAVE_NO_ERROR thành công

_ShutdownCoordinator

WEAVE_ERROR _ShutdownCoordinator(
  void
)

dừng điều phối viên không có sẵn trong các cuộc gọi lại.

Chi tiết
Lợi nhuận
WEAVE_NO_ERROR thành công

_ShutdownServer

WEAVE_ERROR _ShutdownServer(
  void
)

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

Chi tiết
Lợi nhuận
WEAVE_NO_ERROR thành công

Các chức năng 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
)

gọi lại từ Weave Exchange khi có yêu cầu đồng bộ hóa 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
)

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

IsOperationalState

bool IsOperationalState(
  ClientState aState
)

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

Phương pháp Tiện lợi để xác định xem ClientState có biểu thị trạng thái hoạt động hay không, tức là máy khách đã hoàn thành khởi tạo và không đang trong quá trình tắt.

Chi tiết
Thông số
[in] aState
trạng thái được đánh giá
Lợi nhuận
true nếu trạng thái rơi vào sau khi quá trình khởi tạo hoàn tất và trước khi quá trình tắt máy bắt đầu, ngược lại là 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
)