?? msg.c
字號:
/********************************************************************
** 文件名: msg.c
** Copyright (c) 2001-2002 深圳市泛海三江電子有限公司開發(fā)部
All Rights Reserved.
** 描 述: 任務(wù)之間消息內(nèi)存分配和消息結(jié)構(gòu)定義
** 創(chuàng)建人: Huang Hongjun
** 創(chuàng)建日期: 2002.5
** 版 本: 1.0
** 修改記錄:
修改人 修改日期 地點(diǎn) 修改內(nèi)容
********************************************************************/
#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,"設(shè)備故障"},
{STID_FTC_MAKETYPE_UNMATCH,"類型不符"},
{STID_FTC_LOOP_SHORT,"回路短路"},
{STID_FTC_IOB_COMM_FAULT,"接口板通訊故障"},
{STID_FTC_HOST_COMM_FAULT,"主機(jī)通訊故障"},
{STID_FTC_FSD_COMM_FAULT,"復(fù)示盤通訊故障"},
{STID_FTC_IOBCAN_FAULT,"接口板CAN故障"},
{STID_FTC_HOSTCAN_FAULT,"主機(jī)CAN故障"},
{STID_FTC_FSDCAN_FAULT,"復(fù)示盤CAN故障"},
{STID_FTC_POWER_FAULT,"電源故障"},
{STID_FTC_PRINTER_FAULT,"打印機(jī)故障"}
};
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;
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -