1 /* 2 * Copyright (C) 2015-2018 Alibaba Group Holding Limited 3 */ 4 5 #ifndef __AWS_LIB_H__ 6 #define __AWS_LIB_H__ 7 8 #include <stdint.h> 9 10 #if defined(__cplusplus) /* If this is a C++ compiler, use C linkage */ 11 extern "C" { 12 #endif 13 14 /* auth type */ 15 enum AWS_AUTH_TYPE { 16 AWS_AUTH_TYPE_OPEN, 17 AWS_AUTH_TYPE_SHARED, 18 AWS_AUTH_TYPE_WPAPSK, 19 AWS_AUTH_TYPE_WPA8021X, 20 AWS_AUTH_TYPE_WPA2PSK, 21 AWS_AUTH_TYPE_WPA28021X, 22 AWS_AUTH_TYPE_WPAPSKWPA2PSK, 23 AWS_AUTH_TYPE_MAX = AWS_AUTH_TYPE_WPAPSKWPA2PSK, 24 AWS_AUTH_TYPE_INVALID = 0xff, 25 }; 26 27 /* encry type */ 28 enum AWS_ENC_TYPE { 29 AWS_ENC_TYPE_NONE, 30 AWS_ENC_TYPE_WEP, 31 AWS_ENC_TYPE_TKIP, 32 AWS_ENC_TYPE_AES, 33 AWS_ENC_TYPE_TKIPAES, 34 AWS_ENC_TYPE_MAX = AWS_ENC_TYPE_TKIPAES, 35 AWS_ENC_TYPE_INVALID = 0xff, 36 }; 37 38 /* link type */ 39 enum AWS_LINK_TYPE { 40 AWS_LINK_TYPE_NONE, 41 AWS_LINK_TYPE_PRISM, 42 AWS_LINK_TYPE_80211_RADIO, 43 AWS_LINK_TYPE_80211_RADIO_AVS 44 }; 45 46 /* 启动一键配网服务, 该函数会block,直到配网成功或者超时退出, 47 * 超时时间由aws_timeout_period_ms设置 48 * 参数: 49 * pk: product key 50 * dn: device name 51 * ds: device security 52 * ps: product security 53 */ 54 void aws_start(char *pk, char *dn, char *ds, char *ps); 55 /* {该函数大致流程如下: 56 * init(); 57 * platform_monitor_open(); 58 * aws_main_thread_func(); 59 * platform_monitor_close(); 60 * destroy(); 61 * } 62 63 * aws_start返回后,调用该函数,获取ssid和passwd等信息 64 * aws成功时,ssid & passwd一定会返回非NULL字符串, 但bssid和auth, encry, channel 65 * 有可能会返回NULL或者INVALID值(取决于是否能在wifi列表里搜索命中) 66 * aws失败超时后,该函数会返回0, 且所有参数为NULL或INVALID VALUE 67 * 68 * auth defined by enum AWS_AUTH_TYPE 69 * encry defined by enum AWS_ENC_TYPE 70 * 71 * 返回值:1--成功,0--失败 72 */ 73 int aws_get_ssid_passwd(char *ssid, char *passwd, uint8_t *bssid, 74 uint8_t *token, char *auth, char *encry, 75 uint8_t *channel); 76 77 /* 配网结束(成功或失败)后,调用该函数,释放配网库占用的资源 */ 78 void aws_destroy(void); 79 80 #if defined(__cplusplus) /* If this is a C++ compiler, use C linkage */ 81 } 82 #endif 83 84 #endif 85