bletiny: Add support to modify privacy mode
Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/commit/10fdd0b6 Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/tree/10fdd0b6 Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/diff/10fdd0b6 Branch: refs/heads/bluetooth5 Commit: 10fdd0b6fdb09d3f08c634c53efaf2982be10e04 Parents: 674af93 Author: Åukasz Rymanowski <[email protected]> Authored: Wed Apr 5 15:45:06 2017 +0200 Committer: Åukasz Rymanowski <[email protected]> Committed: Thu Apr 6 09:46:45 2017 +0200 ---------------------------------------------------------------------- apps/bletiny/src/cmd.c | 46 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-mynewt-core/blob/10fdd0b6/apps/bletiny/src/cmd.c ---------------------------------------------------------------------- diff --git a/apps/bletiny/src/cmd.c b/apps/bletiny/src/cmd.c index 15563a0..19580c7 100644 --- a/apps/bletiny/src/cmd.c +++ b/apps/bletiny/src/cmd.c @@ -2464,6 +2464,46 @@ static struct kv_pair cmd_set_addr_types[] = { }; static void +bletiny_set_priv_mode_help(void) +{ + console_printf("Available set priv_mode params: \n"); + help_cmd_kv_dflt("addr_type", cmd_set_addr_types, BLE_ADDR_PUBLIC); + help_cmd_byte_stream_exact_length("addr", 6); + help_cmd_uint8("mode"); +} + +static int +cmd_set_priv_mode(void) +{ + ble_addr_t addr; + uint8_t priv_mode; + int rc; + + addr.type = parse_arg_kv_default("addr_type", cmd_set_addr_types, + BLE_ADDR_PUBLIC, &rc); + if (rc != 0) { + console_printf("invalid 'addr_type' parameter\n"); + help_cmd_kv_dflt("addr_type", cmd_set_addr_types, BLE_ADDR_PUBLIC); + return rc; + } + + rc = parse_arg_mac("addr", addr.val); + if (rc != 0) { + console_printf("invalid 'addr' parameter\n"); + help_cmd_byte_stream_exact_length("addr", 6); + return rc; + } + + priv_mode = parse_arg_uint8("mode", &rc); + if (rc != 0) { + console_printf("missing mode\n"); + return rc; + } + + return ble_gap_set_priv_mode(&addr, priv_mode); +} + +static void bletiny_set_addr_help(void) { console_printf("Available set addr params: \n"); @@ -2544,6 +2584,7 @@ cmd_set(int argc, char **argv) bletiny_set_adv_data_help(); bletiny_set_sm_data_help(); bletiny_set_addr_help(); + bletiny_set_priv_mode_help(); return 0; } @@ -2557,6 +2598,11 @@ cmd_set(int argc, char **argv) return rc; } + if (argc > 1 && strcmp(argv[1], "priv_mode") == 0) { + rc = cmd_set_priv_mode(); + return rc; + } + good = 0; rc = parse_arg_find_idx("addr");
