8266接入华为hilink Demo之sdk编辑(二)

万事开头难,没有做过的东西,始终是感觉遥不可及,但是做完了之后却会恍然大悟,居然能这么简单,也许这就是学习的魅力吧!

1.前期准备工作

1.8266 RTOS 2.0sdk
2.hilink官网下载下来的sdk

2.移植sdk

这步骤其实只要按照hilink的指导手册来一步步的修改就行了
文档参考《智能家居 HiLink SDK集成开发调测指导》,文档中如何移植的其实已经很详细了,我在这里就不赘述了。
添加到项目图:
8266接入华为hilink Demo之sdk编辑(二)_第1张图片
需要注意的一点,也是移植中可能会遇到的坑,就是编译超出了RAM,我们知道8266rtos版本提供的RAM区是96K,可能会出现超出RAM的可能,这个时候需要你修改:
ESP8266_RTOS_SDK-2.0.0\ld\eagle.app.v6.common.ld中,
在这里插入图片描述
在这里插入图片描述

3.编辑Main函数

1.添加头文件
#include “hilink.h”
2.在main函数添加hilink_main

/******************************************************************************
 * FunctionName : user_init
 * Description  : entry of user application, init user function here
 * Parameters   : none
 * Returns      : none
*******************************************************************************/
void user_init(void)
{
    System_Initializes();

    os_printf("SDK version:%s\n", system_get_sdk_version());
   // os_printf("SDK version:%s\n", getDeviceVersion());

    //task:
   //xTaskCreate(led_toggle_task, "led_toggle_task", 256, NULL, 2, NULL);
   //xTaskCreate(key_handler_task, "key_handler_task", 256, NULL, 3, &key_handler_task_handle );

	hilink_main();

	// os_printf("网络状态 = %d",hilink_get_devstatus());

}

以上就已经实现了配网和联网了,怎么样,简单吧!

4.数据交互

在hiink_device.c中添加通讯函数

// -----------------------处理云端下发的服务控制(PUT)命令----------------

/*****************************************************************************
函数名称: handle_switch_cmd
功能描述: 处理switch服务的命令处理函数
输入参数: on - on属性的值
返回参数: HILINK_OK - 操作成功, 设备状态已改变
          HILINK_ERR - 操作失败, 设备状态未改变
          HILINK_PROCESSING - 在这操作中, 设备状态尚未改变
使用说明: 1) 返回HILINK_PROCESSING表示设备正在进行异步操作, 待操作完成设备状态
              改变, 需要主动调用report接口将变更的新状态上报给APP;
          2) 此函数由设备厂商实现.
*****************************************************************************/
int handle_switch_cmd(bool* on)
{
    // 实现对on属性的修改
    if (on != NULL) {
    	if(*on == true)
    	{
        	LED_ON();
        }
        else
        {
        	LED_OFF();
        }
    }

    // 若同步操作改变设备状态, 状态改变后, 返回HILINK_OK
    // 若异步操作改变设备状态, 此处返回HILINK_PROCESSING, 待状态改变后主动上报新状态
    return HILINK_OK;
}

其中LED_ON()的函数需要对应自己的板子设置好

这样一个最基本的交互就实现了,最后就是APP的设置了。

你可能感兴趣的:(8266接入华为hilink Demo之sdk编辑(二))