当前位置:文档之家› HDC2400数字信令系统设计的源程序

HDC2400数字信令系统设计的源程序

附录:源程序

头文件:

#ifndef HDC2400_H

#define HDC2400_H

enum /*枚举*/

{

n_HDC2400MinCode

n_HDC2400PrePtt

n_HDC2400PostPtt

n_HDC2400Emergency

};

enum

{

n_FixMsgHDC2400 /* ①固定短消息0000b

n_UserMsgHDC2400 ②用户短消息0001b

n_GPSMsgHDC2400 ③GPS短消息0010b

n_PatrolMsgHDC2400 ④巡更短消息0011b

n_StatusMsgHDC2400 ⑤固定状态信息0100b */

};

#define NewCode 1 /*新代号*/ /*HDC2400 Function Code*/

/*system Function,*/

#define HDC_Cancel _00000000B

#define HDC_Emergency _00000001B

#define HDC_Kill _00000010B

#define HDC_Stun _00000011B /*TC900 delete this function */

#define HDC_Active _00000100B

#define HDC_PhoneOFF _00000101B /*un use for temp*/

#define HDC_PrePTT _00000110B

#define HDC_PostPTT _00000111B

#define HDC_Status_Inq _00001000B /*same as TC700*/

#define HDC_SafeCheck_Inq _00001001B /*send is same ;receive is differnt*/ #define HDC_AutoContact _00001010B

#define HDC_ChangeCh_Inq _00001011B /*no use for temp*/

#define HDC_SystemCodeIdleC _00001100B

#define HDC_SystemCodeIdleD _00001101B

#define HDC_SystemCodeIdleE _00001110B

#define HDC_SystemCodeIdleF _00001111B

/*Call Function*/

#define HDC_SelCallAll _00010000B /*broadcast*/

#define HDC_SelCallInd _00010001B

#define HDC_SelCallGroup _00010010B

#define HDC_AlertCallInd _00010011B

#define HDC_PhoneCall_Inq _00010100B

#define HDC_MutiCall _00010101B

#define HDC_SelCallZone _00010110B

/*CALL FUNCTION*/

#define HDC_ACK_Emergency _00100000B

#define HDC_ACK_Gen _00100001B /*many function use this code*/

#define HDC_ACK_SafeCheck _ 000 0010b /*delete*/

#define HDC_ACK_CodeIdle2 _00100010B

#define HDC_ACK_ManualSafe _00100011B

#define HDC_ACK_RTStatus _00100100B /*acknowledge of real time status request*/ #define HDC_ACK_AutoContact _00100101B

#define HDC_ACK_StunOK _00100110B

#define HDC_ACK_UnstunOK _00100111B

#define HDC_ACK_EmergencyFail _00101000B

#define HDC_ACK_GenFail _00101001B

#define HDC_ACK_SafeFail _00101010B

#define HDC_ACK_ManualFail _00101011B

#define HDC_ACK_StatusFail _00101100B

#define HDC_ACK_StunFail _00101101B

#define HDC_ACK_UnstunFail _00101110B

/*Data Transmit*/

#define HDC_DataInd _01000000B/*have receive ack, start data send*/

#define HDC_DataReq _01000001B/*1 step, request*/

#define HDC_DataAck _01000010B/*Respond*/

enum

{

n_IndCallType

n_GroupCallType

n_ZoneCallType

n_AllCallType

};

struct sHDC2400CallList

{

INT16U pPrevListPointer ; /* 0x00 Individual

0x01 Group

0x02 Local Broadcast

0x03 Global Broadcast */ INT16U pNextListPointer ;

INT8U cAlias[16]; /*ASCII*/

INT8U cIDType; /* Reserved for ID Type 0x04-0xff */ INT16U iRevertChannel; /* 0x0000*/

INT8U cZoneID:4; /*0x1-0x100*/

INT8U cReserved :4 ; /*Reserved 0x0100-0xffff */

INT16U iRadioID; /*0x0001-0x9999*/

INT8U cAlertTone; /*0x00,0x01-0x08*/

};

extern utMskCommandBlock uRxFirstCommandBlock; /*外部变量*/ extern utMskCommandBlock uRxLastCommandBlock;

extern utMskCommandBlock uRxHaveRecCommandBlock;

extern utMskCommandBlock uTxFirstCommandBlock;

extern utMskCommandBlock uRxLastCommandBlockBak;

extern utMskCommandBlock uRx2ndCommandBlock;

extern utMskCommandBlock uTxHaveSendCommandBlock;

extern struct sHDC2400CallList _far * pCurHDC2400CallList;

extern void HDC2400Initial(INT8U cSystemIndex);

extern void HDC2400FunctionStart(INT8U cFunctionType);

#endif

程序:

#include "../USER/IMG_USER.H"

#include "../MskSendReceive/MskSendReceive.h"

#include "../LCD/Menu.h"

#include "../TaskIMG/TaskIMG.h"

#include "../Destination/Destination.h"

#include "../TASKTX/TxDispose.H"

#include "../CHSWITCH/ChannelSwitch.h"

#include "../HDC1200/HDC1200.h"

#include "..\Emergency\Emergency.h"

#include "../Lib/DataStruct.H"

#include "../Lib/GlobleVariable.h"

#include "../TASKLED/LED.H"

#include "../Lib/DataStruct.H"

#include "../TASKBEEP/BEEP.h"

#include "../HDC2400/HDC2400.h"

#include "../HDC2400/IMG_HDC2400.h"

void IMG_HDC_Cancel(void);/*无返回值*/ void IMG_HDC_Emergency(void);

void IMG_HDC_Kill(void);

void IMG_HDC_Stun(void);

void IMG_HDC_Active(void);

void IMG_HDC_PhoneOFF(void);

void IMG_HDC_PrePTT(void);

void IMG_HDC_PostPTT(void);

void IMG_HDC_Status_Inq(void);

void IMG_HDC_SafeCheck_Inq(void);

void IMG_HDC_AutoContact(void);

void IMG_HDC_ChangeCh_Inq(void);

void IMG_HDC_SelCallAll(void);

void IMG_HDC_SelCallPer_Inq(void);

void IMG_HDC_SelCallGro(void);

void IMG_HDC_AlerCalltPer(void);

void IMG_HDC_PhoneCall_Inq(void);

void IMG_HDC_SelCallZone(void);

void IMG_HDC_ACK_Emergency(void); void IMG_HDC_ACK_ManualSafe(void); void IMG_HDC_ACK_RTStatus(void);

void IMG_HDC_ACK_AutoContact(void); void IMG_HDC_ACK_StunOK(void);

void IMG_HDC_ACK_UnstunOK(void); void IMG_HDC_ACK_EmergencyFail(void); void IMG_HDC_ACK_SafeFail(void);

void IMG_HDC_ACK_ManualFail(void); void IMG_HDC_ACK_StatusFail(void);

void IMG_HDC_ACK_StunFail(void);

void IMG_HDC_ACK_UnstunFail(void);

void IMG_HDC_DataInd(void);

void IMG_HDC_DataReq(void);

void IMG_HDC_DataAck(void);

void IMG_HDC_SelCallInd_Inq(void);

void IMG_HDC_RadioCheck(void);

void IMG_HDC_AlertCallInd_Inq(void);

void IMG_HDC_AlertCallGroup(void);

void IMG_HDC_AlertCallZone(void);

void IMG_HDC_AlertCallAll(void);

void IMG_HDC_RmtMoniPer(void);

void IMG_HDC_RmtMoniPer_Inq(void);

void IMG_HDC_EmgRmtMoniPer_Inq(void);

void IMG_HDC_RptAccess_Inq(void);

utMskCommandBlock uRxFirstCommandBlock; utMskCommandBlock uRxLastCommandBlock; utMskCommandBlock uRxLastCommandBlockBak; utMskCommandBlock uRx2ndCommandBlock; utMskCommandBlock uRxHaveRecCommandBlock; utMskCommandBlock uTxFirstCommandBlock; utMskCommandBlock uTxHaveSendCommandBlock;

INT16U iDecodeFrameStep =0;

INT8U bGetHDC2400FunctionValid = 0;

struct sHDC2400CallList _far * pCurHDC2400CallList;

/************************************************* Function: EndMskDemodulate

Description: End demodulate the msk(结束解调,检波MSK信号)CAlls:

CAlled By:

Input:

Output:

MCU I/O:

Others:

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

void EndMskDemodulate(void)

{

INT8U i;

pMskRcvEnd = cMskRcvData;

reset the pointer

for(i = 0; i <= 15; i++)

cMskRcvData[i] = 0;

bGetHDC2400FunctionValid = 0;

/* bFlameDetectValid = 0;

bMskCloneEnable = 0;

cMskDecodeType = 0;

cMdcFunctionType = 0;

bMSKSignalHaveDecode = 0;

iDecodeFrameStep = 0;

MskModeState = 0;

bGetFunction = 0;

bDataSendErrorFlag = 0;

bFSL = 0;

Ak2346ByteSend(0,cAk2346Ctrl1.All);

Ak2346ByteSend(1,cAk2346Ctrl2.All);

Ak2346ByteSend(3,cAk2346V olume2); */

}

/********************************************************************** * Function: IMG_HDC2400_FunctionCode

* Description: a function pointer(指针)array

* CAlls: serial function process

* CAlled By: HDC2400DecodePolling()

* Input: sRcvMskCommandBlock

* Output: serial function

* MCU I/O: None

* Others: None

***********************************************************************/ void (*const IMG_HDC2400_FunctionCode[])(void) =

{

IMG_HDC_Cancel

IMG_HDC_Emergency

IMG_HDC_Kill

IMG_HDC_Stun /**/

IMG_HDC_Active

IMG_HDC_PhoneOFF

IMG_HDC_PrePTT

IMG_HDC_PostPTT

IMG_HDC_Status_Inq

IMG_HDC_SafeCheck_Inq

IMG_HDC_AutoContact

IMG_HDC_ChangeCh_Inq

IMG_HDC_SelCallAll

IMG_HDC_SelCallPer_Inq

IMG_HDC_SelCallGro

IMG_HDC_AlerCalltPer

IMG_HDC_PhoneCall_Inq

IMG_HDC_MutiCall

IMG_HDC_SelCallZone

IMG_HDC_CallCodeIdle8

IMG_HDC_CallCodeIdle9

IMG_HDC_CallCodeIdleA

IMG_HDC_CallCodeIdleB

IMG_HDC_CallCodeIdleC

IMG_HDC_CallCodeIdleD

IMG_HDC_CallCodeIdleE

IMG_HDC_CallCodeIdleF

IMG_HDC_ACK_Emergency

IMG_HDC_ACK_ManualSafe

IMG_HDC_ACK_RTStatus

IMG_HDC_ACK_AutoContact

IMG_HDC_ACK_StunOK

IMG_HDC_ACK_UnstunOK

IMG_HDC_ACK_EmergencyFail

IMG_HDC_ACK_GenFail

IMG_HDC_ACK_SafeFail

IMG_HDC_ACK_ManualFail

IMG_HDC_ACK_StatusFail

IMG_HDC_ACK_StunFail

IMG_HDC_ACK_UnstunFail

IMG_HDC_DataInd

IMG_HDC_DataReq

IMG_HDC_DataAck

IMG_HDC_SelCallInd_Inq

IMG_HDC_RadioCheck

IMG_HDC_AlertCallInd_Inq

IMG_HDC_AlertCallGroup

IMG_HDC_AlertCallZone

IMG_HDC_AlertCallAll

IMG_HDC_RmtMoniPer

IMG_HDC_RmtMoniPer_Inq

IMG_HDC_EmgRmtMoniPer_Inq

IMG_HDC_RptAccess_Inq

/********************************************************************** * Function: HDC2400FunctionStart(启动)

* Description: PTT.Emergency Function start

* CAlls: None

* CAlled By: user.c

* Input: cFunctionType

* Output: serial function

* MCU I/O: None

* Others: None

***********************************************************************/ void HDC2400FunctionStart(INT8U cFunctionType)

{

INT8U cFunctionTypeTemp;

cFunctionTypeTemp = cFunctionType ;

if( cFunctionTypeTemp > 3)

{

return ;

}

else

{

uTxFirstCommandBlock = *(utMskCommandBlock *)0;

/*Clear the MSKCommandBlock*/

}

if(cFunctionTypeTemp == n_HDC2400PrePtt)

{

uTxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode =

HDC_PrePTT;

}

else if(cFunctionTypeTemp == n_HDC2400PostPtt)

{

uTxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode =

HDC_PostPTT;

}

else if (cFunctionTypeTemp == n_HDC2400Emergency)

{

uTxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode =

HDC_Emergency;

}

cTaskTxNoSelect = n_TaskTxHDC2400;

}

/********************************************************************** * Function: HDC2400Initial(初始化)

* Description: change channel ; initial HDC2400 System data

* CAlls: None

* CAlled By: CHSwicth

* Input: cSystemIndex

* Output: menu data

* MCU I/O: None

* Others: None

***********************************************************************/ #define n_HeadAddrHDC2400System n_AddrHDC2400SystemStart

#define n_HeadAddrHDC2400CallList 0xbbbb

void HDC2400Initial(INT8U cSystemIndex)

{

INT8U cSystemNo;

cSystemNo = cSystemIndex - 1;

/*real List start address,from first System List*/

pCurHDC2400System= (struct HDC2400System _far*) n_HeadAddrHDC2400System ;

pCurHDC2400System = (pCurHDC2400System + cSystemNo) ;

}

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

* Function: HDC2400DecodeConditionJudge(解译码条件判断)

* Description: HDC2400 Decode conditon

* CAlls: None

* CAlled By: HDC2400DecodePolling

* Input: ChPersonality

* Output: True-OK.

False- can't decode

* MCU I/O: None

* Others: None

***********************************************************************/ INT8U HDC2400DecodeConditionJudge(void)

{

/*Read Per Radio Data*/

return 1;

}

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

* Function: HDC2400DecodePolling(解码查询检测)

* Description: Decode HDC2400

* CAlls: None

* CAlled By: TASK_CNT

* Input: cMSKRecDataBuf

* Output: FunctionCode

* MCU I/O: None

* Others: None

***********************************************************************/ void HDC2400DecodePolling(void)

{

INT8U i;

INT8U bConditionDecode = 0;

if((cMskDecodeType == 2)&& /*cur ch signalling is HDC2400*/

(g_PersonalityData.FstSigType==n_OptSignal_HDC2400))

{

return;

}

else

{ ;}

if (pMskRcvEnd >= pMskRcvStart+16)

{

for(i = 0;i < 16; i++)

{

cMskDecodeData[i] = 0;

}

DataSendDecode(cMskRcvData,cMskDecodeData);

OS_ENTER_CRITICAL();

for(i = 0;i <= (pMskRcvEnd-pMskRcvStart-16); i++)

{

cMskRcvData[i] = cMskRcvData[16+i];

}

pMskRcvEnd = pMskRcvEnd-16;

OS_EXIT_CRITICAL();

/* if (bDataSendErrorFlag)*/

{

/*Data Transmit,other process*/ //erro proccess of data send

EndMskDemodulate();

}

}

else

{

return;

}

/*Have received Function Frame*/

if(!bGetHDC2400FunctionValid)

{

/*store the source ID and get function type*/

bGetHDC2400FunctionValid = 1;

uRxFirstCommandBlock = *((utMskCommandBlock *)cMskDecodeData); }

else

{

/*store last frame (帧)data*/

uRxLastCommandBlock = *((utMskCommandBlock *)cMskDecodeData); }

/*bHdc2400NotTranspond=0;*/

iDecodeFrameStep ++ ;

if (iDecodeFrameStep == 2)

{

uRx2ndCommandBlock = * ((utMskCommandBlock *)cMskDecodeData);

}

else

{}

/*Kill and Revive Function no need match Decode Conditon*/

if((uRxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode == HDC_Kill)

||((uRxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode == HDC_Active)

/*&& bBeKillValid*/))/*golbal variable*/

{

bConditionDecode = 1;

}

else

{

bConditionDecode = HDC2400DecodeConditionJudge();

}

if ( bConditionDecode )

{

if ( uRxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode

<= HDC_FunctionCodeMax )

{

IMG_HDC2400_FunctionCode

[uRxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode]();

}

else

{}

}

else

{

EndMskDemodulate();

}

}

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

* Function: IMG_HDC_Cancel(取消)

* Description: Decode HDC2400

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

void IMG_HDC_Cancel(void)

{

/*pCurHDC2400CallList = new sHDC2400CallList;

undo; delete pCurHDC2400CallList;*/

}

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

* Function: HDC2400GetTranspondID(获取转发)

* Description: Get the ID which you want to Acknowledge (确认)

* CAlls: None

* CAlled By: all Ack code Send

* Input: uRxFirstCommandBlock

* Output: uTxFirstCommandBlock

* MCU I/O: None

* Others: None

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

INT8U cHDC2400AckDelayTime;

void HDC2400GetTranspondID()

{

/*Get the Destination ID*/

uTxFirstCommandBlock.sMskCommandBlock.uRegionalId.sRegionalId.hDesRegionalId =

uRxFirstCommandBlock.sMskCommandBlock.uRegionalId.sRegionalId.hSourceRegionalId;

uTxFirstCommandBlock.sMskCommandBlock.iDesId=

uRxFirstCommandBlock.sMskCommandBlock.iSourceId;

/*Get Source ID*/

uTxFirstCommandBlock.sMskCommandBlock.uRegionalId.sRegionalId.hSourceRegionalId = pCurHDC2400System->cZoneID;

uTxFirstCommandBlock.sMskCommandBlock.iSourceId=

pCurHDC2400System->iPrimaryID;

/*Start wait time counter*/

cHDC2400AckDelayTime = pCurHDC2400System->cAckDelayTime;

}

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

* Function: HDC2400AckDelayTimeCounter(void)(确认延时计数器)

* Description: Ack Wait Timer

* CAlls: None

* CAlled By: HDC2400TimeCounter()

* Input: cHDC2400AckTime

* Output: cHDC2400Pretime

* MCU I/O: None

* Others: None

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

void HDC2400AckDelayTimeCounter(void )

{

if( cHDC2400AckDelayTime )

{

if( --cHDC2400AckDelayTime == 0)

{

cTaskTxNoSelect = n_TaskTxHDC2400;

bHDC2400TxState = 1;

cHDC2400TxStep = n_HDC2400Pretime ;

}

else

{;}

}

else

{

return ;

}

}

/********************************************************************** * Function: IMG_HDC_Emergency(紧急情况)

* Description: Decode HDC2400

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: cMSKRecDataBuf

* Output: FunctionCode

* MCU I/O: None

* Others: None

***********************************************************************/ void IMG_HDC_Emergency(void)

{

if (pCurHDC2400System->bEmergencyDecode)

{

/*action*//*Indicate Emergency Status and Display ID */

/*Clear to Transpond */

HDC2400GetTranspondID();

uTxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode =

HDC_ACK_Emergency;

}

else

{

return;

}

}

/********************************************************************** * Function: HDC2400JudgePrimaryID(判断原始ID)

* Description: compare the HDC2400 primary code

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: cMSKRecDataBuf

* Output: true ;flase

* MCU I/O: None

* Others: None

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

INT8U HDC2400JudgePrimaryID(void)

{

if((pCurHDC2400System->cZoneID ==

uRxFirstCommandBlock.sMskCommandBlock.uRegionalId.sRegionalId.hDesRegionalId) &&(pCurHDC2400System->iPrimaryID ==

uRxFirstCommandBlock.sMskCommandBlock.iDesId) )

{

return n_TRUE;

}

else

{

EndMskDemodulate();

return n_FALSE;

}

}

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

* Function: HDC2400JudgeGroupID(判断组ID)

* Description: compare the HDC2400 code

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: None

* Output: true ;flase

* MCU I/O: None

* Others: None

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

INT8U HDC2400JudgeGroupID(void) Group

{

INT8U i;

for(i = 0; i < 5 ; i ++ ) /*five Group ID*/

{

if((pCurHDC2400System->cZoneID ==

uRxFirstCommandBlock.sMskCommandBlock.uRegionalId.sRegionalId.hDesRegionalId) &&(pCurHDC2400System->iGroupID[i] ==

uRxFirstCommandBlock.sMskCommandBlock.iDesId) )

{

return n_TRUE;

}

else

{}

}

EndMskDemodulate();

return n_FALSE;

}

/********************************************************************** * Function: HDC2400JudgeStunPassword(判断遥晕密码)

* Description: compare the HDC2400 Stun Password

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: None

* Output: true ;flase

* MCU I/O: None

* Others: None

***********************************************************************/ INT8U HDC2400JudgeStunPassword(void)

{

INT8U i;

for( i = 0; i < 3; i++ )

{

if ( uRx2ndCommandBlock.cMskCommandBlock[i] !=

pCurHDC2400System->cStunPassword[i])

{

EndMskDemodulate();

return n_FALSE;

}

else

{}

}

return n_TRUE;

}

/********************************************************************** * Function: IMG_HDC_Kill(遥毙)

* Description: Decode HDC2400

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: cMSKRecDataBuf

* Output: FunctionCode

* MCU I/O: None

* Others: None

***********************************************************************/ void IMG_HDC_Kill(void)

{

if(pCurHDC2400System->bStunEnable)

{

if(iDecodeFrameStep == 1)

{

if( HDC2400JudgePrimaryID())

{;}

else

{

/*ID don't match*/

EndMskDemodulate();

}

}

else if(iDecodeFrameStep == 2)

{

/*the password is match*/

if (HDC2400JudgeStunPassword())

{ /*ack the complete code*/

cBeepTaskNum = n_KillBeep;

HDC2400GetTranspondID();

uTxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode =

HDC_ACK_StunOK;

}

/*password do not match*/

else

{

/*ack Fail code*/

HDC2400GetTranspondID();

uTxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode =

HDC_ACK_StunFail;

}

}

else

{}

}

else

{

EndMskDemodulate();

return ;

}

}

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

* Function: IMG_HDC_Active(激活)

* Description: Revive the Radio be Killed

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: pCurHDC2400System

* Output: Radio Status

* MCU I/O: None

* Others: None

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

void IMG_HDC_Active(void)

{

/*not in kill mode, return*/

if(1) /*( !bKillValid)*/

{

return ;

}

else

{;}

if(pCurHDC2400System->bUnstunEnable)

{

/*first command */

if(iDecodeFrameStep == 1)

{

if( HDC2400JudgePrimaryID())

{

/*Stun command decode successed*//*Output Flag*/ ;

}

else

{

/*ID don't match*/

EndMskDemodulate();

}

}

else if(iDecodeFrameStep == 2)

{

/*the password is match*/

if (HDC2400JudgeStunPassword())

{

/*cBeepTaskNum = n_ReviveBeep;*/

/*ack the complete code*/

HDC2400GetTranspondID();

uTxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode =

HDC_ACK_StunOK;

}

/*password do not match*/

else

{

/*ack Fail code*/

HDC2400GetTranspondID();

uTxFirstCommandBlock.sMskCommandBlock.uOperatMode.cOperatMode =

HDC_ACK_StunFail;

}

else

{}

}

else

{

EndMskDemodulate();

}

}

/********************************************************************** * Function: HDC2400DecodePolling(解码查询检测)

* Description: Decode HDC2400

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: cMSKRecDataBuf

* Output: FunctionCode

* MCU I/O: None

* Others: None

***********************************************************************/ void IMG_HDC_PhoneOFF(void)

{ ;}

/********************************************************************** * Function: IMG_HDC_PrePTT(发射)

* Description: Decode HDC2400

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: cMSKRecDataBuf

* Output: FunctionCode

* MCU I/O: None

* Others: None

***********************************************************************/ INT8U cInsertShowBuffer[2][17] = 0;

void IMG_HDC_PrePTT(void)

{

if(pCurHDC2400System->bPTTIDDecode)

{

/*Display the decode Id*/

/*First Line Zone ID. 2nd Line Primary ID*/

if(0) /*current menu status*/

{

/*Do not display the Ptt ID while in menu mode */

return;

}

{}

/*bHDC2400PttIDDisp = 1;*/

/*cHDC2400PttIDDispTime = 10; */ /*in step of 1s*/

/*fetch all of the zone id; becide source and also including des*/

/*strcpy(cInsertShowBuffer[0],

&(uRxFirstCommandBlock.sMskCommandBlock.uRegionalId.cRegionalId));

strcpy(cInsertShowBuffer[1],

&(uRxFirstCommandBlock.sMskCommandBlock.iSourceId));*/

}

else

{

return ;

}

}

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

* Function: IMG_HDC_PostPTT(发射)

* Description: Decode HDC2400

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: cMSKRecDataBuf

* Output: FunctionCode

* MCU I/O: None

* Others: None

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

void IMG_HDC_PostPTT(void)

{

if(pCurHDC2400System->bPTTIDDecode)

{

/*Display the decode Id*/

/*First Line Zone ID. 2nd Line Primary ID*/

if(0) /*current menu status*/

{

/*Do not display the Ptt ID while in menu mode */

return;

}

else

{}

/*bHDC2400PttIDDisp = 1;*/

/*cHDC2400PttIDDispTime = 10; */ /*in step of 1s*/

/*strcpy(cInsertShowBuffer[0],&

(uRxFirstCommandBlock.sMskCommandBlock.uRegionalId.sRegionalId.hSourceRegionalI

d));

strcpy(cInsertShowBuffer[1],&

(uRxFirstCommandBlock.sMskCommandBlock.iSourceId));*/ }

else

{

return ;

}

}

/********************************************************************** * Function: IMG_HDC_Status_Inq(状况)

* Description: Decode HDC2400

* CAlls: None

* CAlled By: IMG_HDC2400_FunctionCode

* Input: cMSKRecDataBuf

* Output: FunctionCode

* MCU I/O: None

* Others: None

***********************************************************************/ void IMG_HDC_Status_Inq(void)

{

INT8U i,cStatusInqItem;

if(pCurHDC2400System->bStatusInquiryDecode)

{

if(iDecodeFrameStep == 1)

{

if(HDC2400JudgePrimaryID())

{ }

else

{

EndMskDemodulate();

/*ID do not match*/;

}

}

else if(iDecodeFrameStep == 2)

{

for(i = 0; i < 6 ; i = i + 2)

{

/*chose which item you want to check*/

cStatusInqItem =uRx2ndCommandBlock.cMskCommandBlock[i];

switch (cStatusInqItem)

{

case 0 : break;

default : break;

相关主题
文本预览
相关文档 最新文档