X-Git-Url: http://git.maemo.org/git/?p=mardrone;a=blobdiff_plain;f=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FExamples%2FLinux%2FNavigation%2FSources%2Fcommon%2Fmobile_wifi.c;fp=mardrone%2FARDrone_SDK_Version_1_8_20110726%2FExamples%2FLinux%2FNavigation%2FSources%2Fcommon%2Fmobile_wifi.c;h=7d2f283b8d607bfc619545c91d0ebd2f3a3bdf8e;hp=0000000000000000000000000000000000000000;hb=9ec9bc13b75d30bc45535c54a652934debfcea92;hpb=ae0a3c2dc0898400aca0dd6b439c5db8044db7b2 diff --git a/mardrone/ARDrone_SDK_Version_1_8_20110726/Examples/Linux/Navigation/Sources/common/mobile_wifi.c b/mardrone/ARDrone_SDK_Version_1_8_20110726/Examples/Linux/Navigation/Sources/common/mobile_wifi.c new file mode 100644 index 0000000..7d2f283 --- /dev/null +++ b/mardrone/ARDrone_SDK_Version_1_8_20110726/Examples/Linux/Navigation/Sources/common/mobile_wifi.c @@ -0,0 +1,58 @@ + +#include + +int connect_wifi() +{ + struct iwreq wrq; + char essid[IW_ESSID_MAX_SIZE + 1]; + unsigned char key[IW_ENCODING_TOKEN_MAX]; + int32_t keylen = 0; + + int wlsock = iw_sockets_open(); + + const char *itfName = "wlan0"; + const char *networkName = "linksys"; + const char *com_key = "9F1C3EE11CBA230B27BF1C1B6F"; + if(wlsock < 0) + return -1; + + memset(&wrq,0,sizeof(struct iwreq)); + + keylen = iw_in_key_full(wlsock, itfName, com_key, key, &wrq.u.data.flags); + if(keylen <= 0) + return -1; + + wrq.u.data.length = keylen; + wrq.u.data.pointer = (caddr_t) key; + wrq.u.data.flags |= IW_ENCODE_RESTRICTED; + + if(iw_set_ext(wlsock, itfName, SIOCSIWENCODE, &wrq) < 0) + return -1; + + memset(&wrq,0,sizeof(struct iwreq)); + + wrq.u.mode = IW_MODE_INFRA; + + if(iw_set_ext( wlsock, itfName, SIOCSIWMODE, &wrq) < 0) + return -1; + + if(strlen(networkName) > IW_ESSID_MAX_SIZE) + return -1; + + memset(essid,0,IW_ESSID_MAX_SIZE + 1); + memset(&wrq,0,sizeof(struct iwreq)); + + strncpy(essid,networkName,strlen(networkName)); + wrq.u.essid.flags = 1; + wrq.u.essid.pointer = (caddr_t) essid; + wrq.u.essid.length = strlen(essid) + 1; + + if(iw_set_ext( wlsock, itfName, SIOCSIWESSID, &wrq) < 0) + return -1; + + iw_sockets_close(wlsock); + + return 0; + +} +