SDK新增功能介绍

生活物联网平台发布了多个设备端SDK版本,介绍各版本新增的功能以及开启相应功能的方法。

SDK V1.6.6新增功能

说明

请通过git pull更新rel_1.6.6分支到最新版本(1.6.6-21)。

版本

新增功能说明

1.6.6-21

  • SDK部分更新

    • 修复定时服务闰年处理错误,导致定时失败问题。

    • 修复连接未设置密码的路由器时,连接失败问题。

    • 修复路由器断电状态下,反复重连路由器,出现内存泄漏问题。

    • 修复Mqtt反复断网重连(未使能mbedtls),Tcp Shutdown失败,未Close Tcp,导致资源未释放,出现内存资源不足问题。

  • TG7100C芯片(WiFi低功耗)BSP更新

    • 修复设备反复上电,连接路由器(型号H3C WA6320-SI)时,出现后Association failure,一直连接失败问题。

    • 修复工业路由器(型号H3C WA6520)兼容性问题。

    • AliGenieFlashTool 更新到 V1.8.7 版本。

1.6.6-20

  • SDK部分更新

    • 修复偶现定时器卡死。

    • 蓝牙辅助配网偶现Crash。

  • TG7100C芯片(WiFi低功耗)BSP更新

    • 更新WiFi库支持国家无线电管理委员会新SRRC标准。

    • 默认关闭低功耗模式。

    • 烧录工具更新到1.8.5版本。

1.6.6-19

  • SDK部分更新

    • 默认启用静默广播。

    • 默认启用低功耗。

    • _thing/event/notify这个topic改为设备订阅。

    • 新增蓝牙诊断功能。

    • 修复Timer异常,导致串口数据收发延误的问题。

    • MQTT消息支持QOS=2,默认关闭。

  • TG7100C芯片(WiFi低功耗)BSP更新

    • 修复产线配网线程block问题。

    • 修复蓝牙一个内存泄漏问题。

    • 修复低概率Uart Rx数据移位问题。

    • 修复串口DMA被memory写操作影响问题,及低概率的串口数据出错问题。

    • 解决启用低功耗后,稳定性压测断网问题。

    • 烧录工具更新到1.7.4版本:

      1. 添加温补参数相关使用说明。

      2. 增加 DTS 文件的命令发送说明。

      3. 格力自制烧录指令需求。

1.6.6-16

  • SDK部分更新

    • 修复 alios 系统 Timer 问题。

1.6.6-15

  • SDK部分更新

    • 配网失败时,可通过蓝牙离线OTA更新固件。

    • 配网失败新增设备端数据埋点。

    • 支持设备端上定时(DeviceTimer)。

      说明

      自有品牌项目的设备也支持设备端上定时功能,开发实现可参考设备端上定时功能

  • TG7100C芯片(WiFi低功耗)BSP更新

    • WiFi协议栈更新,提升路由器兼容性。

    • 路由器断联重连问题优化。

1.6.6-12

  • SDK部分更新

    • 蓝牙配网失败后,设备重新启动配网广播。

    • 设备连ap超时时长从30秒增加到40秒。

    • 修复pid字串长度大约7,导致蓝牙辅助配网异常问题。

  • TG7100C芯片(WiFi低功耗)BSP更新

    • 烧录工具更新到1.6.7。

    • 支持片内新版flash。

    • 支持us级定时精度。

    • 路由器兼容性优化。

1.6.6-10

  • SDK部分更新

    • SDK同时支持设备热点、蓝牙辅助配网。

    • 新增蓝牙辅助配网设备交互埋点。

    • 蓝牙辅助配网优化。

  • TG7100C芯片(WiFi低功耗)BSP更新

    • 蓝牙连接稳定性提升。

    • Flash读写接口优化。

    • Boot更新。

    • 烧录工具更新到1.6.5(OTA生成工具,libc库要求更新到2.25或以上版本)

  • 删除部分不再维护的Board。

1.6.6-9

  • SDK部分更新

    • NTP 同步优化。

    • 解决LV应用线程释放问题。

    • 解决开启WiFi低功耗,设备OTA过程中AP断电,设备重连AP问题。

  • TG7100C芯片BSP更新

    • 设备支持WPA3安全加密配置。

    • 解决个别路由器兼容性问题。

1.6.6-8

本地定时优化。

  • 定时配置字符串长度加大到1024(原长度限制为768)。

  • 本地定时配置,改为所有数据kv保存。

  • APP get property直接回复kv保存的数据。

  • 本地定时初始化时序调整。

  • 本地定时NTP数据获取优化。

1.6.6-6

  • KV 存储功能优化。

  • 修复SSID包含特殊字符导致配网失败问题。

  • TG7100C芯片BSP更新

    • 支持WiFi低功耗,使用方法如下。设备连云成功后,调用wifi_mgmr_sta_powersaving(2)启用低功耗;设备断网时,调用wifi_mgmr_sta_powersaving(0)退出低功耗。

      #if (defined (TG7100CEVB))
      extern int wifi_mgmr_sta_powersaving(int ps);
      #endif
      static int user_connected_event_handler(void)
      {
          user_example_ctx_t *user_example_ctx = user_example_get_ctx();
      
          LOG_TRACE("Cloud Connected");
      #if (defined (TG7100CEVB))
          wifi_mgmr_sta_powersaving(2);    /* 启用低功耗 */
      #endif
          user_example_ctx->cloud_connected = 1;
      
          ......
      }
      
      static int user_disconnected_event_handler(void)
      {
          user_example_ctx_t *user_example_ctx = user_example_get_ctx();
      
          LOG_TRACE("Cloud Disconnected");
      #if (defined (TG7100CEVB))
          wifi_mgmr_sta_powersaving(0);    /* 退出低功耗 */
      #endif
          set_net_state(CONNECT_CLOUD_FAILED);
          user_example_ctx->cloud_connected = 0;
      
          return 0;
      }
    • 修复弱网环境OTA成功率低问题。

    • 修复断网重连存在的问题。

    • Wi-Fi安全增强。

    • 其他BSP优化。

1.6.6-5

  • 增加基于DeviceTimer属性的本地定时功能,该属性目前可以在天猫精灵生态项目中使用。注意示例应用固件中已经默认打开DeviceTimer,在开发自有品牌项目时,注意仍使用LocalTimer等属性并且需要在mk文件中调整宏定义,按如下配置。

    • 天猫精灵生态项目:使用DeviceTimer属性,宏配置如下:

      GLOBAL_CFLAGS += -DAIOT_DEVICE_TIMER_ENABLE    //新版设备端DeviceTimer支持的宏开关,默认为打开状态
      # GLOBAL_CFLAGS += -DAOS_TIMER_SERVICE         //老版本定时服务的宏,默认为关闭状态
      # GLOBAL_CFLAGS += -DENABLE_COUNTDOWN_LIST     //老版本本地倒计时的宏,默认为关闭状态
      # GLOBAL_CFLAGS += -DENABLE_LOCALTIMER         //老版本本地定时的宏,默认为关闭状态
      # GLOBAL_CFLAGS += -DENABLE_PERIOD_TIMER       //老版本周期定时的宏,默认为关闭状态
      # GLOBAL_CFLAGS += -DENABLE_RANDOM_TIMER       //老版本随机定时的宏,默认为关闭状态
    • 自有品牌项目:关闭DeviceTimer属性,使用LocalTimer等属性,宏配置如下:

      # GLOBAL_CFLAGS += -DAIOT_DEVICE_TIMER_ENABLE  //DeviceTimer支持的宏开关,自有品牌项目关闭
      GLOBAL_CFLAGS += -DAOS_TIMER_SERVICE         //老版本定时服务的宏,自有品牌项目打开
      GLOBAL_CFLAGS += -DENABLE_COUNTDOWN_LIST     //老版本本地倒计时的宏,自有品牌项目打开
      GLOBAL_CFLAGS += -DENABLE_LOCALTIMER         //老版本本地定时的宏,自有品牌项目打开
      GLOBAL_CFLAGS += -DENABLE_PERIOD_TIMER       //老版本周期定时的宏,自有品牌项目打开
      GLOBAL_CFLAGS += -DENABLE_RANDOM_TIMER       //老版本随机定时的宏,自有品牌项目打开

    详细说明请参见设备端上定时功能

  • 网关子设备上线优化

    • 子设备单次上线数量提升到50个。注意当网关下子设备数量超过30时,建议配置FEATURE_ALCS_ENABLEDn,关闭本地通信功能。

    • 可根据内存情况与子设备数量加大SDK缓存队列长度,通过配置CONFIG_MSGCACHE_QUEUE_MAXLEN宏实现。如网关系统内存充足(如Linux系统),缓存队列长度可以配置到160。

    • 可根据单次发包最大数据量加大MQTT收发缓存,通过配置CONFIG_MQTT_RX_MAXLENCONFIG_MQTT_TX_MAXLEN宏实现。如网关系统内存充足(如Linux系统),可配置到16384或更大。

  • TG7100C芯片BSP更新

    • 支持CE认证的自适应测试。

    • 优化ADC采集噪声。

    • 修复PWM channel 4不可用问题。

    • 修复部分场景GPIO中断清除问题。

  • 其他芯片BSP更新

    • 清理不再维护的芯片、board代码。

    • ASR5501改名ASR5502。

1.6.6-4

  • 幻彩灯带标品应用,需单独联系业务申请,联系方式,请参见获取SDK

  • TG7100C芯片BSP更新

    • 增加TG7100C支持设备热点配网。

    • 内存优化:网络协议栈内存占用减少与AliOS的多heap使能。

    • reboot关中断与GPIO中断优化。

  • 问题修复

    • 修复ASR5502本地定时问题。

    • 修复部分平台下编译报错问题。

    • 修复子设备解除订阅问题。

    • 修复设备影子离线Reset问题。

1.6.6

  • 新的蓝牙辅助配网方案,支持天猫精灵App V4.13.0以上版本与云智能App V3.5.5以上版本。

  • 支持多模块OTA。

  • 支持子设备reset,与账号不解除绑定关系。

  • 增加TG7100C芯片支持

    • 支持蓝牙辅助配网、一键配网、零配、设备热点配网。

    • 优化网络协议栈,减少内存消耗。

  • 其他BSP更新

    • BK7231:增加ADC CLOCK支持。

    • RTL8710:增加ADC支持。

    • ASR5502:增加MATH LIB。

  • 功能优化

    • C-SDK透传示例代码优化。

    • 品类配网支持64位长密码。

    • 本地律动优化。

  • 问题修复

    • 修复timer_service特殊条件下出现Null point异常。

    • 修复子设备上线过程中region切换的问题。

    • 修复RTL8710模组示例固件异常。

    • 修复本地定时数据处理问题。

SDK V1.6.2新增功能

  • 网关支持子设备三元组批量申请、异步下发。

  • 网关支持子设备批量上线。

  • 无AliOS Things SDK支持适配FreeRTOS。

    请参见无AliOS Things的SDK适配指南

  • 灯品类支持设备本地拾音、律动,授权开放。

SDK V1.6.0新增功能

  • 支持全球统一激活中心

    编译固件时参数default_region配置为SINGAPORE 或者MAINLAND,设备可全球使用。

  • 设备端重连策略优化

    此功能优化了MQTT断连之后重新连云的策略,默认开启。

  • 蓝牙辅助配网时长优化

    此功能缩短了蓝牙辅助配网与绑定的总时长,默认开启。

  • 蓝牙辅助配网的离线配网和控制

    此功能使得在外网不可靠的条件下仍能完成配网,并且App仍能通过蓝牙控制设备。

  • 设备本地时钟同步服务

    此功能提供了一种设备间时间同步机制,如可用于多个灯组控时的场景同步。

SDK V1.5.0新增功能

  • 本地组控优化

    此功能提升了本地组控时的性能,可以优化灯品类组控、组律动的同步效果,默认开启。

  • 设备证书分发工具

    详情请参见设备证书分发工具使用指导

  • 离线恢复出厂设置

    此功能支持对离线的设备进行恢复出厂设置操作,设备重新上线后能获得离线时的恢复出厂设置操作。

SDK V1.4.0新增功能

  • 网关与子设备支持统一激活中心

    V1.4.0版本对网关参考应用做了重构,支持中国内地之外地区的子设备可以切换数据中心,请参考如下配置使能该功能。

    • 如您基于AliOS版本SDK开发,需要将Products/example/linkkit_gateway/make.settings文件中FEATURE_DM_UNIFIED_SERVICE_POST设置为yDM_UNIFIED_SERVICE_POST

    • 如您基于无AliOS版本SDK开发,可以编辑根目录下面的make.settings文件,增加FEATURE_DM_UNIFIED_SERVICE_POST=y。更多详情请参见网关开发

  • 设备离线日志功能

    对于具备设备热点配网的能力的设备,如果在设备配网绑定的过程中出现失败,App会引导用户进行诊断。进入诊断之后设备会将一些关键日志(例如错误码、上报云端的token、获取IP的时长等)发给App,通过App将这些日志上传到云端,然后可以在飞燕控制台的设备管理页面中进行查看,便于设备的远程运维。

    您如需开启此功能,在应用mk文件中增加配置项GLOBAL_CFLAGS += -DDEV_OFFLINE_LOG_ENABLE(如您基于linkkit_gateway开发,在linkkit_gateway.mk文件中已包含该配置项,如下图所示)。dev_offline_log

    说明

    该功能会占用约4KB的代码空间和将近3 KB的RAM空间,其中占用的RAM空间诊断结束之后会立即释放,不诊断的情况会在上电五分钟之后释放,您可以根据需要决定是否打开该功能。

  • 设备热点配网优化

    此项优化减小了设备通过设备热点配网连接中国内地之外地区站点的时长,默认开启。

  • 蓝牙辅助配网优化

    此项优化减少了设备通过蓝牙辅助配网连接中国内地之外的国家和地区(包括中国香港、中国澳门和中国台湾地区)站点的时长,并在配网进行过程中增加了设备异常自检信息的获取和显示,并能够在移动端App界面看到详细的设备异常信息。蓝牙辅助配网的以上功能在应用示例comboapp中已开启,即comboapp.mk中已开启以下配置项。

    GLOBAL_CFLAGS += -DAWSS_REGION_ENABLE
    GLOBAL_CFLAGS += -DDEV_ERRCODE_ENABLE
    说明

    使用蓝牙辅助配网功能的设备,请参考应用示例comboapp开发。

  • 设备连路由器失败诊断

    此功能默认开启,支持在设备Wi-Fi配网连接路由器失败时,启动自检并分析具体的路由器连接失败原因。失败详情错误码可以通过手机App页面显示。

  • Wi-Fi产线检测工具模块

    • 功能说明:此功能作为独立检测工具模块默认开启,提供给应用层开发时调用,用于搜索指定路由器的详情。

      • 默认搜索时间最长为3秒。

      • 可检测路由器是否能被搜索到。

      • 可检测路由器信号强度是否过弱。

      • 可在搜索到指定路由器时返回结果给应用层。

    • 使用限制

      • 不能在设备热点模式时使用。

      • 不能在设备和路由器处于连接状态时使用。

      • 不能在配网模式下使用。

    • 示例代码:

      关于该工具模块的使用,您可以参考应用示例living_platform中app_entry.c的示例代码的实现。

      #define TEST_LINE_AP                        "ali_product_line_test"
      #define TEST_RSSI_THRESHOLD                 (-60)
      static void handle_apscan_cmd(char *pwbuf, int blen, int argc, char **argv)
      {
          int ret = 0;
          ap_scan_info_t scan_result;
          int ap_scan_result = -1;
          if (argc == 0) {
              // start ap scanning for default 3 seconds
              memset(&scan_result, 0, sizeof(ap_scan_info_t));
              ap_scan_result = awss_apscan_process(NULL, TEST_LINE_AP, &scan_result);
              if ( (ap_scan_result == 0) && (scan_result.found) ) {
                  aos_cli_printf("AP Info: auth(%d) chan(%d) mac(%02X:%02X:%02X:%02X:%02X:%02X) rssi(%d)\r\n", scan_result.auth, 
                                  scan_result.channel, scan_result.mac[0], scan_result.mac[1], scan_result.mac[2],
                                  scan_result.mac[3], scan_result.mac[4], scan_result.mac[5], scan_result.rssi);
                  if (scan_result.rssi < TEST_RSSI_THRESHOLD) {
                      aos_cli_printf("AP_SCAN AP rssi too low\r\n");
                  } else {
                      aos_cli_printf("AP_SCAN AP found\r\n");
                  }
              } else {
                  aos_cli_printf("AP_SCAN AP not found\r\n");
              }
          }
      }

      运行living_platform应用的设备上电之后,输入命令apscan即可触发一次指定路由器的检测。

      • 如果检测到AP热点的RSSI过低,设备端会有日志打印提示:AP_SCAN AP rssi too low

      • 如果检测到AP热点,且RSSI较高,设备端会有日志打印提示:AP_SCAN AP found

      • 如果未检测到AP热点,设备端会有日志打印提示:AP_SCAN AP not found

SDK V1.3.0新增功能

  • 测试批量配网

    如果您是设备厂商,您可以在产线上将设备连到指定的产测路由器,开启此功能时设备在上电3s内自动连接路由器。该功能默认关闭,您如需开启此功能,请按以下步骤操作。

    • 在应用mk文件中增加配置项GLOBAL_CFLAGS += -DMANUFACT_AP_FIND_ENABLE

    • app_entry.c文件中更改产测路由器SSID和密码。

      • 默认SSID为ali_mprov_TEST_AP,其中ali_mprov_是模块自动加入的SSID前缀,TEST_AP是开发者可自定义设定的字段

      • 默认密码为TEST_PASSWORD

      配置示例

      说明

      如果从应用层设定的部分SSID字段,或路由器密码字段为空,该模块功能不会启用。如果设定了正确的SSID和密码,设备在未配网状态下开机时会搜索该路由器,如果搜索到就会连接,搜索不到则会进入正常的待配网状态。

  • 终端用户批量配网

    支持App终端用户对多个同一型号的设备进行快速的批量配网,设备需支持设备热点配网或零配,每次最多可批量配网20个设备。

    您如需开启此功能,需在应用mk文件中增加配置项GLOBAL_CFLAGS += -DAWSS_BATCH_DEVAP_ENABLE(如您基于living_platform开发,在living_platform.mk文件中已包含该配置项,如下图所示)。

    配置示例

  • 设备热点配网错误码诊断

    此功能支持设备通过热点配网连路由器或连云过程中产生的异常,通过App端的“错误诊断”功能展示出来。

    您如需开启此功能,需在应用mk文件中增加配置项GLOBAL_CFLAGS += -DDEV_ERRCODE_ENABLE(如您基于living_platform开发,在living_platform.mk文件中已包含该配置项,如下图所示)。

    配置示例

  • 本地组控/组律动

    此功能提供了灯品类组内设备同步律动能力。

    您如需开启此功能,请按以下步骤操作。

    • 确认本地通信功能已经打开,即make.settings文件中FEATURE_ALCS_ENABLED设置为y,如下图所示。 配置示例

    • 在应用mk文件中增加配置项。如您基于living_platform开发,在living_platform.mk文件中增加以下配置项。

      GLOBAL_CFLAGS += -DALCS_GROUP_COMM_ENABLE
      GLOBAL_CFLAGS += -DDM_UNIFIED_SERVICE_POST
  • 离线OTA

    此功能提供了设备在设备热点下配网或连云失败后通过固件升级进行固件修复的手段,支持普通和安全离线升级。

    您如需开启此功能,需在应用mk文件中增加配置项GLOBAL_CFLAGS += -DDEV_OFFLINE_OTA_ENABLE(如您基于living_platform开发,在living_platform.mk文件中已包含该配置项,如下图所示)。

    配置示例

    您还可以按照以下步骤启用离线OTA安全签名校验。

    1. 在应用mk文件中增加配置项:GLOBAL_CFLAGS += -DDEV_OFFLINE_SECURE_OTA_ENABLE

    2. 获取产品的公钥。在控制台的运营中心 > 设备运维 > 固件升级 > 安全升级页面中, 打开对应产品的安全升级开关,并单击复制安全升级

    3. Living_SDK/framework/uOTA/src/verify/ota_public_key_config.h文件中,将下图的两行数据(红框所示),替换为获取的公钥信息。配置示例

  • Wi-Fi设备零配token优化

    此功能支持在零配过程中,由App端生成绑定用的token并传输给设备,从而解决零配方案在路由器设置AP隔离模式下绑定失败的问题。

    您如需开启此功能,需在应用mk文件中增加配置项GLOBAL_CFLAGS += -DAWSS_ZCONFIG_APPTOKEN(如您基于living_platform开发,在living_platform.mk文件中已包含该配置项,如下图所示)。

    配置示例

SDK V1.1.0新增功能

  • 除中国内地以外地区的设备支持统一激活

    在中国内地之外的地区具有3个数据中心:新加坡、美国和德国。中国内地以外地区的设备激活联网时,将统一连接到新加坡激活中心。在设备绑定时,平台将根据App用户所在区域,自动将设备切换到相应的数据中心。详情请参见基于V1.1.0 SDK编译(linkkitapp)

  • 定时组件

    增加了对倒计时、本地定时、循环计时、以及随机定时的简单产品物模型解析支持。

  • 连云优化

    提升了设备连云的速度。

  • 配网与绑定优化

    • 一键配网组播编码,避免AP隔离导致的无法绑定,提升绑定成功率。

    • 增加蓝牙辅助配网功能。

    • 提供密码加密存储。

    • 绑定解绑感知,绑定解绑成功通知设备。