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

📄 handle_system.c

📁 pbap_client:bluetooth 可查询带有PBAP功能手机的Phonebook
💻 C
字号:
/****************************************************************************

DESCRIPTION
	Implementation for handling system messages and functionality
	
FILE
	handle_system.c
	
*/

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

#include <print.h>
#include <vm.h>
#include <stream.h>

#include "main.h"
#include "handle_system.h"
#include "pbap_client_parse.h"

/* Message Handler Prototypes */
static void handleMoreData(applicationTaskData *pTask, Source pSrc);
static void handleMoreSpace(applicationTaskData *pTask, Sink pSink);


void handleSystemMessages(applicationTaskData *pTask, MessageId pId, Message pMessage)
{
	switch (pId)
	{
	case MESSAGE_MORE_DATA:
			handleMoreData(pTask, ((MessageMoreData*)pMessage)->source);
			break;
	case MESSAGE_MORE_SPACE:
			handleMoreSpace(pTask, ((MessageMoreSpace*)pMessage)->sink);
			break;
		
 		default:
		PRINT(("Unhandled System Message\n"));
		break;
	}
}

/* Message Handlers */

static void handleMoreData(applicationTaskData *pTask, Source pSrc)
{
    uint16 lLen = SourceSize(pSrc);
	
	PRINT(("MESSAGE_MORE_DATA\n"));

	if ((pSrc == StreamUartSource()) && (lLen > 0))
	{ /* Uart */
				
		PRINT(("    Uart\n"));
		
#if 1
{
	const uint8 *s = SourceMap(pSrc);
	uint16 c;
	PRINT(("    <"));
	for (c=0; c<lLen; c++)
	{
		if (s[c]>=' ')
		{
			PRINT(("%c",s[c]));
		}
		else
		{
			PRINT(("."));
		}
	}
	PRINT((">\n"));
}
#endif

	    /* Only bother parsing if there is something to parse */
	    while (lLen > 0)
	    {
			/* Keep parsing while we have data in the buffer */
	        if (!pbap_parseSource(pSrc, &pTask->task))
    	        break;

			/* Check we have more data to parse */
    	    lLen = SourceSize(pSrc);
	    }
	}
	else
	{ /* Unknown source */
		PRINT(("    Unknown/Empty Source \n"));
		SourceDrop(pSrc, lLen);
	}
}

static void handleMoreSpace(applicationTaskData *pTask, Sink pSink)
{
	PRINT(("MESSAGE_MORE_SPACE\n"));
}

⌨️ 快捷键说明

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