📄 msg.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 + -