project-chip / connectedhomeip

Matter (formerly Project CHIP) creates more connections between more objects, simplifying development for manufacturers and increasing compatibility for consumers, guided by the Connectivity Standards Alliance.
https://buildwithmatter.com
Apache License 2.0
7.48k stars 2.01k forks source link

[SVE] Use DeviceManager to handle both "request creation" and "request handling" using ReadClients. #34920

Closed yufengwangca closed 3 days ago

yufengwangca commented 3 months ago

Reproduction steps

Currently, PushCommand is triggered from one place, and the result is received in the ReportCommand

The intent is to make "request creation" and "request handling" in the same place: if DeviceManager is handling the event and report data payloads, it should be the one requesting it. We should not have FabricSyncCommand and others do the request and devicemanager doing the handling. That couples the classes.

Refer to the implementation of DeviceSynchronization class

The sequence is:

All of these are local in DeviceSynchronization and do not affect the main loop of the tool https://github.com/project-chip/connectedhomeip/blob/master/examples/fabric-admin/commands/pairing/DeviceSynchronization.cpp#L186 establishes the connect.

https://github.com/project-chip/connectedhomeip/blob/master/examples/fabric-admin/commands/pairing/DeviceSynchronization.cpp#L143 creates the read client and issues the read request

https://github.com/project-chip/connectedhomeip/blob/master/examples/fabric-admin/commands/pairing/DeviceSynchronization.cpp#L69 processes attribute data as it arrives

Bug prevalence

Always

GitHub hash of the SDK that was being used

c4cdbf68836a08ea17b14fad98669341a309aa1f

Platform

other

Platform Version(s)

No response

Type

Test Improvement

Testing

Manually tested with SDK

(Optional) If manually tested please explain why this is only manually tested

No response

Anything else?

No response

github-actions[bot] commented 1 month ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Remove stale label or comment or this will be closed in 30 days.

yufengwangca commented 3 days ago

We have migrated all CLI based command to API based, now, all interactions with the Core Stack is via DeviceManager