Files
TAIXIN/project/ble_netconfig.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