All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH BlueZ] tools/mesh-cfgclient: add friend get/set commands
@ 2019-12-10 22:22 Aurelien Jarno
  2019-12-16 22:50 ` Gix, Brian
  0 siblings, 1 reply; 2+ messages in thread
From: Aurelien Jarno @ 2019-12-10 22:22 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: brian.gix, Aurelien Jarno

Add friend-get and friend-set commands as per Mesh Profile 4.3.2.55,
4.3.2.56 and 4.3.2.57.
---
 tools/mesh/cfgcli.c | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/tools/mesh/cfgcli.c b/tools/mesh/cfgcli.c
index ec9fabb3b..9020bb752 100644
--- a/tools/mesh/cfgcli.c
+++ b/tools/mesh/cfgcli.c
@@ -621,6 +621,15 @@ static bool msg_recvd(uint16_t src, uint16_t idx, uint8_t *data,
 				src, mesh_status_str(data[0]));
 
 		break;
+
+	/* Per Mesh Profile 4.3.2.57 */
+	case OP_CONFIG_FRIEND_STATUS:
+		if (len != 1)
+			return true;
+
+		bt_shell_printf("Node %4.4x Friend state 0x%02x\n",
+				src, data[0]);
+		break;
 	}
 
 	return true;
@@ -1310,6 +1319,33 @@ static void cmd_node_reset(int argc, char *argv[])
 	cmd_default(OP_NODE_RESET);
 }
 
+static void cmd_friend_set(int argc, char *argv[])
+{
+	uint16_t n;
+	uint8_t msg[2 + 1];
+	int parm_cnt;
+
+	n = mesh_opcode_set(OP_CONFIG_FRIEND_SET, msg);
+
+	parm_cnt = read_input_parameters(argc, argv);
+	if (parm_cnt != 1) {
+		bt_shell_printf("bad arguments");
+		return bt_shell_noninteractive_quit(EXIT_FAILURE);
+	}
+
+	msg[n++] = parms[0];
+
+	if (!config_send(msg, n, OP_CONFIG_FRIEND_SET))
+		return bt_shell_noninteractive_quit(EXIT_FAILURE);
+
+	return bt_shell_noninteractive_quit(EXIT_SUCCESS);
+}
+
+static void cmd_friend_get(int argc, char *argv[])
+{
+	cmd_default(OP_CONFIG_FRIEND_GET);
+}
+
 static bool tx_setup(model_send_msg_func_t send_func, void *user_data)
 {
 	if (!send_func)
@@ -1390,6 +1426,10 @@ static const struct bt_shell_menu cfg_menu = {
 				"Get subscription"},
 	{"node-reset", NULL, cmd_node_reset,
 				"Reset a node and remove it from network"},
+	{"friend-set", "<friend>", cmd_friend_set,
+				"Set friend state"},
+	{"friend-get", NULL, cmd_friend_get,
+				"Get friend state"},
 	{} },
 };
 
-- 
2.24.0


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH BlueZ] tools/mesh-cfgclient: add friend get/set commands
  2019-12-10 22:22 [PATCH BlueZ] tools/mesh-cfgclient: add friend get/set commands Aurelien Jarno
@ 2019-12-16 22:50 ` Gix, Brian
  0 siblings, 0 replies; 2+ messages in thread
From: Gix, Brian @ 2019-12-16 22:50 UTC (permalink / raw)
  To: aurelien, linux-bluetooth

Applied with minor re-arrange for multiple command adds
Thanks

On Tue, 2019-12-10 at 23:22 +0100, Aurelien Jarno wrote:
> Add friend-get and friend-set commands as per Mesh Profile 4.3.2.55,
> 4.3.2.56 and 4.3.2.57.
> ---
>  tools/mesh/cfgcli.c | 40 ++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 40 insertions(+)
> 
> diff --git a/tools/mesh/cfgcli.c b/tools/mesh/cfgcli.c
> index ec9fabb3b..9020bb752 100644
> --- a/tools/mesh/cfgcli.c
> +++ b/tools/mesh/cfgcli.c
> @@ -621,6 +621,15 @@ static bool msg_recvd(uint16_t src, uint16_t idx, uint8_t *data,
>  				src, mesh_status_str(data[0]));
>  
>  		break;
> +
> +	/* Per Mesh Profile 4.3.2.57 */
> +	case OP_CONFIG_FRIEND_STATUS:
> +		if (len != 1)
> +			return true;
> +
> +		bt_shell_printf("Node %4.4x Friend state 0x%02x\n",
> +				src, data[0]);
> +		break;
>  	}
>  
>  	return true;
> @@ -1310,6 +1319,33 @@ static void cmd_node_reset(int argc, char *argv[])
>  	cmd_default(OP_NODE_RESET);
>  }
>  
> +static void cmd_friend_set(int argc, char *argv[])
> +{
> +	uint16_t n;
> +	uint8_t msg[2 + 1];
> +	int parm_cnt;
> +
> +	n = mesh_opcode_set(OP_CONFIG_FRIEND_SET, msg);
> +
> +	parm_cnt = read_input_parameters(argc, argv);
> +	if (parm_cnt != 1) {
> +		bt_shell_printf("bad arguments");
> +		return bt_shell_noninteractive_quit(EXIT_FAILURE);
> +	}
> +
> +	msg[n++] = parms[0];
> +
> +	if (!config_send(msg, n, OP_CONFIG_FRIEND_SET))
> +		return bt_shell_noninteractive_quit(EXIT_FAILURE);
> +
> +	return bt_shell_noninteractive_quit(EXIT_SUCCESS);
> +}
> +
> +static void cmd_friend_get(int argc, char *argv[])
> +{
> +	cmd_default(OP_CONFIG_FRIEND_GET);
> +}
> +
>  static bool tx_setup(model_send_msg_func_t send_func, void *user_data)
>  {
>  	if (!send_func)
> @@ -1390,6 +1426,10 @@ static const struct bt_shell_menu cfg_menu = {
>  				"Get subscription"},
>  	{"node-reset", NULL, cmd_node_reset,
>  				"Reset a node and remove it from network"},
> +	{"friend-set", "<friend>", cmd_friend_set,
> +				"Set friend state"},
> +	{"friend-get", NULL, cmd_friend_get,
> +				"Get friend state"},
>  	{} },
>  };
>  

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2019-12-16 22:50 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-12-10 22:22 [PATCH BlueZ] tools/mesh-cfgclient: add friend get/set commands Aurelien Jarno
2019-12-16 22:50 ` Gix, Brian

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.