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

SDK V1.6.6新增功能

版本 新增功能说明
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模组示例固件异常。
    • 修复本地定时数据处理问题。
1.6.6-4
  • 幻彩灯带标品应用,需单独联系业务申请,联系方式,请参见获取SDK
  • TG7100C芯片BSP更新
    • 增加TG7100C支持设备热点配网。
    • 内存优化:网络协议栈内存占用减少与AliOS的多heap使能。
    • reboot关中断与GPIO中断优化。
  • 问题修复
    • 修复ASR5502本地定时问题。
    • 修复部分平台下编译报错问题。
    • 修复子设备解除订阅问题。
    • 修复设备影子离线Reset问题。
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-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优化。
说明 请通过git pull更新rel_1.6.6分支到最新版本(1.6.6-6)。

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隔离导致的无法绑定,提升绑定成功率。
    • 增加蓝牙辅助配网功能。
    • 提供密码加密存储。
    • 绑定解绑感知,绑定解绑成功通知设备。