FREQUENTLY ASKED QUESTIONS FOR THE WI-FI SOFTWARE DEVELOPER'S KIT (SDK)



Similar documents
Summit Software Developer s Kit User s Guide Version 3.5

STEP III: Enable the Wireless Network Card. STEP IV: Print out the Printer Settings pages to determine the IP Address

STEP III: Enable the Wireless Network Card

Wifi Web Server Module w TF Socket User s Guide

Tube-U(G) Long-Range Outdoor IEEE g USB Adapter User s Guide

Long-Range 500mW IEEE g Wireless USB Adapter. User's Guide

9 Simple steps to secure your Wi-Fi Network.

TECHNICAL BULLETIN. Configuring Wireless Settings in an i-stat 1 Wireless Analyzer

LevelOne User Manual WPC-0600 N_One Wireless CardBus Adapter

Network Services One Washington Square, San Jose, CA

WRE2205. User s Guide. Quick Start Guide. Wireless N300 Range Extender. Default Login Details. Version 1.00 Edition 1, 06/2012

Ralink Utility User Guide/PC/MAC

Table of Contents. Cisco Wi Fi Protected Access 2 (WPA 2) Configuration Example

N600 WiFi USB Adapter

Configuring Settings on the Cisco Unified Wireless IP Phone 7925G

WUA Mbps Wireless USB Network Adapter

Basic processes in IEEE networks

DV230 Web Based Configuration Troubleshooting Guide

POWERLINK High Power Wireless LAN b/g/n USB Adapter User Manual

Wireless Fusion Enterprise Mobility Suite. User Guide for Version 2.55

USER GUIDE Cisco Small Business

PageWriter TC Cardiograph Network Configuration Guide

BlackBerry Business Cloud Services. Policy Reference Guide

Eduroam wireless network Windows Vista

Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation

Wireless Security for Mobile Computers

A6210 WiFi USB Adapter ac USB 3.0 Dual Band User Manual

User Manual. WLAN USB Adapter for b/g

IEEE A/G Access Point

ClickShare Network Integration

Nokia E90 Communicator Using WLAN

802.11b/g/n Wireless LAN PCI Card. User Manual. Version: 1.0 (December, 2007)

Wireless LAN g USB Adapter

WIRELESS FUSION ENTERPRISE MOBILITY SUITE USER GUIDE FOR VERSION H3.40

Wireless VoIP Phone User s Manual

A Division of Cisco Systems, Inc. GHz g. Wireless-G. USB Network Adapter with RangeBooster. User Guide WIRELESS WUSB54GR. Model No.

Wireless g CF Card User Manual

ALL Mbits Powerline WLAN N Access Point. User s Manual

How to Program an Android Application to Access and Manage the Wi-Fi Capabilities of a Smartphone

Vocera Infrastructure Planning Summary. B3000n Compatible

802.11b/g/n Wireless LAN PCIe ExpressCard. User Manual. Version: 1.1 (August, 2007)

Wi-Fi Settings Guide. Model No. SP 212/SP 213 Series

A Division of Cisco Systems, Inc. GHz g. Wireless-G. PCI Adapter. User Guide WIRELESS WMP54G. Model No.

Motorola AP-5131 Access Point Quick Setup Guide

How To Understand The Power Of A Network On A Microsoft Ipa 2.5 (Ipa) (Ipam) (Networking) 2 (Ipom) 2(2

BlackBerry Enterprise Service 10. Universal Device Service Version: Administration Guide

UniFinger Engine SDK Manual (sample) Version 3.0.0

How To Set Up A Wireless Network On A Computer Or Network On Your Computer On A Microsoft Ipa (Windows) 2.5 (Mac) 2 (Windows 2) 2-Gigabit Wireless Network) On A Network On An Ip

Network Interface Table of Contents

Vocera WLAN Requirements and Best Practices. B3000n Compatible

Wireless-G Business PCI Adapter with RangeBooster

Wi-Fi Client Device Security & HIPAA Compliance

Setting up a WiFi Network (WLAN)

Wireless VoIP Phone. Table of Contents. User s Manual

Eduroam wireless network - Windows 7

How To Set Up A Cisco Wireless Network Controller (Wired) With A Wireless Network (Wired And Wireless) With An Ipad Or Ipad (Wired Or Wireless) For A Pb/G/G (Wired/Wired) Or Ip

Issue 1 EN. Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation

Sinus 1054 data Installation Guide

Avaya 3631 Wi-Fi IP Phone Wireless Security Configuration Note

Configuring connection settings

NETWORK USER S GUIDE. Multi-Protocol On-board Ethernet Multi-function Print Server and Wireless Ethernet Multi-function Print Server

Administrator's Guide

Wireless LAN Access Point. IEEE g 54Mbps. User s Manual

Cisco Aironet A/B/G Wireless PCI Adapter

WRE6505. User s Guide. Quick Start Guide. Wireless AC750 Range Extender. Default Login Details. Version 1.00 Edition 1,

Nokia E61i Configuring connection settings

TECHNICAL NOTE. GoFree WIFI-1 web interface settings. Revision Comment Author Date 0.0a First release James Zhang 10/09/2012

A Division of Cisco Systems, Inc. GHz g. Wireless-G. PCI Adapter with RangeBooster. User Guide WIRELESS WMP54GR. Model No.

ALL0233 Wireless-N USB Dongle User Guide

Quick Start Guide. WRV210 Wireless-G VPN Router with RangeBooster. Cisco Small Business

User s Manual. Wireless LAN Access Point. Model No.: SP918GK

Understanding Wireless Security on Your Polycom SpectraLink 8400 Series Wireless Phones

Case Study - Configuration between NXC2500 and LDAP Server

WAP3205 v2. User s Guide. Quick Start Guide. Wireless N300 Access Point. Default Login Details. Version 1.00 Edition 2, 10/2015

Basic Wireless Configuration and Security

Wi-Fi in Healthcare:

WiFi Security Assessments

Step-by-step Guide for Configuring Cisco ACS server as the Radius with an External Windows Database

Configuring the USB Wireless Adapter with GXV3140

WebSTAR Model DPW700 PCMCIA Wireless LAN Card and WebSTAR Model DPW730 USB Wireless Adapter User s Guide

Configuring Your Network s Security

Nokia Siemens Networks. CPEi-lte User Manual

EPI-3601S Wireless LAN PCI adapter Version 1.2 EPI-3601S. Wireless LAN PCI Adapter. (802.11g & b up to 108 Mbps) User Manual. Version: 1.

PePWave Surf Series PePWave Surf Indoor Series: Surf 200, AP 200, AP 400

Linksys WAP300N. User Guide

Wireless LAN Access Point

NETWORK USER S GUIDE. Multi-Protocol On-board Ethernet Print Server and Wireless Ethernet Print Server

The Wireless LAN (Local Area Network) USB adapter can be operated in one of the two following networking configurations :

Installing Your WiFi capable imageclass Product to Your Network for the First Time

Securing your Linksys WRT54G

Configuration. Windows 98 and Me Configuration

NWA1120 Series. User s Guide. Quick Start Guide. Wireless LAN Ceiling Mountable PoE Access Point. Default Login Details

WLAN Authentication and Data Privacy

Security Awareness. Wireless Network Security

Lab Exercise Objective. Requirements. Step 1: Fetch a Trace

Implementing Security for Wireless Networks

Wireless N 150 USB Adapter with 10dBi High Gain Antenna. Model # AWLL5055 User s Manual. Rev. 1.0

Welch Allyn Connex, VitalsLink by Cerner, and Connex CSK Network installation. Best practices overview

TECHNICAL NOTE REFERENCE DOCUMENT. Improving Security for Axis Products. Created: 4 October Last updated: 11 October Rev: 1.

RTX41xx. Wi-Fi Module

Transcription:

WI-FI SDK FREQUENTLY ASKED QUESTIONS FOR THE WI-FI SOFTWARE DEVELOPER'S KIT (SDK) Application Note v1.0 1. GETTING STARTED WITH THE SDK 1.1 How do I use the SDK with Embedded Visual C++? To add the SDK to a new evc project: 1. Use AppWizard to build an application (for example: Projects -> WCE MFC AppWizard(exe). 2. Include the header file in your source file (xxxdig.cpp or elsewhere): extern "C" {#include "sdc_sdk.h"} 3. Link to the libraries. (Project -> Settings) 4. On the 'Link' tab, in the 'Object/Library Modules' box, enter: sdk.lib ws2.lib iphlpapi.lib Make sure that you are using the appropriate sdk.lib file for your platform. Make sure that you have downloaded the latest files from our website The sdk.lib static library is the Wi-Fi SDK. You can download the latest version on our website. Ws2.lib and iphlpapi.lib are both Microsoft libraries and are available in the standard Microsoft SDKs. 1.2 How do I use the SDK with.net? We currently do not provide a static library (LIB file) or dynamic link library (DLL file) for.net. You can create a wrapper DLL for our SDK to use in your.net applications. 2. ENCRYPTION, EAP TYPES, CERTIFICATES 2.1 How do I know if my EAP/WEP combinations are valid? An Extensible Authentication Protocol (EAP) type may not only performs authentication but also generates a dynamic encryption key. When you use an EAP type, you must use an encryption type that uses dynamic keys. When you do not use an EAP type, then you must use an encryption type that uses static keys. Here are possible combinations: The SDCConfig is validated on calls to ModifyConfig or AddConfig. If you have an invalid combination of EAP types (SDCConfig's eaptype) and encryption types (SDCConfig's weptype), and invalid config error will be returned. Although CCKM-AES is listed in the encryption type enum in the header file, it is not currently supported. Setting an encryption type (weptype) of CCKM-AES will always return an invalid config error. 2.2 How do I set up a single static WEP key? For a single static WEP key, use the SetWEPKey() SDK call. A WEP key can be either 40 bit (10 hexadecimal characters) or 128 bit (26 hexadecimal characters) set this using the keylength parameter. Embedded Wireless Solutions Support Center: http://ews-support.lairdtech.com www.lairdtech.com/wi-fi 1 Laird Technologies Americas: +1-800-492-2320

There can only be one active transmit key at any time. If this key should be the transmit key, set the 5th parameter (txkey) to TRUE. unsigned char thewepkey[13] = {0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11} config.weptype = WEP_ON; config.eaptype = EAP_NONE; //Set the WEP key info sdcerr = SetWEPKey(&config, 1, WEPLEN_128BIT, thewepkey, FALSE); 2.3 How do I set up multiple static WEP Keys? To set multiple WEP keys, use the SetMultipleWEPKeys () SDK call. A WEP key can be either 40 bit (10 hexadecimal characters) or 128 bit (26 hexadecimal characters set this using the keylength parameter. Although 4 WEP keys can be stored, there can only be one active transmit key at any time. To set the transmit key, set the 2nd parameter (txkey) to TRUE. memset(&config, 0, sizeof(sdcconfig); config.weptype = WEP_ON; config.eaptype = EAP_NONE; //Set the WEP key info sdcerr = SetMultipleWEPKeys(&config, 3, WEPLEN_40BIT, (unsigned char*) "1111111111", WEPLEN_NOT_SET, (unsigned char*)"2222222222", WEPLEN_40BIT, (unsigned char*)"3333333333", WEPLEN_128BIT, (unsigned char*)"123456789012345678901234567"); Americas: +1-800-492-2320 Option 2 2 Laird Technologies

2.4 How do I set up Pre-Shared Keys (PSKs)? A PSK is a null terminated string that should have a length of either 8-63 ASCII characters or 64 hexadecimal characters. To set a PSK, use the SetPSK() SDK call. In your application, make sure to check for errors after each SDK call. char hexpsk[ ] = "012345678901234567890123456789012345678901234567890123456789abcd"; config.weptype = WPA_PSK; config.eaptype = EAP_NONE; //Set the PSK sdcerr = SetPSK(&config, hexpsk); 2.5 How do I set up LEAP credentials? For LEAP, use the SetLEAPCred() SDK call. char user[ ] = "myusername"; char pwd[ ] = "mypassword"; config.weptype = WPA_TKIP; config.eaptype = EAP_LEAP; //Set the LEAP credentials sdcerr=setleapcred(&config, user, pwd); Americas: +1-800-492-2320 Option 2 3 Laird Technologies

2.6 How do I set EAP-FAST credentials? For EAP-FAST, use the SetEAPFASTCred SDK call. char user[ ] = "myusername"; char pwd[ ] = "mypassword"; char pac1[ ] = "000pac000"; char pac2[ ] = "12345678901234567890123456789012345678901234567890"; config.weptype = WPA_TKIP; config.eaptype = EAP_EAPFAST; //Set the EAP-FAST credentials sdcerr=seteapfastcred(&config, user, pwd, pac1, pac2); 2.7 How do I set PEAP-MSCHAP credentials? For PEAP-MSCHAP, use the SetPEAPMSCHAP SDK call. char user[ ] = "myusername"; char pwd[ ] = "mypassword"; char cert[ ] = "certfile.cer"; CERTLOCATION certlocation = CERT_FILE; DWORD confignumber; //Get a valid config using GetConfig or another call sdcerr = GetCurrentConfig(&configNum, configname); config.weptype = WPA2_AES; config.eaptype = EAP_PEAPMSCHAP; Americas: +1-800-492-2320 Option 2 4 Laird Technologies

//Set the PEAP-GTC credentials sdcerr=setpeapmschapcred(&config, user, pwd, certlocation, cert); 2.8 How do I set PEAP-GTC credentials? For PEAP-GTC, use the SetPEAPGTC SDK call. char user[ ] = "username"; char pwd[ ] = "password"; char cert[ ] = "000pac000.cer"; CERTLOCATION certlocation = CERT_FILE; DWORD confignumber; //Get a valid config using GetConfig or another call sdcerr = GetCurrentConfig(&configNum, configname); config.weptype = WPA_TKIP; config.eaptype = EAP_PEAPGTC; //Set the PEAP-GTC credentials sdcerr=setpeapgtccred(&config, user, pwd, certlocation, cert); 2.9 How do I set EAP-TLS credentials? For EAP-TLS, use the SetEAPTLS SDK call. BYTE* usercert = new BYTE[20]; BYTE* cacert = new BYTE[20]; CERTLOCATION certlocation = CERT_IN_STORE; GetCerts(TRUE, 2, usercert); GetCerts(FALSE, 1, cacert); Americas: +1-800-492-2320 Option 2 5 Laird Technologies

config.weptype = WPA_TKIP; config.eaptype = EAP-EAPTLS; //Set the EAP-TLS credentials sdcerr=seteaptlscred(&config, "user", (char*)usercert, certlocation, (char*)cacert); 2.10 How do I set EAP-FAST provisioning or automatic PAC provisioning in the SDK? Changing the provisioning settings in the SDK works in the same way as the SCU. If PAC information is specified in the username and userpassword variables in the SetEAPFASTCred function, manual PAC provisioning is used. If the PAC information is blank (NULL strings), automatic PAC provisioning is used. PAC files should be placed in the Summit -> Certs -> directory or in the directory specified in the global setting certspath. 2.11 Where is CA certificate information stored? All certificate files should be stored in the -> Certs -> subdirectory inside the Summit Client Utility (SCU) directory. Pass the certificate filename with extension into the appropriate function, like SetPEAPGTC. 3. STATUS 3.1 How can I tell when an AP/network/SSID is available? To tell when you have entered an area where the SSID is available, use our SDK to poll the status. Once the AP/SSID is available, the status will change from 'not associated' to 'associated.' Check the cardstate member of the CF10G_STATUS structure returned by the GetCurrentStatus function: SDCERR GetCurrentStatus(CF10G_STATUS *status); typedef enum _CARDSTATE { CARDSTATE_NOT_INSERTED = 0, CARDSTATE_NOT_ASSOCIATED, CARDSTATE_ASSOCIATED, CARDSTATE_AUTHENTICATED, CARDSTATE_FCCTEST, CARDSTATE_NOT_SDC } CARDSTATE; When the status is CARDSTATE_ASSOCIATED or CARDSTATE_AUTHENTICATED, the network is available. 3.2 How can I convert the Received Signal Strength Indication (RSSI) to a percentage? As for a formula to convert RSSI to a percentage, we have not done enough measurements at this time other than - 20 = 100% and -95 = 0%. Americas: +1-800-492-2320 Option 2 6 Laird Technologies

3.3 How do I calculate Signal Quality and integrate it into my application? For versions 1.3.0 and above: Determining signal quality requires three values in CF10G STATUS: DWORD DTIM (range 1-100; no associated unit) DWORD beaconperiod (range 20-4000 Kusec or roughly 20-4000 msec) DWORD beaconsreceived The sdk/driver will fill in these values each time UpdateStatus is called. How your application can determine Signal Quality: In CAM powersave mode, the app should get beacons every beaconperiod In PSP powersave mode, the app should get beacons every (beaconperiod * DTIM) Notes and Usage Tips: In PSP, you can get more beacons than expected if radio is transmitting data, so always round down to 100% signal quality. You will see this especially in the first 20 seconds or so. When the driver roams or connects for the first time, beaconsreceived will be reset to zero. If (beaconperiod * DTIM) > sampling interval, then you should only display signal qaulity if there is enough data to make a decision. The SCU updates every 1500 ms. It keeps track of the last four readings and averages them to display Signal Quality. 4. GLOBAL SETTINGS / SROM 4.1 How do I set the regulatory domain (ETSI, FCC, TELEC, Worldwide)? The regulatory domain (e.g. ETSI, FCC, or TELEC) is stored in the SROM of the radio. To set the regdomain: Change the RegDomain global setting Call UpdateSROM The UpdateSROM call can be lengthly and the device will appear locked up while the SROM is updated. You can verify the current regulatory domain by checking the SCU, SMU, or calling the SDK function GetCurrentDomain. For example: SDCGlobalConfig gcfg; //Get the global config GetGlobalSettings(&gcfg); //Change regulatory domain to either: //REG_FCC, REG_ETSI, REG_TELEC, or REG_WW gcfg.regdomain = REG_WW; //Set the global config SetGlobalSettings(&gcfg); //updatesrom() is a lengthy call, approx 10 secs. updatesrom(); //Verify by checking the SCU/SMU, or calling GetCurrentDomain(); Americas: +1-800-492-2320 Option 2 7 Laird Technologies

REG_DOMAIN rd = GetCurrentDomain(); 4.2 After I set the regdomain global setting and call SetGlobalSettings, why doesn't the regulatory domain change in the SCU? The regulatory domain is actually stored in the SROM of the radio, not in the global setting value. To set the regdomain, you must change the global setting (gcfg.regdomain), and then call UpdateSROM(). This call can be lengthy and can take about 10 seconds. The device will appear locked up while the SROM is updated. After you call SetGlobalSettings, if you add the UpdateSROM call, the regulatory domain will be set. You can verify that it worked by checking the SCU, SMU, or calling the SDK function GetCurrentDomain. 4.3 What does GetCurrentDomain return when a card is not insterted? GetCurrentDomain will return worldwide/reg_ww if the card it not inserted. GetCurrentDomain will always return REG_WW unless there is a card inserted and that card's SROM is programmed for FCC, ETSI, or TELEC. 4.4 How do I specify a Limited Channel Set (channels 1, 6, 11) using the blrs global setting? Each bit of the blrs DWORD corresponds to a specific channel. Bit 0 represents channel 1, bit 1 represents channel 2, etc. Set a bit in blrs to 1 to enable a channel and 0 to disable it. For example, the binary value 0000 0100 0010 0001 (0x0421 hexadecimal) would enable channels 1, 6 and 11 and disable all other channels. The binary value is binary 1111 1111 1111 1111 (0xFFFF hexadecimal) to enable all channels. The Limited Channel Set setting lets you restrict the channel search when probing, and for connections. This setting is applied for all radio modes. From v1.3, this setting is also available in the SCU as "BG Channel Set" on the Global Settings tab. 5. GENERAL 5.1 How do I disable/enable the radio? You can use the enable/disable functions in the SDK: SDCERR RadioDisable(); SDCERR RadioEnable(); 5.2 Can I turn off power to the radio with the SDK? EnableRadio and DisableRadio do not turn off the power to the radio. The radio goes into a 'sleep' mode that minimizes power consumption. The OS keeps power to the slot. The only way to truly power the radio off is through the OS and controlling the PCMCIA slot. 5.3 How do I obtain the list of available access points? From v2.2.3, you can use our QueryOID and SetOID functions with the BSSID_LIST_SCAN and BSSID_LIST OIDs. These return the list of available access points. Please refer to the Microsoft documentation for more information on how to the links here and here. A code snippit showing how to use our QueryOID and SetOID functions to obtain the list of access points follows. Americas: +1-800-492-2320 Option 2 8 Laird Technologies

From v1.3.0, in the SCU we support a 'Scan' feature that displays a list of APs and their RSSi values. Please see Section 3.3 of the User's Guide for more information on this feature. UCHAR QueryBuffer[sizeof(NDISUIO_QUERY_OID)+sizeof(NDIS_802_11_BSSID_LIST_EX)*100]; LONG retval=0; CString str; //Tell driver to scan retval = SetOID(OID_802_11_BSSID_LIST_SCAN, QueryBuffer, sizeof(ndisuio_query_oid)+sizeof(ndis_802_11_bssid_list_ex)*100); if ( retval ) { //Ask for list of BSSIDS retval = QueryOID(OID_802_11_BSSID_LIST, QueryBuffer, sizeof(ndisuio_query_oid)+sizeof(ndis_802_11_bssid_list_ex)*100); if ( retval ) { NDISUIO_QUERY_OID* queryoid = (PNDISUIO_QUERY_OID) &QueryBuffer[0]; PNDIS_802_11_BSSID_LIST_EX buf = (PNDIS_802_11_BSSID_LIST_EX) &queryoid->data; int nindex = 0; ULONG nnumitems = buf->numberofitems; //Iterate through list and get ssid and rssi values PNDIS_WLAN_BSSID_EX pbssid = &buf->bssid[0]; for ( ULONG i = 0; i < nnumitems; i++ ) { str = pbssid->ssid.ssid; writetotextbox(str); str.format(l"%d", pbssid->rssi); writetotextbox(str); pbssid = (PNDIS_WLAN_BSSID_EX)((LPBYTE)pBssid + pbssid->length); } } } 5.4 Are ad hoc networks supported by the SDK? From version 2.0, ad hoc networks are supported in the Wi-Fi SDK. The use ad hoc networks, set the radiomode of the desired profile (SDCConfig) to RADIOMODE_ADHOC. With ad hoc networks, you may use a WEP key or unsecured network (no encryption and no EAP types). SDCConfig myconfig; SDCERR err; memset(&myconfig, 0, sizeof(sdcconfig)); //configure ad hoc profile strcpy(myconfig.configname, "myadhocconfig"); strcpy(myconfig.ssid, "myadhocssid"); Americas: +1-800-492-2320 Option 2 9 Laird Technologies

myconfig.radiomode = RADIOMODE_ADHOC; //add profile and activate it err = AddConfig(&myConfig); if (err == SDCERR_SUCCESS) err = ActivateConfig("myAdHocConfig"); 5.5 Is Automatic Profile Selection supported by the SDK? As of v1.3.9, we currently do not support roaming between profiles with different SSIDs. An auto-profile selection feature is planned for a future software release. 5.6 What is the maximum number of APs (AP saturation) that can be included in a single scan? We support up to 64 APs in a scan. AP saturation is the maximum number of simultaneous connections. 5.7 Can I update radio firmware through the SDK? As of 1.3.9, we do not support this. 5.8 Is an admin password necessary when using the SDK? You do not need to use or set the admin password when using the SDK. This is for the SCU only. 5.9 How can I determine if the radio is installed and the driver is loaded through the SDK? The best way is to check the status in GetCurrentStatus. If it returns CARDSTATE_NOT_INSERTED, the driver is not loaded or the card is not currently inserted. You could also look in the HKLM\Drivers\Active area and search for the SDC-CF10G, but it is probably easier to use GetCurrentStatus. 5.10 How do I retrieve the firmware version number? The firmware is built into our driver. You should use our driver version instead (CF10G_STATUS -> driver Version). Americas: +1-800-492-2320 Option 2 10 Laird Technologies

REVISION HISTORY Revision Date Description Initiated By 1.0 29 Jan 2015 Converted from HTML. Initial Release Sue White Americas: +1-800-492-2320 Option 2 11 Laird Technologies