68 lines
1.9 KiB
C
68 lines
1.9 KiB
C
|
|
#include "sys_config.h"
|
||
|
|
#include "basic_include.h"
|
||
|
|
#include "lib/net/skmonitor/skmonitor.h"
|
||
|
|
#include "lib/net/dhcpd/dhcpd.h"
|
||
|
|
#include "lib/net/uhttpd/uhttpd.h"
|
||
|
|
#include "lib/umac/ieee80211.h"
|
||
|
|
#include "lib/net/utils.h"
|
||
|
|
#include "lwip/err.h"
|
||
|
|
#include "lwip/sockets.h"
|
||
|
|
#include "lwip/netdb.h"
|
||
|
|
#include "lwip/sys.h"
|
||
|
|
#include "lwip/ip_addr.h"
|
||
|
|
#include "lwip/tcpip.h"
|
||
|
|
#include "lwip/dns.h"
|
||
|
|
#include "netif/ethernetif.h"
|
||
|
|
#include "lwip/apps/netbiosns.h"
|
||
|
|
#include "lwip/dns.h"
|
||
|
|
#include "syscfg.h"
|
||
|
|
#include "lib/bluetooth/uble/ble_demo.h"
|
||
|
|
|
||
|
|
/* BLE 配网 */
|
||
|
|
#if SYS_APP_BLENC
|
||
|
|
#define BLE_NETCONFIG_OK "network_connect_succ"
|
||
|
|
|
||
|
|
void sys_event_ble_netconfig(uint32 event_id, uint32 data, uint32 priv)
|
||
|
|
{
|
||
|
|
switch (event_id) {
|
||
|
|
case SYS_EVENT(SYS_EVENT_WIFI, SYSEVT_WIFI_CONNECTTED):
|
||
|
|
#if BLE_PROV_MODE == 2
|
||
|
|
os_printf(KERN_NOTICE"WiFi Connected, BLE Notify: %s\r\n", BLE_NETCONFIG_OK);
|
||
|
|
uble_gatt_notify(10, (uint8 *)BLE_NETCONFIG_OK, os_strlen(BLE_NETCONFIG_OK));
|
||
|
|
os_sleep(1);
|
||
|
|
os_printf(KERN_NOTICE"BLE Close!\r\n");
|
||
|
|
ble_set_mode(0, 38); //close BLE
|
||
|
|
ble_set_coexist_en(0, 0);
|
||
|
|
#endif
|
||
|
|
break;
|
||
|
|
|
||
|
|
case SYS_EVENT(SYS_EVENT_BLE, SYSEVT_BLE_NETWORK_CONFIGURED):
|
||
|
|
wpa_passphrase(sys_cfgs.ssid, (char *)sys_cfgs.passwd, sys_cfgs.psk);
|
||
|
|
sys_cfgs.wifi_mode = WIFI_MODE_STA;
|
||
|
|
syscfg_save();
|
||
|
|
|
||
|
|
ieee80211_iface_stop(WIFI_MODE_AP);
|
||
|
|
ieee80211_iface_stop(WIFI_MODE_STA);
|
||
|
|
wificfg_flush(WIFI_MODE_STA);
|
||
|
|
netdev_set_wifi_mode((struct netdev *)dev_get(HG_WIFI0_DEVID), WIFI_MODE_STA);
|
||
|
|
ieee80211_iface_start(WIFI_MODE_STA);
|
||
|
|
#if BLE_PROV_MODE == 1
|
||
|
|
ble_set_mode(0, 38);
|
||
|
|
#endif
|
||
|
|
break;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
__init void sys_ble_netconfig_init()
|
||
|
|
{
|
||
|
|
ble_demo_init();
|
||
|
|
#if BLE_PROV_MODE == 1
|
||
|
|
ble_set_mode(1, 38);
|
||
|
|
#elif BLE_PROV_MODE == 2
|
||
|
|
ble_set_coexist_en(1, 0);
|
||
|
|
ble_set_mode(3, 38);
|
||
|
|
#endif
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|