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

📄 msg.c

📁 基于ARM的触摸屏幕的驱动wangqu 一定能用
💻 C
字号:
/********************************************************************

** 文件名: msg.c

** Copyright (c) 2001-2002  深圳市泛海三江电子有限公司开发部
   All Rights Reserved.

** 描 述:   任务之间消息内存分配和消息结构定义

** 创建人: Huang Hongjun

** 创建日期: 2002.5 

** 版 本:   1.0

** 修改记录:

   修改人       修改日期        地点          修改内容

********************************************************************/

#include "..\UCOS-II\includes.h"
#include "msg.h"



#define MAX_MSG_COUNT	15000
#define NULL 0

STRU_MSG88 stc_StruMsg88Buff[MAX_MSG_COUNT];
OS_MEM *stc_pOSMsgMem= NULL;

STRU_MSG88 g_Stru_MsgResetPrepare;

#define ERROR_FREE_MSG_MEM		1

const STRU_FAULT_TYPE_DESC g_acStru_FaultTypeDesc[] =
{
	{STID_FTC_MISS,"丢失"},
	{STID_FTC_MODULE_OPEN,"断路"},
	{STID_FTC_MODULE_SHORT,"短路"},
	{STID_FTC_KZJ_LD_DEVICE_FAULT,"设备故障"},
	{STID_FTC_MAKETYPE_UNMATCH,"类型不符"},
	{STID_FTC_LOOP_SHORT,"回路短路"},
	{STID_FTC_IOB_COMM_FAULT,"接口板通讯故障"},
	{STID_FTC_HOST_COMM_FAULT,"主机通讯故障"},
	{STID_FTC_FSD_COMM_FAULT,"复示盘通讯故障"},
	{STID_FTC_IOBCAN_FAULT,"接口板CAN故障"},
	{STID_FTC_HOSTCAN_FAULT,"主机CAN故障"},
	{STID_FTC_FSDCAN_FAULT,"复示盘CAN故障"},
	{STID_FTC_POWER_FAULT,"电源故障"},
	{STID_FTC_PRINTER_FAULT,"打印机故障"}
};


INT32U SYS_CreateMsg88(void)
{
	INT8U ucError;
	//INT23U ulError;

	stc_pOSMsgMem = OSMemCreate((void *)stc_StruMsg88Buff,MAX_MSG_COUNT,sizeof(STRU_MSG88),&ucError);

	return ucError;
}

PSTRU_MSG88 SYS_AllocMsg88(INT32U *ulError)
{
	void *pVoid;
	INT8U ucError;
	PSTRU_MSG88 pMsg = NULL;

	if(stc_pOSMsgMem == NULL)  return NULL;
	
	pVoid = OSMemGet(stc_pOSMsgMem,&ucError);
	
	*ulError = ucError;
	if(ucError == OS_NO_ERR)
	{
		pMsg = (PSTRU_MSG88)pVoid;
	}

	return pMsg;
}


INT32U SYS_FreeMsg88(PSTRU_MSG88 pMsg88)
{
	INT32U ulError = ERROR_FREE_MSG_MEM;
	if(stc_pOSMsgMem != NULL)
	{
		ulError =  OSMemPut(stc_pOSMsgMem, (void *)pMsg88);
	}

	return ulError;
}

void SYS_TaskMessageQueue_ClearAll(OS_EVENT *pStru_MsgQ)
{
	INT32U ulMsgID;
	void *pMsg;
	STRU_MSG88 *pMsg88;
	
#ifdef _DEBUG
	CAN_ASSERT(pStru_MsgQ);
#endif

	while(1)
	{
		pMsg = OSQAccept(pStru_MsgQ);
		if(!pMsg)
		{
			break;
		}

		ulMsgID = *(INT32U *)pMsg;

		switch(ulMsgID)
		{
			case MSGID_HARDWARE_RESET:
			case MSGID_SOFTWARE_RESET:
			case MSGID_SYSTEM_MUTE:
			//case MSGID_SELFCHECK:
			case MSGID_ISOLATION:
			case MSGID_GENERAL_LD_ENABLE:
			case MSGID_REMOTESOUND_LD_ENABLE:
			case MSGID_ZXSK_LD_ENABLE:
			case MSGID_KZJLD_LD_ENABLE:
			case MSGID_HARDWARE_RESET_FROMOTHERHOST:
			case MSGID_SOFTWARE_RESET_FROMOTHERHOST:
			case MSGID_SYSTEM_MUTE_FROMOTHERHOST:
			//case MSGID_SELFCHECK_FROMOTHERHOST:
			case MSGID_ISOLATION_FROMOTHERHOST:
			case MSGID_GENERAL_LD_ENABLE_FROMOTHERHOST:
			case MSGID_REMOTESOUND_LD_ENABLE_FROMOTHERHOST:
			case MSGID_ZXSK_LD_ENABLE_FROMOTHERHOST:
			case MSGID_KZJLD_LD_ENABLE_FROMOTHERHOST:
				
			case MSGID_RESET_PREPARE:

			{
				OSQPostFront(pStru_MsgQ, pMsg);
				return;
			}
			default:
				break;
		}
		
		if( (ulMsgID != 0) && !( ulMsgID & MSGID_NOFREE_FIRST ) )
		{
			pMsg88 = (STRU_MSG88 *)pMsg;
			SYS_FreeMsg88(pMsg88);
		}
	}

	return;
}

void SYS_PostResetPrepareMessage(void)
{
	g_Stru_MsgResetPrepare.ulMsgID = MSGID_RESET_PREPARE;
	//g_Stru_MsgResetPrepare.pOS_MsgQ = 0;

	

}

//add by wangjq on 020928
INT8U *SM_Fault_GetTypeStrByID(INT8U ucFaultID,INT8U *pucBuffer)
{
	INT8U ucFor;
	//INT8U ucGot = NULL;
	INT16U usArrSize = 0;

	usArrSize = sizeof(g_acStru_FaultTypeDesc) / sizeof(g_acStru_FaultTypeDesc[0]) ;
	
	pucBuffer[0] = 0;
	for (ucFor = 0;ucFor< usArrSize;ucFor++)
	{
		if (g_acStru_FaultTypeDesc[ucFor].ucFaultSlaveType == ucFaultID)
		{
			strcpy(pucBuffer,g_acStru_FaultTypeDesc[ucFor].aucDescStr);
			break;
		}		
	}
	return pucBuffer;
}



⌨️ 快捷键说明

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