📄 main.c
字号:
世界调整时间: %s\r\n\
世界日期: %s\r\n\
纬度: %s\r\n\
经度: %s\r\n\
海拔高度: %s (meter)\r\n\
卫星个数: %s\r\n\
速度: %s\r\n\r\n",
GPS_DATA.UTC_Time,
GPS_DATA.UTC_Date,
GPS_DATA.Latitude,
GPS_DATA.Longtitude,
GPS_DATA.Altitude,
GPS_DATA.SatelliteUsed,
GPS_DATA.Speed);
OS_EXIT_CRITICAL();
uart0SendStr(GcGpsData);
#endif
OSTimeDly(OS_TICKS_PER_SEC * 16);
}
}
}
/*********************************************************************************************************
** Function name: TaskUART
** Descriptions: UART display and post msg task
** input parameters: None
** Returned value: None
** Used global variables: None
** Calling modules: OSMboxCreate();OSMboxPost();uart0SendStr();
*********************************************************************************************************/
void TaskUART (void *pdata)
{
pdata = pdata;
GprsBox = OSMboxCreate((void*)NULL);
if (GprsBox == (OS_EVENT *)0) {
while (1); /* 创建邮箱不成功,在此测试检查 */
}
while(1)
{
#if (!__GPS_DISPLAY_ENABLE)
uint8 ucUartRcvByte; /* 串口接收到的命令码 */
if( GPRSGetState() == GPRS_IDLE) { /* GPRS状态空闲,初始化时间较长 */
uart0SendStr(GprsDisp); /* 显示GPRS实验交互信息 */
uart0SendStr("GPRS Module is OK, please choose the CMD to Test !\r\n");
for (;;) {
ucUartRcvByte = (uart0RcvByte() - '0'); /* 注意串口接收数据为字符格式 */
OSMboxPost(GprsBox, &ucUartRcvByte); /* 发送命令码,以通知GPRS任务 */
uart0SendStr("\r\nThe CMD have been send to GPRS, please wait...\r\n");
OSTimeDly(OS_TICKS_PER_SEC * 6);
}
}
#endif
OSTimeDly(OS_TICKS_PER_SEC);
}
}
/*********************************************************************************************************
** Function name: TaskGprsGpsRcv
** Descriptions: GPRS / GPS Receive task
** input parameters: None
** Returned value: None
** Used global variables: None
** Calling modules: None
********************************************************************************************************/
void TaskGprsGpsRcv (void *pdata)
{
uint8 err;
pdata = pdata;
OSTimeDly(OS_TICKS_PER_SEC * 10);
while(1)
{
OSSemPend(DuartRcv, OS_TICKS_PER_SEC/100, &err); /* 等待信号量,但不阻塞 */
GprsGpsRead(); /* 接收数据并且保存到缓存中 */
}
}
/*********************************************************************************************************
** Function name: TaskGPRS
** Descriptions: GPRS handle task
** input parameters: None
** Returned value: None
** Used global variables: None
** Calling modules: OSMboxPend();GPRSSendMSG();GPRSDialUp();...
*********************************************************************************************************/
void TaskGPRS (void *pdata)
{
uint8 err;
uint8 tmp;
char buffer[30];
uint8 *pucTestflag; /* 设定实验内容,参看下面的程序 */
static uint8 ucGprsCmd; /* GPRS实验命令码暂存 */
OSTimeDly(OS_TICKS_PER_SEC * 2);
GPRSInit(); /* 初始化GPRS */
OSTimeDly(OS_TICKS_PER_SEC * 2);
GPRSSetSpk(80); /* 设置喇叭的音量等级 */
OSTimeDly(OS_TICKS_PER_SEC * 2);
GPRSSetMic(0,6); /* 改变麦克风增益等级 */
OSTimeDly(OS_TICKS_PER_SEC * 2);
pucTestflag = NULL;
while (1)
{
if( GPRSGetState() == GPRS_IDLE)
{
pucTestflag = (uint8 *)OSMboxPend(GprsBox, 0, &err);
ucGprsCmd = *pucTestflag;
if(ucGprsCmd != 0) { /* 在此进行短信息,拨电话等实验 */
/*
* 当为发送一条短信息,需要在启动一段时间之后才可以进行这个实验(建议在线调试,观察实验现象)
*/
switch(ucGprsCmd) {
case 1: GPRSSetMSGCenter("+8613800571500"); /* 设置短信息中心 */
break;
case 2: GPRSSendMSG("13430327182","I am Test GPRS&GPS.");
break;
case 3: GPRSDialUp("13430327182"); /* 拨打电话 */
break;
case 4: tmp = GPRSGetSimMsgNum(); /* 得到SIM卡可存储的短消息数量 */
break;
case 5: GPRSViewMSGCenter(buffer); /* 查看短信息中心 */
break;
case 6: GPRSReadMSG(1,ShortMsg); /* 读取短消息 */
break;
case 7: GPRSDelMSG(1); /* 删除短信息 */
break;
default: break;
}
}
RcvNoRequest(); /* 处理模块主动提供的数据 */
/*
if(csq_sec%30 == 0)
{
GPRSViewCSQ();
}
*/
}
OSTimeDly(OS_TICKS_PER_SEC); /* 延时1秒钟 */
}
}
/*********************************************************************************************************
** Function name: TaskGPS
** Descriptions: GPS handle task
** input parameters: None
** Returned value: None
** Used global variables: None
** Calling modules: OSSemPend();GPSAnalyse();uart0SendStr();
** Created by: Yehaoben
** Created Date: 2005/06/02
********************************************************************************************************/
void TaskGPS (void *pdata)
{
uint8 err;
OSTimeDly(OS_TICKS_PER_SEC * 10);
while(1)
{
OSSemPend(GPSRcv,0,&err); /* 等待接收完成信号 */
if(err == OS_NO_ERR)
{
GPSAnalyse();
}
}
}
/*********************************************************************************************************
** End Of File
********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -