⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 state.c

📁 pbap_server:bluetooth 可供带有PBAP功能bluetooth手机使用
💻 C
字号:
/****************************************************************************

DESCRIPTION
	State management functionality
	
FILE
	state.c
*/


/****************************************************************************
    Header files
*/

#include <print.h>
#include <panic.h>

#include "main.h"
#include "state.h"

#if DEBUG_PRINT_ENABLED

typedef struct
{
	const uint8 *str;
	uint16 len;
} stateDebugNames;

static const uint8 unInitStr[] = {'A','p','p','S','t','a','t','e','U','n','i','n','i','t','i','a','l','i','s','e','d'};
static const uint8 conInitStr[] = {'A','p','p','S','t','a','t','e','C','o','n','I','n','i','t','e','d'};
static const uint8 appIdleStr[] = {'A','p','p','S','t','a','t','e','A','p','p','I','d','l','e'};
static const uint8 appConnectingStr[] = {'A','p','p','S','t','a','t','e','C','o','n','n','e','c','t','i','n','g'};
static const uint8 appConnectedStr[] = {'A','p','p','S','t','a','t','e','C','o','n','n','e','c','t','e','d'};
static const uint8 appPullvCardListStr[] = {'A','p','p','S','t','a','t','e','P','u','l','l','v','C','a','r','d','L','i','s','t'};
static const uint8 appPullvCardEntryStr[] = {'A','p','p','S','t','a','t','e','P','u','l','l','v','C','a','r','d','E','n','t','r','y'};
static const uint8 appPullPhonebookStr[] = {'A','p','p','S','t','a','t','e','P','u','l','l','P','h','o','n','e','b','o','o','k'};
static const uint8 appPullPhonebookSizeStr[] = {'A','p','p','S','t','a','t','e','P','u','l','l','P','h','o','n','e','b','o','o','k','S','i','z','e'};

#define STATE_LIST_ENTRY(i) {(i), sizeof((i))}

static const stateDebugNames gStateDebugNamesList[] = 
							{ 
								STATE_LIST_ENTRY(unInitStr),
								STATE_LIST_ENTRY(conInitStr),
								STATE_LIST_ENTRY(appIdleStr),
								STATE_LIST_ENTRY(appConnectingStr),
								STATE_LIST_ENTRY(appConnectedStr),
								STATE_LIST_ENTRY(appPullvCardListStr),
								STATE_LIST_ENTRY(appPullvCardEntryStr),
								STATE_LIST_ENTRY(appPullPhonebookStr),
								STATE_LIST_ENTRY(appPullPhonebookSizeStr)
							};

static void statePrintString(app_states state)
{
	uint16 lLen = gStateDebugNamesList[state].len;
	uint16 lCnt;
	
	for (lCnt = 0; lCnt<lLen; lCnt++)
	{
		PRINT(("%c",gStateDebugNamesList[state].str[lCnt]));
	}
}
							
static void stateLogStateChange(app_states pOldState, app_states pNewState)
{
	PRINT(("  Set State - From 0x%d [",pOldState));
	statePrintString(pOldState);
	PRINT(("] : To 0x%d [",pNewState));
	statePrintString(pNewState);
	PRINT(("]\n"));
}

#else

#define stateLogStateChange(a,b)

#endif

void setState(app_states *pState, app_states pNewState)
{
	if ((pNewState >= AppStateUninitialised) && (pNewState < AppStateEndOfList))
	{
		stateLogStateChange(*pState, pNewState);
		*pState = pNewState;
	}
	else
	{
		PRINT(("  Set State - From 0x%d : To 0x%d\n",*pState,pNewState));
		PRINT(("    INVALID STATE\n"));
		Panic();
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -