开发指南

这里给开发者讲解如何进行固件开发,如何结合WebIDE开发自己的产品。

准备工作

搭建环境和准备好SDK,参考开发环境

在WebIDE中添加产品

如果是首次使用WebIDE,请先注册账号,并登陆,在工作区里面进行产品开发,注意该IDE只支持Google Chrome浏览器,请先安装该浏览器。

  1. 在工作区添加产品:
    add_product

  2. 获取产品Key,录入产品信息(产品名称、介绍),添加产品需要的组件,操作结束后保存:
    get_p_key

  3. 录入产品信息、介绍:
    input_pd_info

  4. 添加产品需要的组件:
    add_pd_obj

    注意,当添加多个组件应用时,Label的名字不能重复,可以按照下面方式修改:
    xiugai label
    组件的object_no是区分应用的的编号,不能重复,WebIDE会自动生成,注意复制到固件编译时检查一下嵌入式的代码与WebIDE相应组件的object_no是否一致:
    know object no

  5. 添加完成后可直接浏览手机应用程序的界面:
    phone_look

  6. 最后保存
    save_pd

  1. 另外,可进行更换产品logo
    change_logo1
    点击“点击上传图片” 上传图片
    change_logo2
    最后保存。

取得产品Key

在WebIDE的工作区添加产品,取得产品key:
w_prod_key
点击“查看”,在弹出框里将key的字符串复制到device_config.h文件中宏定义PANDO_PRODUCT_KEY的值。
device_config.h文件在SDK的 app/user 目录下:
w_prod_key_edit

组织产品组件代码

说明:如果直接采用Tisan DEMO里面的默认示例,则已经实现该步骤,可直接进入添加初始化代码操作即可。
点击WebIDE中产品组件区域所选的组件,会弹出一个代码预览框,该代码即为pando框架中object(组件)的基础代码,复制到SDK中 app/user/objects 目录下,只要稍作修改就可以使用。
下面示例是一个RGB灯的产品示例:
w_obj_edit
代码预览中的led.c和led.h复制到SDK中 app/user/objects 目录下,如图:
添加led组件示例代码
需要对led.c补充驱动代码,注意是补充代码中TODO:的函数:

  • 首先添加外设驱动的引用:
    #include "../../peripheral/peri_rgb_light.h"
    
  • 补充初始化函数,注意,初始化调用的外设请在peripheral中相应的驱动里面去配置:
    void ICACHE_FLASH_ATTR
    led_init()
    {
      peri_rgb_light_init();
    }
    
  • 补充set和get方法,在这里是led_set以及led_get方法:
    void ICACHE_FLASH_ATTR
    led_set(struct led* value)  
    {  
      struct LIGHT_PARAM light_value;  
      light_value.pwm_duty[0] = value->red;  
      light_value.pwm_duty[1] = value->green;  
      light_value.pwm_duty[2] = value->blue;  
      peri_rgb_light_param_set(light_value);  
    }
    
    void ICACHE_FLASH_ATTR
    led_get(struct led* value)
    {
      struct LIGHT_PARAM light_value;
      light_value = peri_rgb_light_param_get();
      light_value.pwm_duty[0] = value->red;
      light_value.pwm_duty[1] = value->green;
      light_value.pwm_duty[2] = value->blue;
    }
    
  • 另外如果object还有其他需要TODO:的地方,请参考TODO的提示来进行代码补充。

添加初始化代码

在工程的入口函数user_init(在user_main.c里) 添加组件的初始化代码和相应的头文件引用。
添加规则:
在相应组件的.h文件找到初始化函数名(_init()结尾),例如led.h里面的led_object_init();同时加入相应的头文件引用。
如图:
user_init

编译代码

代码补充完毕后,直接编译,生成bin文件,就可以对Tisan进行烧录了! 烧录的方法请参考固件烧录