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

📄 state.c

📁 pbap_client:bluetooth 可查询带有PBAP功能手机的Phonebook
💻 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 appCntingStr[] = {'A','p','p','S','t','a','t','e','A','p','p','C','o','n','n','e','c','t','i','n','g'};
static const uint8 appCntedStr[] = {'A','p','p','S','t','a','t','e','A','p','p','C','o','n','n','e','c','t','e','d'};
static const uint8 appDisCntingStr[] = {'A','p','p','S','t','a','t','e','A','p','p','D','i','s','c','o','n','n','e','c','t','i','n','g'};
static const uint8 appSetPbStr[] = {'A','p','p','S','t','a','t','e','S','e','t','P','h','o','n','e','b','o','o','k'};
static const uint8 appGetVCLStr[] = {'A','p','p','S','t','a','t','e','G','e','t','V','C','a','r','d','L','i','s','t'};
static const uint8 appGetVCEStr[] = {'A','p','p','S','t','a','t','e','G','e','t','V','C','a','r','d','E','n','t','r','y'};
static const uint8 appDnLdPbStr[] = {'A','p','p','S','t','a','t','e','D','o','w','n','l','o','a','d','P','h','o','n','e','b','o','o','k'};
#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(appCntingStr),
								STATE_LIST_ENTRY(appCntedStr),
								STATE_LIST_ENTRY(appDisCntingStr),
								STATE_LIST_ENTRY(appSetPbStr),
								STATE_LIST_ENTRY(appGetVCLStr),
								STATE_LIST_ENTRY(appGetVCEStr),
								STATE_LIST_ENTRY(appDnLdPbStr)
							};

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 + -