6.添加自定义命令

无附件提供不为DA14531 / DA14585 / DA14586平台编写固件的选项,但您可能希望添加自己的命令或修改现有的命令以更好地服务于您的应用程序。本节将展示如何将自己的味道添加到无附件。

在跳入这一点之前,你需要两件事

6.1。实施概述

通过所有必要的理解,我们将看到如何使用创建自定义命令进行。

概述:

  • 我们将实现一个可以作为一个真正原始计算器的命令(仅支持添加两到五个操作数 - 所有整数)
  • 如果参数的数量小于2或超过5,则对命令的响应将是两到五个操作数或错误的总和
  • 我们将允许以十六进制或十进制格式输入操作数。结果将仅在响应中仅为小数
  • 我们会命名我们的新命令AT +添加

新命令的示例:AT + Add = 1,2,3,4(应该返回10)

使用设计规范,我们可以开始实施。

6.2。实施

打开包含无附件SDK的文件夹并转到位置 - > v_6.380.x.x - >项目 - > target_apps - >无附件 - > esceless_5xx - > keil_5,双击Dodeless_585.uvProj以在Keil开发环境中打开项目。

我们将在USE_AT_BAUD命令实现后立即添加我们的命令。简化了实现能够通过仅在两个文件中编写代码来添加自定义命令user_at_commands.h.user_at_commands.c.如下所示。

1. user_at_commands.h.

定义USE_AT_ADD以启用自定义添加。您可以在#define use_at_baud之后包含在所有其他定义结束时的代码。

#define使用_at_baud.//已经是SDK的一部分#define使用_at_add.//习惯

还包括在命令集的该组支持的无附件中。

#ifdef使用_at_baud.//已经是SDK的一部分use_at_baud./ ** <设置或请求当前的PIN码* /#万一#ifdef使用_at_add.AT_ADD./ ** <添加最多5个数字* ///习惯#万一

2. user_at_commands.c.

现在,允许在AT命令中添加我们的自定义AT命令,如下所示。

#ifdef使用_at_baud.{AT_BAUD.“波特”4.user_at_baud.0.1RPLY_MAX_SIZE.},#万一#ifdef使用_at_add.{AT_ADD.“加”3.user_at_add.25.RPLY_MAX_SIZE.},//习惯#万一

在下面的图中描绘了语法的描述。您创建的每个自定义命令都需要遵循此语法。

_images / atparam.png

图39.AT命令的语法

允许在USE_AT_PIN定义之后定义为我们添加的作业的函数。

_images / customadd.png.

图40.在代码中添加自定义添加

#ifdef使用_at_add.空虚user_at_add.塑造at_cmd_params_t.*argchar*Reply_String.{//初始化总和UINT32_T.=0.;对于uint8_t.一世=0.;一世<arg- >arg_count.;一世+++ =ahtoi32arg- >cmd_buffer.[arg- >arg_index.[一世]]);Arch_sprintf.Reply_String.“%d”);arg- >成功_flag.=真正;}#万一

6.3。执行

执行构建的步骤,选择目标和运行代码的步骤这里。我们现在可以构建代码,将其上传到目标,并使用任何终端测试新命令。

_images / testrun.png.

图41.终端中的示例输出