Skip to content

Commit 18a76aa

Browse files
committed
Merge branch 'feat/cli_add_power_desc' into 'main'
cli: enable node power desc configuration See merge request espressif/esp-zigbee-sdk!193
2 parents 4bec645 + e64b620 commit 18a76aa

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

components/esp-zigbee-console/README.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ For specific type of argument, correct format should be provided so that it can
4545
- [`aps`](#aps): Zigbee Application Support management.
4646
- [`bdb_comm`](#bdb_comm): Perform BDB Commissioning.
4747
- [`channel`](#channel): Get/Set 802.15.4 channels for network
48+
- [`descriptors`](#descriptors): Device descriptors configuration.
4849
- [`dm`](#dm): Zigbee Cluster Library data model management.
4950
- [`factoryreset`](#factoryreset): Reset the device to factory new.
5051
- [`ic`](#ic): Install code configuration.
@@ -234,6 +235,24 @@ esp> channel -m 0x06ef0000
234235
```
235236
236237
238+
### descriptors
239+
Device descriptors configuration.
240+
241+
#### `descriptors power [<u16:DESC>]`
242+
Get/Set node power descriptor
243+
244+
Set the node power descriptor
245+
```bash
246+
esp> descriptors power 0x1234
247+
```
248+
249+
Request the node power descriptor from a remote device
250+
```bash
251+
esp> zdo request power_desc -d 0x0000
252+
I (110059) : 0x4081ddcc 34 12 |.!|
253+
```
254+
255+
237256
### dm
238257
Zigbee Cluster Library data model management.
239258

components/esp-zigbee-console/src/cli_cmd_zdo.c

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -552,6 +552,38 @@ static esp_err_t cli_zdo_bind(esp_zb_cli_cmd_t *self, int argc, char **argv)
552552
return ret;
553553
}
554554

555+
static esp_err_t cli_power_desc(esp_zb_cli_cmd_t *self, int argc, char **argv)
556+
{
557+
struct {
558+
arg_u16_t *power_desc;
559+
arg_lit_t *help;
560+
arg_end_t *end;
561+
} argtable = {
562+
.power_desc = arg_u16n(NULL, NULL, "<u16:DESC>", 0, 1, "Power descriptor of the device"),
563+
.help = arg_lit0(NULL, "help", "Print this help message"),
564+
.end = arg_end(2),
565+
};
566+
567+
esp_err_t ret = ESP_OK;
568+
569+
/* Parse command line arguments */
570+
int nerrors = arg_parse(argc, argv, (void**)&argtable);
571+
EXIT_ON_FALSE(argtable.help->count == 0, ESP_OK, arg_print_help((void**)&argtable, argv[0]));
572+
EXIT_ON_FALSE(nerrors == 0, ESP_ERR_INVALID_ARG, arg_print_errors(stdout, argtable.end, argv[0]));
573+
574+
575+
if (argtable.power_desc->count > 0) {
576+
esp_zb_af_node_power_desc_t power_desc;
577+
memcpy(&power_desc, &argtable.power_desc->val[0], sizeof(power_desc));
578+
esp_zb_set_node_power_descriptor(power_desc);
579+
} else {
580+
EXIT_ON_ERROR(ESP_ERR_NOT_SUPPORTED, cli_output_line("Get value is not supported."));
581+
}
582+
583+
exit:
584+
return ret;
585+
}
586+
555587
DECLARE_ESP_ZB_CLI_CMD_WITH_SUB(zdo, "Zigbee Device Object management",
556588
ESP_ZB_CLI_SUBCMD(request, cli_zdo_request, "Request information from node"),
557589
ESP_ZB_CLI_SUBCMD(annce, cli_zdo_annce, "Announce current node"),
@@ -560,3 +592,7 @@ DECLARE_ESP_ZB_CLI_CMD_WITH_SUB(zdo, "Zigbee Device Object management",
560592
ESP_ZB_CLI_SUBCMD(nwk_open, cli_zdo_nwk_open, "Request the node to open the network"),
561593
ESP_ZB_CLI_SUBCMD(nwk_leave, cli_zdo_nwk_leave, "Request the node to leave the network"),
562594
);
595+
596+
DECLARE_ESP_ZB_CLI_CMD_WITH_SUB(descriptors, "Configure Device descriptors",
597+
ESP_ZB_CLI_SUBCMD(power, cli_power_desc, "Get/Set node power descriptor"),
598+
);

0 commit comments

Comments
 (0)