uint8_t WiFiClass::beginAP(char *ssid, uint8_t channel) { tstrM2MAPConfig strM2MAPConfig; if (!_init) { init(); } // Enter Access Point mode: memset(&strM2MAPConfig, 0x00, sizeof(tstrM2MAPConfig)); strcpy((char *)&strM2MAPConfig.au8SSID, ssid); strM2MAPConfig.u8ListenChannel = channel; strM2MAPConfig.u8SecType = M2M_WIFI_SEC_OPEN; strM2MAPConfig.au8DHCPServerIP[0] = 0xC0; /* 192 */ strM2MAPConfig.au8DHCPServerIP[1] = 0xA8; /* 168 */ strM2MAPConfig.au8DHCPServerIP[2] = 0x01; /* 1 */ strM2MAPConfig.au8DHCPServerIP[3] = 0x01; /* 1 */ if (m2m_wifi_enable_ap(&strM2MAPConfig) < 0) { _status = WL_CONNECT_FAILED; return _status; } _status = WL_CONNECTED; _mode = WL_AP_MODE; memset(_ssid, 0, M2M_MAX_SSID_LEN); memcpy(_ssid, ssid, strlen(ssid)); m2m_memcpy((uint8 *)&_localip, (uint8 *)&strM2MAPConfig.au8DHCPServerIP[0], 4); _submask = 0x00FFFFFF; _gateway = _localip; // WiFi led ON (rev A then rev B). m2m_periph_gpio_set_val(M2M_PERIPH_GPIO15, 0); m2m_periph_gpio_set_val(M2M_PERIPH_GPIO4, 0); return _status; }
/** * \brief AP mode * * Initializes the AP mode for a while and terminate. */ static int8_t enable_disable_ap_mode(void) { int8_t ret; tstrM2MAPConfig strM2MAPConfig; printf("AP mode, start\r\n"); /* Configure AP. */ memset(&strM2MAPConfig, 0x00, sizeof(tstrM2MAPConfig)); strcpy((char *)&strM2MAPConfig.au8SSID, MAIN_WLAN_SSID); strM2MAPConfig.u8ListenChannel = MAIN_WLAN_AP_CHANNEL; strM2MAPConfig.u8SecType = MAIN_WLAN_AUTH; strM2MAPConfig.au8DHCPServerIP[0] = 0xC0; /* 192 */ strM2MAPConfig.au8DHCPServerIP[1] = 0xA8; /* 168 */ strM2MAPConfig.au8DHCPServerIP[2] = 0x01; /* 1 */ strM2MAPConfig.au8DHCPServerIP[3] = 0x01; /* 1 */ /* Start AP mode. */ ret = m2m_wifi_enable_ap(&strM2MAPConfig); if (M2M_SUCCESS != ret) { return ret; } /* Keep in AP mode for a while. */ nm_bsp_sleep(HOLD_TIME_IN_MODE); /* Stop AP mode. */ ret = m2m_wifi_disable_ap(); if (M2M_SUCCESS != ret) { return ret; } printf("AP mode, end\r\n"); return ret; }