/**
 * \file eip_ndk.h
 * \brief Header file for ndk related functionalities
 *
 * \copyright Copyright (c) 2012 Texas Instruments Incorporated ALL RIGHTS RESERVED
 *
*/
#ifndef EIP_NDK_H_
#define EIP_NDK_H_

#include <ti\ndk\inc\netmain.h>
#include <ti\ndk\inc\stkmain.h>
#include <ti\ndk\inc\usertype.h>
#include"eip_types.h"
#include "osdrv_spiflash.h"

EIP_VOID  DisableDhcpClient();
/**
 *  \name ConfigureDhcpClient
 *  \brief The function starts DHCP client service
 */
EIP_VOID ConfigureDhcpClient();
/**
 *  \name RemoveIpAddress
 *  \brief The function is used to remove Assigned IP adddress.
 *
 */
EIP_VOID RemoveIpAddress();
/**
 *  \name AddIpAddress
 *  \brief The function is used to remove Add a specific IP adddress.
 *
 */
EIP_BOOL AddIpAddress(EIP_DWORD IPAddress);

/**
 *  \name ConvertIPEndianness
 *  \brief The function changes the endianness of the IP Address
 *  \param Pointer to IP Address
 *  \return none
 */
EIP_VOID ConvertIPEndianness(EIP_DWORD* dwIPAddress);

/**
 *  \name AssignUserIP
 *  \brief The function receives IP Address from User and assign it to the device.
 *  \param none
 *  \return none
 *
 */
EIP_BOOL AssignUserIP();
/**
 *  \name GetCurrentIP
 *  \brief The function returns the IP addreses assigned
 *  \param ipAddr pointer where ipaddress needs to be stored
 *  \return EIP_TRUE on success,EIP_FALSE if ip is not assigned
 *
 */
EIP_BOOL GetCurrentIP(EIP_CHAR*ipAddr);
/**
 *  \name IsValidIP
 *  \brief The function is used to validate an IP adddress.
 *  \param ip_str pointer to IP address
 *  \return EIP_TRUE on success,EIP_FALSE if not a valid ip
 *
 */
int IsValidIP(const char *ip_str);
/**
 *  \name GetUserIP
 *  \brief Receives the Uart input from the User
 *  \param Pointer to IP Address
 *  \return EIP_TRUE on successfully receiving IP,else EIP_FALSE
 */
EIP_BOOL GetUserIP(char * chAddr);

void DisplayMacid();
void DisplayApplicationDetails();
void DisplayIPDetails();

#endif /* EIP_NDK_H_ */
