diff src/ui3/mfw/mfw_BtipsMdg.c @ 420:e8ddbb0837ed

src/ui3: initial import of TCS3/LoCosto BMI & MFW code
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 21 Jan 2018 03:09:00 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/ui3/mfw/mfw_BtipsMdg.c	Sun Jan 21 03:09:00 2018 +0000
@@ -0,0 +1,857 @@
+/* =========================================================
+*             Texas Instruments OMAP(TM) Platform Software
+*  (c) Copyright Texas Instruments, Incorporated.  All Rights Reserved.
+*
+*  Use of this software is controlled by the terms and conditions found
+*  in the license agreement under which this software has been supplied.
+* ========================================================== */
+/*
+ $Project name: Basic Bluetooth MMI
+ $Project code:
+ $Module:   Bluetooth BMG MFW
+ $File:       Mfw_Btips.c
+ $Revision:   1.0
+ $Author:   Texas Instruments
+ $Date:       26/06/07
+
+********************************************************************************
+
+ Description:
+
+    This module provides the BTIPS BMG APPlication functionality.
+
+********************************************************************************
+ $History: Mfw_Btips.c
+
+  26/06/07 Sasken original version
+
+ $End
+
+*******************************************************************************/
+
+
+
+
+/*******************************************************************************
+
+                                Include files
+
+*******************************************************************************/
+
+#define ENTITY_MFW
+/* includes */
+
+#include <string.h>
+
+#if defined (NEW_FRAME)
+
+#include "typedefs.h"
+#include "vsi.h"
+#include "pei.h"
+#include "custom.h"
+#include "gsm.h"
+#include "prim.h"
+
+#else
+
+#include "STDDEFS.H"
+#include "custom.h"
+#include "gsm.h"
+#include "vsi.h"
+
+#include "bttypes.h"
+#include "sec.h"
+#include "spp.h"
+#include "osapi.h"
+#include "debug.h"
+#include "btl_mdg.h"
+
+#endif
+
+#ifdef FF_MMI_BTIPS_APP
+
+/* Macro for sending events to UI - meanwhile, trace message to PCO Viewer */
+extern int vsi_o_state_ttrace ( const char * const format, ... );
+#define UI_DISPLAY(s) vsi_o_state_ttrace s
+
+#include "bttypes.h"
+#include "sec.h"
+#include "spp.h"
+#include "osapi.h"
+#include "debug.h"
+//#include "../lineparser.h"
+#include "btl_mdg.h"
+//#include "../app_main.h"
+
+
+/********************************************************************************
+ *
+ * Constants
+ *
+ *******************************************************************************/
+
+/* MDG Application states */
+#define MDGA_SERVER_STATE_NONE			    (0)
+#define MDGA_SERVER_STATE_ENABLED		    (1)
+#define MDGA_SERVER_STATE_DISABLING		    (2)
+#define MDGA_SERVER_STATE_DT_CONNECTED	    (3)
+#define MDGA_SERVER_STATE_MODEM_CONNECTED	(4)
+#define MDGA_SERVER_STATE_CONNECTED		    (5)
+
+/* Security level of the MDG Application */
+#define MDGA_SECURITY_LEVEL (BSL_AUTHENTICATION_IN | BSL_AUTHENTICATION_OUT)
+
+/* Max number of Rx Sync packets - this value will be given to peer serial port
+ * as amount of credits for RFCOMM credit based flow control */
+#define MDGA_MAX_NUM_OF_RX_SYNC_PACKETS     (5)
+
+
+/********************************************************************************
+ *
+ * Types
+ *
+ *******************************************************************************/
+
+/* Structure to keep track of server information */
+typedef struct
+{
+	U8                      state;
+	const BtSecurityLevel   securityLevel;
+	BtlMdgServerContext     *serverContext;
+    BtlMdgServerSettings    serverSettings;
+	SppLineStatus           lineStatus;
+} MdgaServer;
+
+
+/********************************************************************************
+ *
+ * Function prototypes
+ *
+ *******************************************************************************/
+void mfw_btips_mdgInit(void);
+void MDGA_Deinit(void);
+void MDGA_Enable(U8 serverIndex);
+void MDGA_Disable(U8 serverIndex);
+void MDGA_GetSecurityLevel(U8 serverIndex);
+void MDGA_SetSecurityLevel(U8 serverIndex, BtSecurityLevel *securityLevel);
+void MDGA_GetComSettings(U8 serverIndex);
+void MDGA_SetComSettings(U8 serverIndex, SppComSettings *comSettings);
+void MDGA_GetConnectedDevice(U8 serverIndex);
+void MDGA_TerminateDataCall(void);
+
+void mfw_btips_mdgCallback(const BtlMdgCallbackParms *parms);
+static const char *MdgaEventName(BtlMdgServerEvent mdgEvent);
+static const char *MdgaStateName(int state);
+
+
+/********************************************************************************
+ *
+ * Globals
+ *
+ *******************************************************************************/
+
+static MdgaServer mdgaServers[] =
+{
+    {
+     MDGA_SERVER_STATE_NONE, MDGA_SECURITY_LEVEL, NULL,
+     {BTL_SPP_SERVICE_TYPE_DUN,
+      "BTIPS DUN", 
+      {SPP_SERVER_PORT,
+       BTL_SPP_SERVICE_TYPE_DUN,
+       SPP_PORT_DATA_PATH_TX_SYNC | SPP_PORT_DATA_PATH_RX_ASYNC,
+       MDGA_MAX_NUM_OF_RX_SYNC_PACKETS,
+       {SPP_COM_SETTING_BAUDRATE_DEFAULT,
+	   SPP_COM_SETTING_DATA_FORMAT_DEFAULT,
+        SPP_COM_SETTING_FLOW_CONTROL_DEFAULT,
+	   SPP_COM_SETTING_XON_CHAR_DEFAULT,
+	   SPP_COM_SETTING_XOFF_CHAR_DEFAULT,
+        0
+      }
+     },
+     },
+     0
+    }
+};
+
+#define MDGA_NUM_SERVERS (sizeof(mdgaServers) / sizeof(MdgaServer))
+
+
+/********************************************************************************
+ *
+ * Function definitions
+ *
+ *******************************************************************************/
+
+ /*-------------------------------------------------------------------------------
+ * mfw_btips_mdgInit()
+ *
+ *		Initialize application module.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	None.
+ *
+ * Returns:
+ *		None.
+ */
+void mfw_btips_mdgInit()
+{
+    BtStatus status;
+   	U32 idx;
+    MdgaServer *server = &mdgaServers[0];
+
+    Report(("mfw_btips_mdgInit"));
+
+    /* Create and enable all MDG servers */
+    for (idx=0; idx<MDGA_NUM_SERVERS; idx++, server++)
+    {
+        /* Create MDG server */
+        status = BTL_MDG_Create(0,
+                                mfw_btips_mdgCallback,
+                                &server->securityLevel,
+                                &server->serverContext);
+        if (BT_STATUS_SUCCESS != status)
+        {
+	        Report(("MDGA: BTL_MDG_Create() failed for server %s, status %s",
+                    server->serverSettings.serviceName,
+                    pBT_Status(status)));
+        }
+        else
+        {
+            /* Enable MDG server */
+            status = BTL_MDG_Enable(server->serverContext,
+                                    &server->serverSettings);
+
+            if (BT_STATUS_SUCCESS != status)
+            {
+	            Report(("MDGA: BTL_MDG_Enable() failed for server %s, status %s",
+                        server->serverSettings.serviceName,
+                        pBT_Status(status)));
+            }
+            else
+            {
+                server->state = MDGA_SERVER_STATE_ENABLED;
+            }
+        }
+    }
+}
+
+/*-------------------------------------------------------------------------------
+ * MDGA_Deinit()
+ *
+ *		Deinitialize application module.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	None.
+ *
+ * Returns:
+ *		None.
+ */
+void MDGA_Deinit()
+{
+    BtStatus status;
+   	U32 idx;
+    MdgaServer *server = &mdgaServers[0];
+
+    Report(("MDGA_Deinit"));
+
+    /* Disable and destroy all MDG servers */
+    for (idx=0; idx<MDGA_NUM_SERVERS; idx++, server++)
+    {
+        /* Check whether the server was enabled and not in DISABLING state */
+        if ((server->state >= MDGA_SERVER_STATE_ENABLED) &&
+            (MDGA_SERVER_STATE_DISABLING != server->state))
+        {
+            /* Disable MDG server */
+            status = BTL_MDG_Disable(server->serverContext);
+
+            if (BT_STATUS_SUCCESS == status)
+            {
+                /* Destroy MDG server */
+                status = BTL_MDG_Destroy(&server->serverContext);
+
+                if (BT_STATUS_SUCCESS != status)
+                {
+                    Report(("MDGA: BTL_MDG_Destroy() failed for server %s, status %s",
+                            server->serverSettings.serviceName,
+                            pBT_Status(status)));
+                }
+                else
+                {
+                    server->state = MDGA_SERVER_STATE_NONE;
+                }
+            }
+            else if ((BT_STATUS_PENDING == status) || (BT_STATUS_IN_PROGRESS == status))
+            {
+                /* Continue disabling server in mfw_btips_mdgCallback() */
+                server->state = MDGA_SERVER_STATE_DISABLING;
+            }
+            else
+            {
+                Report(("MDGA: BTL_MDG_Disable() failed, status %s", pBT_Status(status)));
+            }
+        }
+    }
+}
+
+/*-------------------------------------------------------------------------------
+ * MDGA_Enable()
+ *
+ *		Processes command 'enable'.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	serverIndex - index of the server.
+ *
+ * Returns:
+ *		None.
+ */
+void MDGA_Enable(U8 serverIndex)
+{
+	BtStatus status;
+   	MdgaServer *server;
+
+   	server = &mdgaServers[serverIndex];
+
+    /* Check validity of the command */
+    if (server->state >= MDGA_SERVER_STATE_ENABLED)
+    {
+	    Report(("MDGA: server %s is already enabled",
+                server->serverSettings.serviceName));
+        return;
+    }
+
+    /* Create MDG server */
+    status = BTL_MDG_Create(0,
+                            mfw_btips_mdgCallback,
+                            &server->securityLevel,
+                            &server->serverContext);
+    if (BT_STATUS_SUCCESS != status)
+    {
+        Report(("MDGA: BTL_MDG_Create() failed, status %s",
+                pBT_Status(status)));
+    }
+    else
+    {
+        /* Enable MDG server */
+        status = BTL_MDG_Enable(server->serverContext,
+                                &server->serverSettings);
+
+        if (BT_STATUS_SUCCESS != status)
+        {
+            Report(("MDGA: BTL_MDG_Enable() failed, status %s",
+                    pBT_Status(status)));
+        }
+        else
+        {
+            server->state = MDGA_SERVER_STATE_ENABLED;
+            UI_DISPLAY(("MDGA: server %s enabled",
+                        server->serverSettings.serviceName));
+        }
+    }
+
+    return;
+}
+
+/*-------------------------------------------------------------------------------
+ * MDGA_Disable()
+ *
+ *		Processes command 'enable'.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	serverIndex - index of the server.
+ *
+ * Returns:
+ *		None.
+ */
+void MDGA_Disable(U8 serverIndex)
+{
+	BtStatus status;
+   	MdgaServer *server = &mdgaServers[serverIndex];
+
+    /* Check validity of the command */
+    if (server->state < MDGA_SERVER_STATE_ENABLED)
+    {
+	    Report(("MDGA: server %s is not enabled",
+                server->serverSettings.serviceName));
+        return;
+    }
+
+    /* Disable MDG server */
+    status = BTL_MDG_Disable(server->serverContext);
+
+    if (BT_STATUS_SUCCESS == status)
+    {
+        /* Destroy MDG server */
+        status = BTL_MDG_Destroy(&server->serverContext);
+
+        if (BT_STATUS_SUCCESS != status)
+        {
+            Report(("MDGA: BTL_MDG_Destroy() failed, status %s",
+                    pBT_Status(status)));
+        }
+        else
+        {
+            server->state = MDGA_SERVER_STATE_NONE;
+	        UI_DISPLAY(("MDGA: server %s disabled",
+                        server->serverSettings.serviceName));
+        }
+    }
+    else if ((BT_STATUS_PENDING == status) || (BT_STATUS_IN_PROGRESS == status))
+    {
+        /* Continue disabling server in mfw_btips_mdgCallback() */
+        server->state = MDGA_SERVER_STATE_DISABLING;
+	    UI_DISPLAY(("MDGA: disabling server %s",
+                    server->serverSettings.serviceName));
+    }
+    else
+    {
+        Report(("MDGA: BTL_MDG_Disable() failed, status %s", pBT_Status(status)));
+    }
+
+    return;
+} 
+
+/*-------------------------------------------------------------------------------
+ * MDGA_GetSecurityLevel()
+ *
+ *		Processes command 'getsec'.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	serverIndex - index of the server.
+ *
+ * Returns:
+ *		None.
+ */
+void MDGA_GetSecurityLevel(U8 serverIndex)
+{
+	BtStatus status;
+	BtSecurityLevel securityLevel;
+   	MdgaServer *server = &mdgaServers[serverIndex];
+ 
+	status = BTL_MDG_GetSecurityLevel(server->serverContext, &securityLevel);
+
+	if (BT_STATUS_SUCCESS == status)
+	{
+		UI_DISPLAY(("UI_EVENT: MDGA got security level %d for server %s",
+			        securityLevel,
+			        server->serverSettings.serviceName));
+	}
+	else
+	{
+		Report(("MDGA: BTL_MDG_GetSecurityLevel() failed for server %s, status %s",
+			     server->serverSettings.serviceName,
+			     pBT_Status(status)));
+	}
+
+	return;
+}
+
+/*-------------------------------------------------------------------------------
+ * MDGA_SetSecurityLevel()
+ *
+ *		Processes command 'setsec'.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	serverIndex - index of the server.
+ *
+ * Returns:
+ *		None.
+ */
+void MDGA_SetSecurityLevel(U8 serverIndex, BtSecurityLevel *securityLevel)
+{
+	BtStatus status;
+   	MdgaServer *server = &mdgaServers[serverIndex];
+ 
+	status = BTL_MDG_SetSecurityLevel(server->serverContext, securityLevel);
+
+	if (BT_STATUS_SUCCESS == status)
+	{
+		UI_DISPLAY(("UI_EVENT: MDGA set security level %d for server %s",
+			        *securityLevel,
+			        server->serverSettings.serviceName));
+	}
+	else
+	{
+		Report(("MDGA: BTL_MDG_SetSecurityLevel() failed for server %s, status %s",
+			     server->serverSettings.serviceName,
+			     pBT_Status(status)));
+	}
+
+	return;
+}
+
+/*-------------------------------------------------------------------------------
+ * MDGA_GetComSettings()
+ *
+ *		Processes command 'getcomset'.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	serverIndex - index of the server.
+ *
+ * Returns:
+ *		None.
+ */
+void MDGA_GetComSettings(U8 serverIndex)
+{
+	BtStatus status;
+	SppComSettings comSettings;
+   	MdgaServer *server = &mdgaServers[serverIndex];
+ 
+	status = BTL_MDG_GetComSettings(server->serverContext, &comSettings);
+
+	if (BT_STATUS_SUCCESS == status)
+	{
+		UI_DISPLAY(("UI_EVENT: MDGA got com settings for server %s -", server->serverSettings.serviceName));
+		UI_DISPLAY(("UI_EVENT: MDGA baudrate 0x%02x, data format 0x%02x, flow control 0x%02x, XON 0x%02x, XOFF 0x%02x",
+				    comSettings.baudRate,
+				    comSettings.dataFormat,
+				    comSettings.flowControl,
+				    comSettings.xonChar,
+				    comSettings.xoffChar));
+	}
+	else
+	{
+		Report(("MDGA: BTL_MDG_GetComSettings() failed for server %s, status %s",
+			     server->serverSettings.serviceName,
+			     pBT_Status(status)));
+	}
+
+	return;
+}
+
+/*-------------------------------------------------------------------------------
+ * MDGA_SetComSettings()
+ *
+ *		Processes command 'setcomset'.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	serverIndex - index of the server.
+ *
+ * Returns:
+ *		None.
+ */
+void MDGA_SetComSettings(U8 serverIndex, SppComSettings *comSettings)
+{
+	BtStatus status;
+   	MdgaServer *server = &mdgaServers[serverIndex];
+
+	status = BTL_MDG_SetComSettings(server->serverContext, comSettings);
+
+	if (BT_STATUS_SUCCESS == status)
+	{
+		UI_DISPLAY(("UI_EVENT: MDGA set com settings for server %s -", server->serverSettings.serviceName));
+		UI_DISPLAY(("UI_EVENT: MDGA baudrate 0x%02x, data format 0x%02x, flow control 0x%02x, XON 0x%02x, XOFF 0x%02x, parm mask 0x%04x",
+				    comSettings->baudRate,
+				    comSettings->dataFormat,
+				    comSettings->flowControl,
+				    comSettings->xonChar,
+				    comSettings->xoffChar,
+				    comSettings->parmMask));
+	}
+	else if ((BT_STATUS_PENDING != status) && (BT_STATUS_IN_PROGRESS != status))
+	{
+		Report(("MDGA: BTL_MDG_GetComSettings() failed for server %s, status %s",
+			     server->serverSettings.serviceName,
+			     pBT_Status(status)));
+	}
+
+	return;
+}
+
+/*-------------------------------------------------------------------------------
+ * MDGA_GetConnectedDevice()
+ *
+ *		Processes command 'getcondev'.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	serverIndex - index of the server.
+ *
+ * Returns:
+ *		None.
+ */
+void MDGA_GetConnectedDevice(U8 serverIndex)
+{
+	BtStatus status;
+	BD_ADDR bdAddr;
+	char addr[BDADDR_NTOA_SIZE];
+   	MdgaServer *server = &mdgaServers[serverIndex];
+ 
+	status = BTL_MDG_GetConnectedDevice(server->serverContext, &bdAddr);
+
+	if (BT_STATUS_SUCCESS == status)
+	{
+		UI_DISPLAY(("UI_EVENT: MDGA server %s is connected to %s",
+			       server->serverSettings.serviceName,
+			       bdaddr_ntoa((const BD_ADDR *)&bdAddr, addr)));
+	}
+	else
+	{
+		Report(("MDGA: MdgaGetConnectedDevice() failed for server %s, status %s",
+			     server->serverSettings.serviceName,
+			     pBT_Status(status)));
+	}
+
+	return;
+}
+
+/*-------------------------------------------------------------------------------
+ * MDGA_TerminateDataCall()
+ *
+ *		Processes command 'termdatacall'.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	None.
+ *
+ * Returns:
+ *		None.
+ */
+void MDGA_TerminateDataCall()
+{
+    return;
+}
+
+/*-------------------------------------------------------------------------------
+ * mfw_btips_mdgCallback()
+ *
+ *		Callback function for receiving BTL MDG events.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	parms - received event.
+ *
+ * Returns:
+ *		None.
+ */
+
+void mfw_btips_mdgCallback(const BtlMdgCallbackParms *parms)
+{
+	BtStatus status;
+    MdgaServer *server;
+	int idx;
+
+	TRACE_EVENT_P1("mfw_btips_mdgCallback - %d", parms->event);
+	/* Find a server according to given BTL MDG context */
+	for (idx = 0, server=&mdgaServers[0]; idx<MDGA_NUM_SERVERS; idx++, server++)
+	{
+		if (server->serverContext == parms->serverContext)
+		{
+			break;
+		}
+	}
+
+	/* Check whether we found a port in array of clients */
+	if (MDGA_NUM_SERVERS == idx)
+	{
+
+		/* Server is not found */
+		Report(("MDGA: server's context is unknown"));
+		return;
+	}
+
+	/* Display received event and server's service name */
+	UI_DISPLAY(("UI_EVENT: MDGA received event %s for server %s",
+                MdgaEventName(parms->event),
+                server->serverSettings.serviceName));
+
+	/* Change port's state according to event */
+	switch(parms->event)
+	{
+		case BTL_MDG_SERVER_EVENT_ENABLED:
+			server->state = MDGA_SERVER_STATE_ENABLED;
+			break;
+
+		case BTL_MDG_SERVER_EVENT_DISABLED:
+            if (MDGA_SERVER_STATE_DISABLING == server->state)
+            {
+            /* Destroy MDG server */
+            status = BTL_MDG_Destroy(&server->serverContext);
+
+                if (BT_STATUS_SUCCESS != status)
+                {
+                    Report(("MDGA: BTL_MDG_Destroy() failed, status %s",
+                            pBT_Status(status)));
+                }
+                else
+                {
+                    server->state = MDGA_SERVER_STATE_NONE;
+	                UI_DISPLAY(("MDGA: server %s disabled",
+                                server->serverSettings.serviceName));
+                }
+            }
+            break;
+
+		case BTL_MDG_SERVER_EVENT_DT_CONNECTED:
+            if (MDGA_SERVER_STATE_MODEM_CONNECTED == server->state)
+            {
+			    server->state = MDGA_SERVER_STATE_CONNECTED;
+            }
+            else
+            {
+			    server->state = MDGA_SERVER_STATE_DT_CONNECTED;
+            }
+			break;
+
+		case BTL_MDG_SERVER_EVENT_DT_DISCONNECTED:
+            if (MDGA_SERVER_STATE_CONNECTED == server->state)
+            {
+			    server->state = MDGA_SERVER_STATE_MODEM_CONNECTED;
+            }
+            else if (MDGA_SERVER_STATE_DISABLING != server->state)
+            {
+			    server->state = MDGA_SERVER_STATE_ENABLED;
+            }
+			break;
+
+		case BTL_MDG_SERVER_EVENT_MODEM_CONNECTED:
+            if (MDGA_SERVER_STATE_DT_CONNECTED == server->state)
+            {
+			    server->state = MDGA_SERVER_STATE_CONNECTED;
+            }
+            else
+            {
+			    server->state = MDGA_SERVER_STATE_DT_CONNECTED;
+            }
+			break;
+
+		case BTL_MDG_SERVER_EVENT_MODEM_DISCONNECTED:
+            if (MDGA_SERVER_STATE_CONNECTED == server->state)
+            {
+			    server->state = MDGA_SERVER_STATE_DT_CONNECTED;
+            }
+            else if (MDGA_SERVER_STATE_DISABLING != server->state)
+            {
+			    server->state = MDGA_SERVER_STATE_ENABLED;
+            }
+			break;
+
+		default:
+			break;
+	}
+
+	/* Display server's new state */
+	Report(("MDGA: %s server's state %s",
+           server->serverSettings.serviceName,
+           MdgaStateName(server->state)));
+}
+
+/*-------------------------------------------------------------------------------
+ * MdgaEventName()
+ *
+ *		Gets event's name.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	mdgEvent - event.
+ *
+ * Returns:
+ *		String with event's name.
+ */
+static const char *MdgaEventName(BtlMdgServerEvent mdgEvent)
+{
+    switch (mdgEvent)
+    {
+        case BTL_MDG_SERVER_EVENT_INITIALIZED:
+            return "BTL_MDG_SERVER_EVENT_INITIALIZED";
+
+        case BTL_MDG_SERVER_EVENT_DEINITIALIZED:
+            return "BTL_MDG_SERVER_EVENT_DEINITIALIZED";
+
+        case BTL_MDG_SERVER_EVENT_ENABLED:
+            return "BTL_MDG_SERVER_EVENT_ENABLED";
+
+        case BTL_MDG_SERVER_EVENT_DISABLED:
+            return "BTL_MDG_SERVER_EVENT_DISABLED";
+
+        case BTL_MDG_SERVER_EVENT_DT_CONNECTED:
+            return "BTL_MDG_SERVER_EVENT_DT_CONNECTED";
+
+        case BTL_MDG_SERVER_EVENT_DT_DISCONNECTED:
+            return "BTL_MDG_SERVER_EVENT_DT_DISCONNECTED";
+
+        case BTL_MDG_SERVER_EVENT_MODEM_CONNECTED:
+            return "BTL_MDG_SERVER_EVENT_MODEM_CONNECTED";
+
+        case BTL_MDG_SERVER_EVENT_MODEM_DISCONNECTED:
+            return "BTL_MDG_SERVER_EVENT_MODEM_DISCONNECTED";
+
+        default:
+            return "MDGA: server received unknown event";
+    }
+}
+
+/*-------------------------------------------------------------------------------
+ * MdgaStateName()
+ *
+ *		Gets state's name.
+ *
+ * Type:
+ *		Synchronous.
+ *
+ * Parameters:
+ *     	state - server's state.
+ *
+ * Returns:
+ *		String with state's name.
+ */
+static const char *MdgaStateName(int state)
+{
+    switch (state)
+    {
+        case MDGA_SERVER_STATE_NONE:
+            return "MDGA_SERVER_STATE_NONE";
+
+        case MDGA_SERVER_STATE_ENABLED:
+            return "MDGA_SERVER_STATE_ENABLED";
+
+        case MDGA_SERVER_STATE_DISABLING:
+            return "MDGA_SERVER_STATE_DISABLING";
+
+        case MDGA_SERVER_STATE_DT_CONNECTED:
+            return "MDGA_SERVER_STATE_DT_CONNECTED";
+
+        case MDGA_SERVER_STATE_MODEM_CONNECTED:
+            return "MDGA_SERVER_STATE_MODEM_CONNECTED";
+
+        case MDGA_SERVER_STATE_CONNECTED:
+            return "MDGA_SERVER_STATE_CONNECTED";
+
+        default:
+            return "MDG server unknown state";
+    }
+}
+
+#endif
+