Skip to content

3.2 功能定义 ​

功能定义是最重要的一步,这个涉及到APP的展示效果,设备及APP实现的功能,以及后期导出的通信协议。

在配置功能定义前,请自行列举需要的产品功能以及需要实现的具体功能点等细节,以便后续更快、更准确的使用平台配置出需要的功能APP。

具体可参考下面的我们示例表格。我们还是按照筋膜枪的示例来列举下需要的功能,然后,再按照以下列举的功能列表,去平台配置对应的功能。

功能名称功能描述功能点
设备启停启动停止控制启动/停止
连接状态显示蓝牙连接状态显示未连接/已连接/连接中
使用时长显示已经使用的时长1-10分钟
电量电压显示当前电压0.0V-15.0V,默认12.6V
当前转速显示当前转速1-3000转
挡位设置显示和设置挡位1-8挡位
模式设置显示和设置模式腿部/足部/腿部/自由模式
亮屏亮灯或显示屏点亮屏幕五秒

3.2.1 通用功能 ​

针对一些品类,我们会开发一些通用的功能,以减少用户的开发量,在通用功能界面,只需要点开这些功能,即可添加到当前项目中。下面我们演示下筋膜枪品类添加通用功能,进入功能定义流程,在通用功能界面点击“添加通用功能”按钮。

筋膜枪品类我们目前添加了蓝牙连接状态和蓝牙连接图标,我们先将这两个功能打开。我们可以看到这两个都是在状态操作区的功能,保存之后可以打开产品预览查看效果。

功能详情:

**1 蓝牙连接状态:**状态操作区左侧显示“未连接”,在APP使用过过程中,未连接状态下显示“未连接”,连接过程中显示“连接中”,连接成功后显示“已连接”。

**2 蓝牙连接图标:**状态操作区右侧蓝牙图标,在APP使用过过程中,未连接状态下显示“灰色图标”,连接过程中显示“转圈等待”,连接成功后显示“蓝色图标”

/img/3-2-1.png

3.2.2 自定义功能 ​

自定义功能属于开发者自定义的功能,根据产品功能需求,自行添加产品设备功能。

<1>:APP界面划分 ​

介绍自定义功能之前,我们先了解下APP界面的区域划分,下图是我们配置好的筋膜枪示意图,供大家参考。

  1. 名称显示区:显示产品名称,示例定义的<探频1号筋膜枪>。
  2. 图片展示区:展示产品主图,logo图(可不展示)。
  3. 状态操作区:此区域可以做连接状态或者工作状态展示,显示产品主要数据,设备的开关功能等。
  4. 信息展示区:主要显示设备信息,设备的一些参数。
  5. 功能操作区:对设备的功能操作,启停控制等。

/img/8.png

<2>:组件功能效果介绍 ​

目前平台总共支持四种组件效果(后续会增加更多的组件效果),分别如下:其中单一控制组件为单向按键,APP仅下发指令,不接收数据。

/img/3-2-2-22.png

不同组件有不同的功能和用途,以及展示给用户的效果也不一样:

1、二选一组件:主要用于实现控制开关。只有0和1(或者开和关)两种状态的功能。比如:打开按摩功能、打开灯、启动等。最终的效果类似下面截图:

/img/36.jpg

2、多选一组件:主要用于实现不同场景的控制,可自定义不同字段对应的功能场景。一般是针对超过2种状态可能的控制功能。比如:控制按摩模式、控制RGB颜色、控制风扇左右摇头的角度等功能。最终的效果类似下面截图:

/img/37.png

3、滑动选择组件:主要是用于用户快速调节设备从某个值到另外一个值的控制。比如:控制设备挡位调节,控制设备的速度等功能。最终的效果类似下面截图:

/img/35.jpg

4、单一组件:主要用于遥控控制类功能,相当于按键,单一控制组件为单向按键,APP仅下发指令,不接收数据。

/img/38.png

​

<3>:设备上报整数功能实现 ​

我们目前在通用功能栏目,已经实现了蓝牙的连接状态显示,接下来我们先从仅显示的功能做起,我们先做使用时长功能。

进入功能定义流程,在自定义功能界面点击“添加自定义功能”按钮。功能栏最右侧的功能按钮(三个横杠)也可以。

功能名称:我们写<TIME_A>,仅用于开发者自己区别功能的名称,APP不显示。

界面显示区域:我们定义到<信息展示区>。

功能组件效果:默认<设备上报的数据>。

数据类型:我们选择<整数型(int)>,开发者根据自己的功能需求填写。

数据长度:我们需要1个字节来传输数据,这里填写1。开发者根据自己的功能需求填写。

默认数据:我们填写<0>,开发者根据自己的功能需求填写,这个数据是APP未接收到有效数据时展示的数据。

状态显示:设置最大最小以及步长,我们根据需求填写最大值<10>,最小值<0>,步长<1>,开发者根据自己的功能需求填写。

单位:中文<分钟>,英文<Min>,这个需要展示到APP,请按照需求填写。

描述信息:我们中文写<使用时长>,英文写<usetime>,这个是需要展示到APP里面对此功能的描述。

按照项目需求配置完成保存后,我们可以在下方的显示示意图看到效果,如下:

也可以在保存后,产品预览界面查看。

/img/3-2-2-25.png

接下来我们再添加一个自定义功能,功能栏最右侧的功能按钮(三个横杠),做当前转速功能,转速最大3000转/min。

/img/3-2-2-24.png

功能名称:我们写<Current_speed>,仅用于开发者自己区别功能的名称,APP不显示。

界面显示区域:我们定义到<信息展示区>。

功能组件效果:默认<设备上报的数据>。

数据类型:我们选择<整数型 (int)>,开发者根据自己的功能需求填写。

数据长度:我们需要2个字节,开发者根据自己的功能需求填写。

默认数据:我们填写<-->,开发者根据自己的功能需求填写,这个数据是APP未接收到有效数据时展示的数据。

状态显示:设置最大最小以及步长,我们根据需求填写最大值<3000>,最小值<0>,步长<1>,开发者根据自己的功能需求填写。

单位:中文<转/分钟>,英文<speed/min>,这个需要展示到APP,请按照需求填写。

描述信息:我们中文写<当前转速>,英文写<CurrentSpeed>。这个是需要展示到APP里面对此功能的描述。

按照项目需求配置完成保存后,我们可以在下方的显示示意图看到效果,如下:

也可以在保存后,产品预览界面查看。

/img/3-2-2-26.png

<4>:设备上报小数功能实现 ​

接下来我们做电池电压显示,查看功能定义,电池我们定义最大为15V。

进入功能定义流程,在自定义功能界面点击“添加自定义功能”按钮。

功能名称:我们写<Battery_voltage>,仅用于开发者自己区别功能的名称,APP不显示。

界面显示区域:我们定义到<信息展示区>。

功能组件效果:默认<Value (可显示一个关键设备数据)>。

数据类型:我们选择<整数型(int)>,开发者根据自己的功能需求填写。

数据长度:我们填写两个字节,开发者根据自己的功能需求填写。其实一个字节最大255足够用,在这里我们用两个字节演示。

默认数据:我们填写<12.6>,开发者根据自己的功能需求填写,这个数据是APP未接收到有效数据时展示的数据。

状态显示:设置最大最小以及步长,我们根据需求填写最大值<15>,最小值<0>,步长<0.1>,定义小数点后一位,开发者根据自己的功能需求填写。

单位:中文<伏>,英文<V>,这个需要展示到APP,请按照需求填写。

描述信息:我们中文写<电池电压>,英文写<DC Power>。这个是需要展示到APP里面对此功能的描述。

按照项目需求配置完成保存后,我们可以在下方的显示示意图看到效果,如下:

也可以在保存后,产品预览界面查看。

/img/3-2-2-27.png

  • [x] 特别注意(步长非1,请仔细阅读下面说明):

1、界面显示的数据=设备上报的数据*步长。也就是说,如果步长设置为0.1,APP需要显示12.6,那么,设备上报的数据实际应该为126,APP收到数据会自动乘以步长显示。

2、设备收到的数据=APP下发的数据*步长。也就是说,如果步长设置为0.1,设备需要13.5这个数据,那么,APP实际下发的数据为135。设备收到数据后需要自行乘以步长,转化成真实设备需要的数据)。

<5>:滑动选择组件功能实现(滑动条) ​

接下来我们编辑挡位设置和工作模式设置,这两个功能我们编辑到功能操作区。

进入功能定义流程,在自定义功能界面点击“添加自定义功能”按钮,我们先做挡位设置功能,产看产品功能定义,挡位需要做8个等级。

功能名称:我们写<挡位设置>,仅用于开发者自己区别功能的名称,APP不显示。

名称配置:中文写<挡位>,英文写<Geer>。这个是控件的命名,会显示到APP上。

界面显示区域:我们定义到<功能操作区>。

功能组件效果:我们选择<滑动选择组件>,后续将会开放更多的组件效果供选择。

数据类型:我们<整数型(int)>,开发者根据自己的功能需求填写。

数据长度:我们需要一个字节,开发者根据自己的功能需求填写。

默认标签:我们填写<1>,开发者根据自己的功能需求填写,这个数据是APP未接收到有效数据时展示的数据。

状态显示:设置最大最小以及步长,我们根据需求填写最大值<8>,最小值<1>,步长<1>,开发者根据自己的功能需求填写。

单位:中文<档>,英文<Geer>,这个需要展示到APP,这个是需要展示到APP里面对此功能的描述。

按照项目需求配置完成保存后,我们可以在下方的显示示意图看到效果,如下:

也可以在保存后,产品预览界面查看。

/img/3-2-2-28.png

<6>:多选一组件功能实现(枚举类型) ​

接下来我们我们编辑工作模式设置,查看产品定义,定义腿部,足部,臀部,自由模式四个工作模式。我们进入功能定义流程,在自定义功能界面点击“添加自定义功能”按钮。

功能名称:我们写<Mode_setting>,仅用于开发者自己区别功能的名称,APP不显示。

名称配置:中文写<模式>,英文写<Mood>。这个是控件的命名,会显示到APP上。

界面显示区域:我们定义到<功能操作区>。

功能组件效果:我们选择<多选一组件>,目前每个类型仅有一个组件效果,后续将会开放更多的组件效果供选择。

数据类型:我们选择<枚举型(enum)>,开发者根据自己的功能需求填写。

数据长度:我们需要一个字节,开发者根据自己的功能需求填写。

默认标签:我们填写中文<自由模式>,英文<FreeMood>, 图标选择合适的即可,可以在我们的公有素材库找,也可以找美工自己设计。具体开发者根据自己的功能需求填写,这个数据APP未接收到有效数据时展示的数据。我这里选择的是公共素材库面妆图标里面的图标。

状态显示:我们再添加其他的功能模式,点击新增按钮,再添加一谢足部腿部臀部和自由模式,并可以添加相应的图标,开发者根据自己的功能需求填写。

按照项目需求配置完成保存后,我们可以在下方的显示示意图看到效果,如下:

也可以在保存后,产品预览界面查看。

/img/3-2-2-29.png

<7>:二选一组件功能实现(布尔开关) ​

接下来我们做启动停止功能。

功能名称:我们写<switch>,仅用于开发者自己区别功能的名称,APP不显示。

名称配置:中文写<启动>,英文写<Start>。这个是控件的命名,会显示到APP上。

界面显示区域:我们定义到<功能操作区 >。

功能组件效果:我们选择<二选一组件 >,目前每个类型仅有一个组件效果,后续将会开放更多的组件效果供选择。

数据类型:我们选择<布尔型 (boolean)>,开发者根据自己的功能需求填写。

数据长度:我们需要一个字节,开发者根据自己的功能需求填写。

默认标签:我们填写中文<已关闭>,英文<off>, 图标选择合适的即可,可以在我们的公有素材库找,也可以找美工自己设计。具体开发者根据自己的功能需求填写,这个数据APP未接收到有效数据时展示的数据。

状态显示:开启状态下显示中文<已启动 >,英文<open>,开关图标我们选择已开启状态。关闭状态下显示中文<已关闭 >,英文<off>,开关图标我们选择已关闭状态的图标。我这里选择的是公共素材库线状图标里面的开关。

按照项目需求配置完成保存后,我们可以在左侧展示区看到效果图,如下:

至此我们完成了所有的功能实现。

/img/3-2-2-30.png

<8>:单一控制组件功能实现(按键类型) ​

接下来我们做亮屏功能,APP点击一次亮屏按钮,设备根据需求亮屏固定的时间。

功能名称:我们写<screen_on>,仅用于开发者自己区别功能的名称,APP不显示。

名称配置:中文写<启动>,英文写<Start>。这个是控件的命名,会显示到APP上。

界面显示区域:我们定义到<功能操作区 >。

功能组件效果:我们选择<单一控制组件 >,目前每个类型仅有一个组件效果,后续将会开放更多的组件效果供选择。

数据类型:我们选择<单一控制>,开发者根据自己的功能需求填写。

数据长度:我们需要一个字节,开发者根据自己的功能需求填写。

默认数据:<01>,这个不必更改。

默认图标: 图标选择合适的即可,可以在我们的公有素材库找,也可以找美工自己设计。

状态显示:图标选择合适的即可,其中未触发图标指的是APP上未点击时候的图标,触发时图标指的是按中瞬间显示的图标。

/img/3-2-2-31.png

至此我们完成了APP的所有界面和功能开发,点击产品预览,我们可以大体看到我们所设计开发的APP所有功能。

/img/3-2-2-32.png