Skip to content

Commit 24d3d88

Browse files
Milind Dumbarejmartinez-silabs
Milind Dumbare
authored andcommitted
Pull request project-chip#483: Cli command to publish Unify Matter Bridge QR Code on MQTT
Merge in WMN_TOOLS/matter from cli_qr to silabs Squashed commit of the following: commit c2ad672b85c3f7e00c4f0b5ba09e3529eee1aabe Author: Milind Dumbare <[email protected]> Date: Tue Jan 10 09:01:19 2023 +0100 Correct the Attribute reading for endpoint 1 and 0 commit 7ef48ec0040712ea4a67450530fb793858279b4f Author: Milind Dumbare <[email protected]> Date: Mon Jan 9 13:52:49 2023 +0100 Cli command to publish Unify Matter Bridge QR Code on MQTT
1 parent 852f1e4 commit 24d3d88

25 files changed

+36623
-34103
lines changed

silabs_examples/unify-matter-bridge/linux/src/matter_bridge_cli.cpp

+13
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@
1919
#include "app/server/Server.h"
2020
#include "group_command_translator.hpp"
2121
#include "matter_node_state_monitor.hpp"
22+
#include "matter_bridge_qrcode_publisher.hpp"
2223
#include <iostream>
2324

2425
using namespace chip;
2526
using namespace unify::matter_bridge;
2627
static matter_node_state_monitor * node_state_monitor = NULL;
2728
static group_translator * group_mapping_instance = NULL;
29+
static QRCodePublisher * qr_code_publisher = NULL;
2830

2931
#define LOG_TAG "matter_bridge_cli"
3032

@@ -43,12 +45,22 @@ static sl_status_t close_commission_cli_func(const handle_args_t & arg)
4345
return SL_STATUS_OK;
4446
}
4547

48+
void set_qr_code_publisher(QRCodePublisher & p)
49+
{
50+
qr_code_publisher = &p;
51+
}
4652
void set_mapping_display_instance(matter_node_state_monitor & n, group_translator & m)
4753
{
4854
node_state_monitor = &n;
4955
group_mapping_instance = &m;
5056
}
5157

58+
static sl_status_t qr_code_publish_cli_func(const handle_args_t & arg)
59+
{
60+
qr_code_publisher->publish();
61+
return SL_STATUS_OK;
62+
}
63+
5264
static sl_status_t epmap_cli_func(const handle_args_t & arg)
5365
{
5466
sl_log_debug(LOG_TAG, "epmap_cli_func");
@@ -73,6 +85,7 @@ command_map_t unify_cli_commands = {
7385
{ "commission", { "Open commissioning window", commission_cli_func } },
7486
{ "closecommission", { "Close the commissioning window", close_commission_cli_func } },
7587
{ "epmap", { "Show endpoint map", epmap_cli_func } },
88+
{ "qr_code_publish", { "Publish Unify Matter Bridge QR code", qr_code_publish_cli_func} },
7689
{ "groups_map", { "Show Matter vs Unify groups map", groups_map_cli_func } },
7790
};
7891

silabs_examples/unify-matter-bridge/linux/src/matter_bridge_cli.hpp

+2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
#include "matter.h"
1616
#include "matter_node_state_monitor.hpp"
1717
#include "sl_status.h"
18+
#include "matter_bridge_qrcode_publisher.hpp"
1819

1920
using namespace unify::matter_bridge;
2021
/**
@@ -30,3 +31,4 @@ sl_status_t matter_bridge_cli_init();
3031
* --> The group_translator instance is for group mapping display
3132
*/
3233
void set_mapping_display_instance(matter_node_state_monitor & n, group_translator & m);
34+
void set_qr_code_publisher(QRCodePublisher & p);

silabs_examples/unify-matter-bridge/linux/src/matter_bridge_main.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,7 @@ int main(int argc, char * argv[])
170170
TemperatureMeasurementAttributeAccess temperature_measurement_attribute_access(node_state_monitor, unify_mqtt_handler);
171171

172172
QRCodePublisher qr_code_publisher(unify_mqtt_handler);
173+
set_qr_code_publisher(qr_code_publisher);
173174

174175
matter_running = true;
175176
auto handle = run_unify();

silabs_examples/unify-matter-bridge/linux/src/matter_bridge_qrcode_publisher.cpp

+8-1
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@
1919
#include "app/server/OnboardingCodesUtil.h"
2020
#include "setup_payload/QRCodeSetupPayloadGenerator.h"
2121
#include "Options.h"
22+
#include "sl_log.h"
23+
24+
constexpr const char * LOG_TAG = "unify_matter_bridge_qr_code_publisher";
25+
2226

2327
namespace unify::matter_bridge {
2428

@@ -28,6 +32,7 @@ QRCodePublisher::QRCodePublisher(UnifyMqtt& unify_mqtt ) : m_unify_mqtt(unify_mq
2832

2933
void QRCodePublisher::device_event(const chip::DeviceLayer::ChipDeviceEvent * event, intptr_t ptr) {
3034

35+
sl_log_debug(LOG_TAG, "device_event:%u", (unsigned int)event->Type);
3136
switch(event->Type) {
3237
case chip::DeviceLayer::DeviceEventType::kDnssdPlatformInitialized:
3338
if(chip::Server::GetInstance().GetCommissioningWindowManager().IsCommissioningWindowOpen()) {
@@ -45,6 +50,7 @@ void QRCodePublisher::device_event(const chip::DeviceLayer::ChipDeviceEvent * ev
4550
}
4651

4752
void QRCodePublisher::publish() {
53+
sl_log_debug(LOG_TAG, "Publishing QR Code");
4854
auto qrCode_str = qrcode();
4955
if(!qrCode_str.empty()) {
5056
m_unify_mqtt.Publish(
@@ -56,6 +62,7 @@ void QRCodePublisher::publish() {
5662
}
5763

5864
void QRCodePublisher::unretain() {
65+
sl_log_debug(LOG_TAG, "Unretaining QR Code");
5966
auto qrCode_str = qrcode();
6067
if(!qrCode_str.empty()) {
6168
m_unify_mqtt.Publish("ucl/SmartStart/CommissionableDevice/"+qrCode_str,"",false);
@@ -72,4 +79,4 @@ std::string QRCodePublisher::qrcode() {
7279
return "";
7380
}
7481
}
75-
}
82+
}

0 commit comments

Comments
 (0)