Application Overview

TCP(Transmission control protocol) is a connection-oriented protocol for transferring data reliably in either direction between a pair of users.

TCP server waits for the connections from TCP clients and accepts Incoming TCP connections.

  • The TCP server application demonstrates how Quessence acts as a TCP server socket and receives data from client. 
    Following are the procedure steps
  • Connect the Device to an Access point and get IP address through DHCP or with static IP.
  • Client socket at Access point has to be opened by means of application program like iperf.
  • TCP server socket would be waiting for the client socket to establish connection.
  • Once the connection is established, Data is received on the socket.

Click here  to download the source code for the TCP Server Socket Application

Setup Required

  1. Quessence
  2. 32/64-bit PC with minimum 2GB RAM and USB port for power, downloading and debugging software
  3. Windows 7/8/8.1/10 Operating System. It should have the Keil IDE and the CMSIS DAP drivers installed on it. Refer to installation section for download and installation steps.
  4. A windows machine (as a WiFi Station) with any TCP server application (This example uses iperf)

Configure the Application

Open IDE and edit  tcp_server.c file available in the path TCP_Server/Applications to make the following changes

Macro Value Description
SSID
   “”
This macro refers to the SSID name of your Access point to connect.
CHANNEL_NO

 
This macro refers to particular channel used to scan by the device.If channel is 0 then it will scan all channels.
SECURITY_TYPE
    
This macro refers to the security type of Access point to connect.Supports security types like OPEN,WEP,WPA,WPA2
PSK
   “”
This macro refers to the Pre-shared key of the connected Access point.
DEVICE_PORT
    
This macro is to configure port number to the device.
NUMBER_OF_PACKETS

 
This macro is to configure number of packets to send
RECV_BUFFER_SIZE

 
This macro is to configure the size of data in each packet.
GLOBAL_BUFF_LEN
       8000
This macro is to configure Application memory length which is required by the driver
DHCP_MODE

 

To configure IP for configured station through dhcp set DHCP_MODE  to 1, else configure to 0

NOTE – In this application we are not providing the facility to configure the Access point’s IP parameters

To configure static IP address

IP address to be configured to the device should be in long format and in little endian byte order.

Example: 1.To configure “192.168.10.101” as IP address,update the macro DEVICE_IP as 0x650AA8C0.

               2. To configure “192.168.10.1” as Gateway,update the macro  GATEWAY as 0x010AA8C0.

               3.To configure “255.255.255.0” as network mask,update the macro NETMASK as 0x00FFFFFF 

#define  DEVICE_IP    
#define  GATEWAY      
#define  NETMASK      

 

A sample configuration is shown in the below snapshot

Update the WLAN configuration file

Check the following macros of rsi_wlan_config.h file available in the path TCP_Server/Libraries/Wireless/include

 

Macro Value
CONCURRENT_MODE RSI_DISABLE
RSI_FEATURE_BIT_MAP FEAT_SECURITY_OPEN
RSI_TCP_IP_BYPASS RSI_DISABLE
RSI_TCP_IP_FEATURE_BIT_MAP

(TCP_IP_FEAT_DHCPV4_CLIENT)

RSI_CUSTOM_FEATURE_BIT_MAP 0
RSI_BAND RSI_BAND_2P4GHZ

 

Execute the Application

  1. Connect Quessence device to the Windows PC running Keil IDE.
  2. Configure the macros in the files located at tcp_server.c and rsi_wlan_config.h as mentioned above.

  3. Build and launch the application.
  4. After execution of program, Quessence connects to Access point and Application opens server socket in Quessence .

5. Open TCP client socket using iperf ( giving the command iperf_demo.exe –c -p -i 1 –t 100) available in Tcp_server application folder.

6. Quessence will receive the number of packets pre-configured in NUMBER_OF_PACKETS.