/*
 *  Copyright (c) 1996-2007 Digi International Inc., All Rights Reserved
 *
 *  This software contains proprietary and confidential information of Digi
 *  International Inc.  By accepting transfer of this copy, Recipient agrees
 *  to retain this software in confidence, to prevent disclosure to others,
 *  and to make no use of this software other than that for which it was
 *  delivered.  This is an unpublished copyrighted work of Digi International
 *  Inc.  Except as permitted by federal law, 17 USC 117, copying is strictly
 *  prohibited.
 *
 *  Restricted Rights Legend
 *
 *  Use, duplication, or disclosure by the Government is subject to
 *  restrictions set forth in sub-paragraph (c)(1)(ii) of The Rights in
 *  Technical Data and Computer Software clause at DFARS 252.227-7031 or
 *  subparagraphs (c)(1) and (2) of the Commercial Computer Software -
 *  Restricted Rights at 48 CFR 52.227-19, as applicable.
 *
 *  Digi International Inc. 11001 Bren Road East, Minnetonka, MN 55343
 *
 *
 * bsp_net.h This file defines BSP feature variables for network configuration
 *
 *
 * Edit History
 *
 * Date      Initials       Change Description
 *
 */

#ifndef BSP_SERVICES_H
#define BSP_SERVICES_H

#include <Npttypes.h>
#include "bsp_net.h"


#ifdef __cplusplus
extern "C"
{
#endif

/*
 * ENABLE_ADDP_SERVER is used to activate the ADDP server.
 * 
 * Set ENABLE_ADDP_SERVER to FALSE to disable the ADDP server.
 *
 * @external
 * @category Networking:ADDPConfiguration
 * @since 6.2
*/
#define ENABLE_ADDP_SERVER FALSE

#if (ENABLE_ADDP_SERVER == TRUE) && (BSP_WANT_WIRELESS == FALSE) && (BSP_WANT_ETHERNET == FALSE)
#error ADDP Server can be used only when Ethernet or wireless is enabled
#endif

#if	0
/*
 * This structure defines the internals of the GUID data structure.
 *
 * @since 6.2
 * @external
 * @category Networking:ADDPConfiguration
 * @param Data1	Specifies the first 8 hexadecimal digits of the GUID. 
 * @param Data2	Specifies the first group of 4 hexadecimal digits of the GUID. 
 * @param Data3	Specifies the second group of 4 hexadecimal digits of the GUID. 
 * @param Data4	Array of eight elements. The first two elements contain the third group of 4 hexadecimal digits of the GUID. The remaining six elements contain the final 12 hexadecimal digits of the GUID. 
 *
*/
typedef struct _GUID{
   unsigned long	Data1;
   unsigned short	Data2;
   unsigned short	Data3;
   unsigned char	Data4[8];
} GUID, UUID;
#endif

/*
 * ADDP_OEM_GUID Is the unique GUID assigned to this user.  This value is used
 * by ADDP to communicate with devices made by this user.  Currently set to 
 * Digi International GUID.
 * 
 * This value should be modified by the user to reflect their own GUID.
 * The GUID value is broken up based on the GUID structure defined above.
 *
 * @external
 * @category Networking:ADDPConfiguration
 * @since 6.2
 */

#define ADDP_OEM_GUID  {0xbf6db409, 0xc83d, 0x44a3, {0xa3, 0x6d, 0x21, 0x79, 0x7d, 0x2f, 0x73, 0xf9}}

/*
 * ADDP_COOKIE Is the magic cookie.  This value is used by ADDP to communicate
 * with devices made by this user.  Currently set to DVKT.
 * 
 * This value should match the value defined in the ADDP client library.
 *
 * @external
 * @category Networking:ADDPConfiguration
 * @since 6.2
 */
#define ADDP_COOKIE		0x44564B54


/*
 * ADDP_HARDWARE_NAME Is the name for the hardware.  
 * 
 * This value should be modified by the user to reflect their hardware name.
 *
 * @external
 * @category Networking:ADDPConfiguration
 * @since 6.2
 */

#define ADDP_HARDWARE_NAME  "Digi Connect ME"

/*
 * ADDP_FEP_REV Is the FEP revision value.
 * 
 * The value should be modified by the user to represent the FEP revision for 
 * this application.
 *
 * @external
 * @category Networking:ADDPConfiguration
 * @since 6.2
 */

#define ADDP_FEP_REV		"NET+OS"

/*
 * ADDP_HARDWARE_REV Is the hardware revision of the device.
 * 
 * The value should be modified by the user to represent the hardware revision
 * for this device.
 *
 * @external
 * @category Networking:ADDPConfiguration
 * @since 6.2
 */

#define ADDP_HARDWARE_REV	1

/*ad*
 * Set this to TRUE to include iDigi Device Protocol.
 * BSP will start NET+OS iDigi Device Protocol process.
 * If this is set to FALSE, BSP will not start iDigi Protocol
 * and application will have to setup 
 * and call iDigi APIs to start iDigi.
 *
 * @since 7.5
 * @external
 * @category Networking:iDigi
 *
 * @see @link APP_IDIGI_INIT
*ad*/
#define BSP_IDIGI_ENABLED       FALSE

/*ad*
 * IDIGI_DNS_ADDRESS Is the DNS name of the iDigi server.  
 * 
 * This value should be modified by the user to DNS name of the iDigi server.
 *
 * @external
 * @category Networking:iDigi
 * @since 7.5
 *ad*/

#define IDIGI_DNS_ADDRESS  "developer.idigi.com"

/*ad*
 * IDIGI_CONNECT_METHOD Is the connect method (SSL or TCP) to the iDigi server.  
 * 
 * This value should be modified by the user to select one of these methods to
 * connect to the iDigi server.
 * 
 * NA_MGMT_NETWORK_CONNECT_METHOD_MT
 * NA_MGMT_NETWORK_CONNECT_METHOD_MT_SSL
 *
 * @external
 * @category Networking:iDigi
 * @since 7.5
 *ad*/

#define IDIGI_CONNECT_METHOD  NA_MGMT_NETWORK_CONNECT_METHOD_MT

/*ad*
 * IDIGI_DEVICE_NAME is the device name of the system.
 * 
 * The device name is shown in the iDigi server and is also used to 
 * identify the system by iDigi server. 
 * 
 * @external
 * @category Networking:iDigi
 * @since 7.5
 *ad*/
#define IDIGI_DEVICE_NAME     "Digi Connect ME"

/*ad*
 * IDIGI_VENDOR_ID is an unique vendor id of the system
 * 
 * This should be set to the vendor id that is generated during
 * iDigi registration. It's used to identify the system by 
 * iDigi server.
 *
 * It's 4 bytes value.
 * 
 * @external
 * @category Networking:iDigi
 * @since 7.5
 *ad*/
#define IDIGI_VENDOR_ID     0xFE080000

#ifdef DOTNETMF
#undef  ENABLE_ADDP_SERVER
#define ENABLE_ADDP_SERVER       FALSE
#endif


#ifdef __cplusplus
}
#endif


#endif /* BSP_SERVICES_H */

