ESP8266例程解析⑨Alink LED

阿里云网址:https://www.aliyun.com/
阿里厂测包:https://open.aliplus.com/download
阿里云智能开放平台:https://open.aliplus.com/docs/open/
esp8266-alink-v1.0:https://github.com/espressif/esp8266-alink-v1.0
代码分析:

  1. 初始化led
  2. 初始化设备demo(如果出错 打印原因)(显示sdk版本 Alink版本 正在运行的user bin位置 剩余可用heap区的大小
    )回调Alink start函数
  3. Alink star(初始化主要设备信息,按键触发 esp信息准备
    espAlink准备(回调alink_event_handler打印事件 Alink cloud连接情况)
    回调read_task_test()阅读任务测试)
  4. read_task_test(读cmd 执行Json解析 读取后将设备状态发送到云 Alink json释放空间)

void read_task_test(void *pvParameters)
 {
	while (1) 
	{
		ALINK_LOGI("read down cmd param");
		char *down_cmd = alink_malloc(ALINK_DATA_LEN);

		if (alink_read(down_cmd, ALINK_DATA_LEN, portMAX_DELAY) < 0) {
			ALINK_LOGW("alink_read is error");
			continue;
		}

		ALINK_LOGE("down_cmd param(json):%s", down_cmd);
		json_value *jptr = json_parse(down_cmd, strlen(down_cmd));

		if (jptr) {
			device_data_parse(jptr, "Switch", &(virtual_device.Switch));
			device_data_parse(jptr, "ErrorCode", &(virtual_device.ErrorCode));

			if (virtual_device.Switch == 1) {
				led_on();
				switchOpenOff = 1;
			} else {
				led_off();
				switchOpenOff = 0;
			}
			ALINK_LOGE(
					"read: OnOff_Power:%d, TimeDelay_PowerOff: %d, WorkMode_MasterLight: %d, free heap: %d\n",
					virtual_device.Switch, virtual_device.ErrorCode,
					system_get_free_heap_size());
		}

		/* post device status to cloud after read */
		proactive_report_data();
		alink_free(down_cmd);
		json_value_free(jptr);
	}
}

ESP8266例程解析⑨Alink LED_第1张图片
ESP8266例程解析⑨Alink LED_第2张图片
产品开发初始化
从阿里服务器后台导出设备 TRD 表格,并在 user_config.h 文件中修改宏定义。此时,系统会调用 alink_init() 传入产品注册信息,并注册事件回调函数。
ESP8266例程解析⑨Alink LED_第3张图片

  • 设备配网过程中的所有动作,都会传入事件回调函数中。您可以根据实际需求,在事件回调函数中设置相应的处理。比如,在当设备进入配置配网模式灯慢闪,等待激活时灯快闪等。

ESP8266例程解析⑨Alink LED_第4张图片

你可能感兴趣的:(ESP8266)