如何开发Wi | 您所在的位置:网站首页 › 阿里云生活物联网飞燕平台 › 如何开发Wi |
SDK推荐配置
建议开发者阅读编译说明中的“SDK裁剪”了解SDK配置以及各选项的意义。 可以通过修改make.settings或者Linux下执行make menuconfig 来配置需要的功能。 功能 说明 FEATURE_MQTT_COMM_ENABLED y:使用MQTT连接阿里云物联网平台 FEATURE_MQTT_DIRECT y:连国内服务器 n:连海外服务器 FEATURE_Device_MODEL_ENABLED y:使能物模型 FEATURE_ALCS_ENABLED y:使能本地控制功能 FEATURE_ALCS_SERVER_ENABLED y:使能本地控制被控端功能 FEATURE_DEV_BIND_ENABLED y:使能用户绑定相关功能 FEATURE_SUPPORT_TLS y:使能TLS加密 FEATURE_OTA_ENABLED y:使能OTA FEATURE_WIFI_PROVISION_ENABLED y:使能Wi-Fi配网 FEATURE_AWSS_SUPPORT_DEV_AP y/n:根据需要打开或关闭设备热点配网 FEATURE_AWSS_SUPPORT_SMARTCONFIG y/n:根据需要打开或关闭一键配网 FEATURE_AWSS_SUPPORT_PHONEASAP y/n:根据需要打开或关闭手机热点配网 FEATURE_AWSS_SUPPORT_ROUTER y/n:根据需要打开或关闭路由器配网 FEATURE_AWSS_SUPPORT_ZEROCONFIG y/n:根据需要打开或关闭零配配网设备需要连接海外服务器请参见国际站设备开发。 HAL适配请参照下面的文档进行HAL的实现: 基础HAL适配 MQTT连云相关的HAL适配 线程相关HAL的适配 Wi-Fi配网HAL的适配注:若未选择集成阿里提供的Wi-Fi配网功能,可以不用适配这些HAL OTA HAL的适配 本地通信HAL的适配 设备身份认证模式设备连接阿里云物联网平台时,可以使用预置设备证书的方式进行设备的身份认证,也可以采用动态注册方式得到完整的设备证书再进行身份认证,请参见设备认证。 产品功能实现在设备上根据云端定义的产品功能进行相应功能的实现,请参见物模型编程。 Wi-Fi配网开发请访问生活物联网SDK的Wi-Fi配网开发指南了解如何调用配网相关的API实现Wi-Fi配网。 云端解绑与恢复出厂默认设置设备被解绑后,云端会下发一个解绑事件通知:{"identifier":"awss.BindNotify","value":{"Operation":"Unbind"}} 设备收到此消息可以做重置配网、清空本地数据等处理。 如果通过App将设备恢复出厂默认设置,云端会下发一个Reset事件通知:{"identifier":"awss.BindNotify","value":{"Operation":"Reset"}} 设备收到此消息可以做重置配网、清空本地数据等处理。设备开发者可以结合具体产品类型,决定收到解绑和恢复出厂默认设置通知后做哪些清空操作。 可以参考示例代码example/smart_outlet/smart_outlet_main.c中notify_msg_handle函数,做如下改动。 static int notify_msg_handle(const char *request, const int request_len) { .... if (!strcmp(item->valuestring, "awss.BindNotify")) { cJSON *value = cJSON_GetObjectItem(request_root, "value"); if (item == NULL || !cJSON_IsObject(value)) { cJSON_Delete(request_root); return -1; } cJSON *op = cJSON_GetObjectItem(value, "Operation"); if (op != NULL && cJSON_IsString(op)) { if (!strcmp(op->valuestring, "Bind")) { EXAMPLE_TRACE("Device Bind"); vendor_device_bind(); } if (!strcmp(op->valuestring, "Unbind")) { EXAMPLE_TRACE("Device unBind"); vendor_device_unbind(); } if (!strcmp(op->valuestring, "Reset")) { EXAMPLE_TRACE("Device Reset"); vendor_device_reset(); } } } .... } 设备重置对于生活物联网平台来说,建议产品设计一个reset按键用于清除设备上的配置,将设备恢复到出厂状态,同时调用awss_report_reset()函数告知云端清除设备与用户的绑定关系。 因此,设备商需要在处理reset按键的逻辑中增加对awss_report_reset()的调用。 /* * 应用程序调用该API后,Linkkit首先往Flash里存储恢复出厂设置的标志,并向云端上报reset操作, * 在规定的时间内(3秒)如果没有收到云端的回复,设备会重新上传reset,直至收到云端的回复位置; * 有些产品希望发生reset时设备可以重新启动,如果重新启动之前reset没有上报成功,下一次连接云后, * 设备会首先检查Flash中恢复出厂标志是否设置,如果设置了则首先向云端上报reset,直至成功; */ int awss_report_reset(); OTA开发若使能了OTA功能,请参见OTA编程。 |
CopyRight 2018-2019 实验室设备网 版权所有 |