AliOS Things Linkkitapp@esp8266 代码学习笔记

linkkit app 作为一个设备联网与阿里云数据交互的实例,是学习AliOS物联网开发的入门示例:

它的代码调用顺序大概如下。

@esp8266是以8266soc为例

1. //platform/mcu/esp8266/bsp/entry.c    user_init(void)

2. //kernel/init/aos_init.c    aos_kernel_init()

3. //app/example/linkkitapp/app_entry.c   application_start()

4. //app/example/linkkitapp/linkkit_example_solo.c  linkkit_main()

application_start()函数里有许多是被宏定义包含的方法调用,把这些去除后,剩下的对我们有用的功能就如下几条了。

  • 日志级别设置
  • 网络功能初始化?
  • 注册按键事件处理回调函数
  • 注册wifi服务回调函数
  • 注册云服务回调
  • 开启一个任务--netmgr ,注册了linkkit_event_monitor回调函数

int application_start(int argc, char **argv)
{

    aos_set_log_level(AOS_LL_DEBUG);  //设置日志打印级别

    netmgr_init();
    aos_register_event_filter(EV_KEY, linkkit_key_process, NULL);   //注册事件过滤函数 
    aos_register_event_filter(EV_WIFI, wifi_service_event, NULL);   //注册事件过滤函数
    aos_register_event_filter(EV_YUNIO, cloud_service_event, NULL); //注册事件过滤函数

    set_iotx_info();  //设置设备三元组
    aos_task_new("netmgr", start_netmgr, NULL, 4096); //开启一个任务 start_netmgr

    aos_loop_run();   //循环不退出?

    return 0;
}

 

linkkit_event_monitor 不能别阻塞,且应该快速完成。如果有需要比较复杂、耗时的处理应该新开启另一个任务去完成

/*
 * Note:
 * the linkkit_event_monitor must not block and should run to complete fast
 * if user wants to do complex operation with much time,
 * user should post one task to do this, not implement complex operation in
 * linkkit_event_monitor
 */

static void linkkit_event_monitor(int event)
{
 switch (event) {
        case IOTX_AWSS_START: // AWSS start without enbale, just supports device
                              // discover
            // operate led to indicate user
            LOG("IOTX_AWSS_START");
            break;
    }

// .......
//..........

}

 

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值