#include "includes.h"
//unsigned char MCFastTxData[500];
BOOL GprsIsAsworm=FALSE;
//dbg volatile+
/*
static void gpInc(void)
{
unsigned long ul;
unsigned int ui;
unsigned char tmp[16];
ul = getUlongFromBCD(gpsMess_toSrv.latitude, 4) + 1;
ltoa(ul, tmp);
ui = getHexArryFromStr(tmp, tmp);
cpyToFixArray(gpsMess_toSrv.latitude, tmp, sizeof(gpsMess_toSrv.latitude), ui);
ul = getUlongFromBCD(gpsMess_toSrv.longitude, 4) + 1;
ltoa(ul, tmp);
ui = getHexArryFromStr(tmp, tmp);
cpyToFixArray(gpsMess_toSrv.longitude, tmp, sizeof(gpsMess_toSrv.longitude), ui);
}
*/
BOOL ToChangeIpId=FALSE;
static volatile BOOL toResetMC=FALSE;
static volatile BOOL toInitMCSys=FALSE;
static volatile BOOL toInitMCGprs=FALSE;
static volatile BOOL toConnectServer=FALSE;
static volatile BOOL toCloseGprs=FALSE;
static volatile BOOL toSendRegMsg=FALSE;
//#define SECOND_ATCmdTimeout 30
#define SECOND_ATCmdTimeout 10
static volatile unsigned int timerSecondSendAT=0;
#define SECOND_MCMsgTimeout SECOND_ATCmdTimeout * 3
unsigned int timerSecondMCLastMsg=0;
#define SECOND_connSrvFromClosed 15
#define SECOND_dialFromClosed 6
static volatile unsigned int timerSecondClosedGprs=0;
//#define SECOND_MCPowerOff 10
#define SECOND_MCPowerOff 30
static volatile unsigned int timerSecondPowerOff=0;
volatile unsigned int timerSecondPowerOn=0;
//#define SECOND_connGprsTimeOut 30
#define SECOND_connGprsTimeOut 40
static volatile unsigned int timerSecondConnGprs=0;
#define SECOND_DLWaitDCDTimeOut 1
#define SECOND_DLWaitAnswTimeOut 3
//#define SECOND_gprsSendTimeout 15
#define SECOND_gprsSendTimeout 25
//static volatile unsigned int timerSecondGprsSend=0;
#define SECOND_waitRegBckRepeat SECOND_gprsSendTimeout * 1
#define SECOND_waitRegBckTimeOut SECOND_waitRegBckRepeat * 2
static volatile unsigned int timerSecondSendRegMsg=0;
unsigned int TimerSecondSendOk=0;
unsigned int T100msSendOk=0;
#ifdef DEBUG_USEDTL800K
#define T100ms_SendSpace 1
#else
#define T100ms_SendSpace 0
#endif
//为保证在线而加
//#define SECOND_maxNoDataOut 300
#define SECOND_maxNoDataOut 900
#ifdef DEBUG_WITHVEDIO
#define SECOND_maxNoDataIn 600
#else
#define SECOND_maxNoDataIn 360
#endif
#define SECOND_maxNotOnline 360
#ifndef GPRS_SendWithUserPack
#define MAXSIZE_1TcpPck 512
#endif
static volatile unsigned int timerSecondWaitToClose=0;
static volatile BOOL waitToCloseTiming=FALSE;
#define SECOND_dialTimeout 10
static volatile BOOL toListen=FALSE;
static volatile BOOL toTalk=FALSE;
static volatile BOOL toEndTalk=FALSE;
BOOL ToDealRing=FALSE;
BOOL ToDealNewMsg=FALSE;
BOOL ToAnswerTheCall=FALSE;
static volatile BOOL toSetMicGain=FALSE;
static volatile BOOL toSetSpkVol=FALSE;
static volatile BOOL toSendDTMF=FALSE;
static volatile BOOL toGetGp=FALSE;
unsigned int timerSecondStartTalk=0;
unsigned int timerSecondRing=0;
typedef enum
{
MSGTYPE_NULL,
MSGTYPE_reg,
MSGTYPE_queue1,
MSGTYPE_queue2
} U_msgTypeSend;
static volatile U_msgTypeSend msgTypeSending=MSGTYPE_NULL;
void atCmdIncessantTimeOut(void);
static void ATSetIncomingDisp(unsigned char val)
{
MCIo.prntf((unsigned char *)"AT+CID=");
if(val != '0')
{
val = '1';
}
MCIo.putChar(val);
MCIo.putChar('\r');
timerSecondSendAT = TimerSecond;
currentCmdToMC = CMD_MC_CID;
}
void callBackSetIncomingDisp(MCRXD *rxd)
{
switch (currentMCOpt)
{
case STATE_MC_InitSys:
if (strstr((char *)rxd->buff, (char *)"OK"))
{
currentCmdToMC = CMD_MC_Null;
currentMCSysState = STATE_MC_SYS_Inited;
currentMCOpt = STATE_MC_OptNull;
toInitMCSys = FALSE;
}
else
{
}
break;
default:
break;
}
}
#define MAXLEN_DTMF 15
static volatile unsigned char DtmfToSend[MAXLEN_DTMF + 1]={'\0'};
static BOOL enQueueDtmf(unsigned char k)
{
BOOL accept=FALSE;
unsigned int ui;
for (ui = 0; ui < MAXLEN_DTMF; ui++)
{
if (!*(DtmfToSend + ui))
{
*(DtmfToSend + ui) = k;
*(DtmfToSend + ui + 1) = '\0';
accept = TRUE;
break;
}
}
return accept;
}
static BOOL deQueueDtmf(unsigned char *pK)
{
BOOL accept=FALSE;
unsigned int ui;
if (*DtmfToSend)
{
accept = TRUE;
*pK = *DtmfToSend;
ui = 0;
while (*(DtmfToSend + ui + 1) && ui < MAXLEN_DTMF)
{
*(DtmfToSend + ui) = *(DtmfToSend + ui + 1);
ui++;
}
*(DtmfToSend + ui) = '\0';
}
else
{
accept = FALSE;
}
return (accept);
}
static void clrQueueDtmf(void)
{
*DtmfToSend = '\0';
}
//dial-----------------------
static volatile unsigned char micGainLevelToSet=MaxGainLevel;
static volatile unsigned char spkVolumeToSet=MaxSpkVolume;
#define MaxDialRepeatIncessant 3
static volatile unsigned char dialRepeatIncessant=0;
static void ATDial(unsigned char *numb)
{
if ((dialRepeatIncessant++) < MaxDialRepeatIncessant)
{
MCIo.prntf((unsigned char *)"AT+CDV");
MCIo.putChars((unsigned char *)numb, strlen((char *)numb));
MCIo.prntf((unsigned char *)"\r");
timerSecondSendAT = TimerSecond;
currentCmdToMC = CMD_MC_dial;
currentDialState = STATE_MC_DIAL_null;
}
else
{
dialRepeatIncessant = 0;
causeToEndTalk();
toListen = FALSE;
toTalk = FALSE;
}
}
static void nowTalking(void)
{
unsigned char tmp[SIZE_BUFF_COMMON];
currentDialState = STATE_MC_DIAL_ok;
currentCmdToMC = CMD_MC_Null;
MCIo.rxBuffRst();
toListen = FALSE;
toTalk = FALSE;
dialRepeatIncessant = 0;
timerSecondStartTalk = TimerSecond;
switch (currentDialOpt)
{
case DIALOpt_MC_listen:
MC_clrEarDet();
causeToSetSpkVol(MaxSpkVolume);
causeToSetMicGain(MaxGainLevel);
break;
case DIALOpt_MC_call:
default:
MC_setEarDet();
tellHsCallAnswer(&tmp[0]);
causeToSetSpkVol(spkVolumeToSet);
causeToSetMicGain(micGainLevelToSet);
break;
}
}
void callBackATDial(MCRXD *rxd)
{
switch (currentDialOpt)
{
case DIALOpt_MC_listen:
case DIALOpt_MC_call:
if (strstr((char *)rxd->buff, (char *)"OK") == (char *)rxd->buff)
{
switch (currentDialState)
{
case STATE_MC_DIAL_null:
currentDialState = STATE_MC_DIALING;
break;
case STATE_MC_DIALING:
default:
break;
}
}
else if (strstr((char *)rxd->buff, (char *)"ERROR") == (char *)rxd->buff)
{
currentDialState = STATE_MC_DIAL_err;//
currentCmdToMC = CMD_MC_Null;
if (currentDialOpt == DIALOpt_MC_listen)
toListen = TRUE;
else
toTalk = TRUE;
// MCIo.clearRxBuff();
}
else if (strstr((char *)rxd->buff, (char *)"VOICE CALL: BEGIN") == (char *)rxd->buff)
{
switch (currentDialState)
{
case STATE_MC_DIAL_null:
break;
case STATE_MC_DIALING:
nowTalking();
break;
default:
break;
}
}
else if (strstr((char *)rxd->buff, (char *)"NO CARRIER") == (char *)rxd->buff)
{
currentDialState = STATE_MC_DIAL_noCarrier;
currentCmdToMC = CMD_MC_Null;
if (currentDialOpt == DIALOpt_MC_listen)
toListen = TRUE;
else
toTalk = TRUE;
// MCIo.clearRxBuff();
}
break;
default:
break;
}
}
static void ATDtmf(unsigned char k)
{
MCIo.prntf((unsigned char *)"AT+DTMF=");
if(k >= '0' && k <= '9')
{
MCIo.putChar(k);
MCIo.putChar('\r');
}
else if (k == '*')
MCIo.prntf((unsigned char *)"10\r");
else if (k == '#')
MCIo.prntf((unsigned char *)"11\r");
else
MCIo.prntf((unsigned char *)"12\r");
timerSecondSendAT = TimerSecond;
currentCmdToMC = CMD_MC_dtmf;
}
void callBackATDtmf(MCRXD *rxd)
{
switch (currentDialOpt)
{
case DIALOpt_MC_listen:
case DIALOpt_MC_call:
case DIALOpt_MC_called:
default:
if (strstr((char *)rxd->buff, (char *)"OK") == (char *)rxd->buff)
{
没有合适的资源?快使用搜索试试~ 我知道了~
lpc2368GPS程序
共148个文件
c:77个
h:69个
s:2个
4星 · 超过85%的资源 需积分: 3 20 下载量 22 浏览量
2009-05-14
20:35:19
上传
评论
收藏 243KB RAR 举报
温馨提示
GPS接收,ADC,UART,本程序用于UCOS上的,UCOS没有部分没上传
资源推荐
资源详情
资源评论
收起资源包目录
lpc2368GPS程序 (148个子文件)
dtgs800driver.c 68KB
GprsRxDataParse.c 66KB
device.c 59KB
protocol.c 57KB
itm100driver.c 51KB
flashfile.c 48KB
gprs.c 46KB
ccommon.c 36KB
application.c 36KB
uart.c 35KB
main.c 34KB
ccommon.c 33KB
main.c 32KB
gps.c 32KB
digitalsignalscan.c 24KB
gprsdevice.c 19KB
appl.c 16KB
DataRecord.c 16KB
public.c 15KB
dtgs800message.c 15KB
main.c 14KB
id.c 14KB
kalman.c 14KB
Queue.c 12KB
itm100message.c 12KB
sim300.c 11KB
mgs.c 8KB
at45db081b.c 8KB
base64.c 7KB
handset.c 7KB
adc.c 7KB
iap.c 7KB
indication.c 6KB
CmdStr.c 6KB
uart2.c 6KB
uart1.c 6KB
uart00.c 6KB
uart0.c 6KB
uart3.c 6KB
link1same.c 6KB
spi.c 5KB
queue123.c 5KB
DeviceConfig.c 4KB
queue1.c 4KB
timer.c 4KB
spitest.c 4KB
sstye.c 4KB
video.c 4KB
ledScreen.c 3KB
link.c 3KB
linktemplate.c 3KB
teinfo.c 3KB
extint.c 3KB
irq.c 3KB
linksame1.c 2KB
fio.c 2KB
ISR.c 2KB
adctest.c 1KB
cCommon10.c 1KB
sysPara.c 907B
cCommon12.c 867B
irqs.c 605B
GPRSINIT.c 573B
gprsTxBuff.c 486B
uart0TxQueue.c 482B
uart1TxQueue.c 480B
uart0TxQueue.c 480B
uart3TxQueue.c 477B
uart2TxQueue.c 476B
uart0RxQueue.c 452B
uart0RxQueue.c 450B
uart1RxQueue.c 450B
gprsRxBuff.c 450B
uart3RxQueue.c 450B
uart2RxQueue.c 448B
app.c 326B
signalscan.c 0B
uart.h 18KB
Queue.h 10KB
gps.h 9KB
device.h 8KB
appl.h 8KB
os_cfg.h 8KB
DeviceConfig.h 6KB
ccommon.h 5KB
digitalsignalscan.h 5KB
sysPara.h 4KB
gprs.h 4KB
protocol.h 4KB
dtgs800message.h 3KB
itm100message.h 3KB
dtgs800Driver.h 3KB
irq.h 3KB
CmdStr.h 3KB
public.h 3KB
indication.h 2KB
flashfile.h 2KB
itm100driver.h 2KB
spi.h 2KB
DataRecord.h 2KB
共 148 条
- 1
- 2
资源评论
- peng5245420802013-01-09内容过时,不过也很好!
ramho
- 粉丝: 2
- 资源: 10
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功