1 /*
2  * Copyright (C) 2015-2020 Alibaba Group Holding Limited
3  */
4 /**
5  * @file main.c
6  *
7  * This file includes the entry code of link sdk related demo
8  *
9  */
10 
11 #include <string.h>
12 #include <stdio.h>
13 #include <aos/kernel.h>
14 #include "netmgr.h"
15 #include <uservice/uservice.h>
16 #include <uservice/eventid.h>
17 
18 extern int demo_main(int argc, char *argv[]);
19 
20 static int _ip_got_finished = 0;
21 
entry_func(void * data)22 static void entry_func(void *data)
23 {
24     demo_main(0 , NULL);
25 }
wifi_event_cb(uint32_t event_id,const void * param,void * context)26 static void wifi_event_cb(uint32_t event_id, const void *param, void *context)
27 {
28     aos_task_t task;
29     aos_status_t ret;
30     if (event_id != EVENT_NETMGR_DHCP_SUCCESS)
31         return;
32 
33     if (_ip_got_finished != 0)
34         return;
35 
36     _ip_got_finished = 1;
37     ret = aos_task_create(&task, "linksdk_demo", entry_func,
38                           NULL, NULL, 6048, AOS_DEFAULT_APP_PRI, AOS_TASK_AUTORUN);
39     if (ret < 0) {
40         printf("create linksdk demo task failed, ret = %ld \r\n", ret);
41     }
42 }
43 
application_start(int argc,char * argv[])44 int application_start(int argc, char *argv[])
45 {
46     aos_set_log_level(AOS_LL_DEBUG);
47     event_service_init(NULL);
48 
49     netmgr_service_init(NULL);
50     netmgr_set_auto_reconnect(NULL, true);
51     netmgr_wifi_set_auto_save_ap(true);
52 
53 
54     event_subscribe(EVENT_NETMGR_DHCP_SUCCESS, wifi_event_cb, NULL);
55 
56     while (1) {
57         aos_msleep(1000);
58     };
59 
60     return 0;
61 }
62