问题一:
官方的wlan_ap,电脑通过wifi可以连接到设备,也能正常通信。
可是这种链接是无需密码的,如果想电脑连接时需要设定密码该如何实现???
问题二:电脑连接时,开发板能否给他指定分配一个IP。
问题三:void SimpleLinkNetAppEventHandler(SlNetAppEvent_t *pNetAppEvent)
这个函数是如果实现触发的,也就是说在哪调用的。
求教!
xiaoyu yu1:
刚说的第二个问题是,外设通过WIFI连接AP端,AP端能否给电脑分配一个指定IP。也即静态IP。
Yonghua Pan:
回复 xiaoyu yu1:
1, 请参考wlan.h
\param[in] ConfigLen – configurations len
\param[in] pValues – configurations values
\sa \note \warning \par Examples: \par <b> WLAN_AP_OPT_SSID: </b> \code _u8 str[33]; memset(str, 0, 33); memcpy(str, ssid, len); // ssid string of 32 characters sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_SSID, strlen(ssid), str); \endcode \par <b> WLAN_AP_OPT_CHANNEL: </b> \code _u8 val = channel; sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_CHANNEL, 1, (_u8 *)&val); \endcode \par <b> WLAN_AP_OPT_HIDDEN_SSID: </b> \code _u8 val = hidden; sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_HIDDEN_SSID, 1, (_u8 *)&val); \endcode \par <b> WLAN_AP_OPT_SECURITY_TYPE: </b> \code _u8 val = SL_SEC_TYPE_WPA_WPA2; sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_SECURITY_TYPE, 1, (_u8 *)&val); \endcode \par <b> WLAN_AP_OPT_PASSWORD: </b> \code _u8 str[65]; _u16 len = strlen(password); memset(str, 0, 65); memcpy(str, password, len); sl_WlanSet(SL_WLAN_CFG_AP_ID, WLAN_AP_OPT_PASSWORD, len, (_u8 *)str); \endcode
2, 请参考netcfg.h
\code SL_IPV4_AP_P2P_GO_STATIC_ENABLE:
Setting a static IP address to the device working in AP mode or P2P go. The IP address will be stored in the FileSystem. Requires restart. SlNetCfgIpV4Args_t ipV4; ipV4.ipV4 = (_u32)SL_IPV4_VAL(10,1,1,201); // _u32 IP address ipV4.ipV4Mask = (_u32)SL_IPV4_VAL(255,255,255,0); // _u32 Subnet mask for this AP/P2P ipV4.ipV4Gateway = (_u32)SL_IPV4_VAL(10,1,1,1); // _u32 Default gateway address ipV4.ipV4DnsServer = (_u32)SL_IPV4_VAL(8,16,32,64); // _u32 DNS server address
sl_NetCfgSet(SL_IPV4_AP_P2P_GO_STATIC_ENABLE,IPCONFIG_MODE_ENABLE_IPV4,sizeof(SlNetCfgIpV4Args_t),(_u8 *)&ipV4); sl_Stop(0); sl_Start(NULL,NULL,NULL);
不过不能针对特定的电脑设置固定的。
Yonghua Pan:
回复 Yonghua Pan:
3, 是在simpelink.a这个库里面调用的,你可以参考一下它的代码。