⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menuprocess.c

📁 通过车载终端采集GPS数据
💻 C
📖 第 1 页 / 共 5 页
字号:
#include "typedef.h"
#include "menu.h"
#include "menuProcess.h"
#include "keyBoard.h"
#include "display.h"
#include "commoninterface.h"
#include "menuinterface.h"
#include "glitter.h"
#include "string.h"
#include "common_function.h"
#include "global.h"
#include "manualboard.h"
#include "playsound.h"
#include "trans_process.h"
#include "menubuffer.h"
#include "message.h"
#include "autoboard.h"
#include <string.h>
#include "nvram.h"
SET_WORKSTATUS* gpMsgStatus = NULL;//全局变量,供所有显示文本信息来使用

unsigned char xdata nMenuIndex=0;//判断是否第一次进入菜单
unsigned char xdata ip_time = 0;//输入IP时记录输入有效值的次数
Byte xdata serverPara[6];//IP地址和端口号数组
unsigned char xdata drivNum_order = 0;//司机工号输入的有效次数
unsigned char xdata driverID[4];//司机工号输入的数组
unsigned char xdata phoneValue = 0;//记录所选电话号码的序号
unsigned char xdata busIdNum[5];//车辆ID输入的数组
unsigned char xdata busId_time = 0;//记录车辆ID输入的次数
char xdata SmsSequence = 0;//记录当前查看的消息条数
char xdata CurrentScreen = 0;//记录当前短信显示的屏数
Uchar xdata findNextSMS = 0;//标志是否查询下条短信(0:查看本条短信,1:查看下条短信)
char xdata device_time = 0;//设备号输入次数
char xdata deviceNum[7];//设备号数组
char xdata totalPhoneNum = 0;//电话的个数
Byte menuMsgBuffer[255];//界面读取短消息的全局变量
Byte gCallStatus = MENU_NOTINCALLSTATE;//电话的状态//陈剑添加,07年3月15日,将原来pickUp_phone中的mark修改而来
//PhoneBookArray是连续存放8组电话本的数组,其中姓名长度为11,号码长度为15

/*开机显示界面*/
unsigned char code *code startupMsg[]= {
                            "                ",       /*KJ_NULL=0*/
                            " CP VDS02- II型 ",      /*KJ_deviceType=1*/
                            "公交车载终端     ",      /*KJ_deviceNam=2*/

                            };


/*运行显示界面*/
char code *code drivingMsg[]= {
                            "  ",               /*YX_gpsIcon=0*/
                            "  ",               /*YX_gprsIcon=1*/
                            "  ",               /*YX_msgIcon=2*/
                            "手动",             /*YX_manual=3*/
                            "自动",             /*YX_auto=4*/
							"  ",               /*YX_alarmIcon =5*/
                            "首站:",          /*YX_SZ =6*/
                            "下站:",          /*YX_XZ =7*/
				            "本站:",      	/*YX_BZ =8*/

							" ",                /*YX_line=9*/
                            "-",                /*YX_mode=10*/
                            "营运  ",             /*YX_YY=11*/
                            "非营运",           /*YX_FYY=12*/
                            };




/*运营设置菜单界面*/
char code *code runSet[]= {
                            " ",               /*YY_NULL=0*/
                            "1-运营设置  ",      /*YY_YYSZ=1*/

                                "1-出勤考核  ",        /*YY_CQKH=2*/
					                 "工号:",         /*YY_GH=3*/
 								     "1-修改",          /*YY_XG=4*/     
								     "2-上班确认",    /*YY_SBQR=5*/        
								     "3-下班确认",   /*YY_XBQR=6*/

                                "2-线路选择  ",        /*YY_XLXZ=7*/
							        "1-线路1",     /*YY_XL1=8*/
                                    "2-线路2",     /*YY_XL2=9*/
                                    "3-线路3",     /*YY_XL3=10*/
                                    "4-线路4",     /*YY_XL4=11*/
                                    "5-线路5",     /*YY_XL5=12*/
                                    "6-线路6",     /*YY_XL6=13*/
								    "请选择发车方向:", /*YY_QXZFCFX=14*/
								    "1-上行",          /*YY_SX=15*/
								    "2-下行",          /*YY_XX=16*/

                                "3-行车模式  ",         /*YY_XCMS=17*/
							        "1-模式1",       /*YY_mode1=18*/
								    "2-模式2",       /*YY_mode2=19*/
								    "3-模式3",       /*YY_mode3=20*/
								    "4-模式4",       /*YY_mode4=21*/
								    "5-模式5",       /*YY_mode5=22*/
								    "6-模式6",       /*YY_mode6=23*/

                                "4-报站自学习  ",              /*YY_BZZXX=24*/
                                    "请输入工号:",            /*YY_QSRGH=25*/
                                   
                                    "当前为:",               /*YY_DQW=26*/
                                    " ",
								    "是否进行另一方向",       /*YY_SFJXLYFX=28*/
                                    "自学习",                 /*YY_ZXX=29*/
								    "(是/否)",                /*YY_YESNO=30*/
								    "报站自学习已完成",       /*YY_BZZXXYWC=31*/                                    
                                    "与中心通信失败!",       /*YY_SZSB=32*/

                                    /*add by cj*/
                                    "是否确认上班",          /*YY_QRSB=33*/
                                    "是否确认下班",          /*YY_QRXB=34*/
                                    "是",                    /*YY_QR=35*/
                                    "中心确认中,",          /*YY_QRZ=36*/
                                    "登录成功,",            /*YY_DLCG=37*/
                                    "您可以正常上班",        /*YY_KYSB=38*/
                                    "您可以正常下班",        /*YY_KYXB=39*/
                                    "对不起,",              /*YY_DBQ=40*/
                                    "您不能上班",            /*YY_BNSB=41*/
                                    "您不能下班",            /*YY_BNXB=42*/

                                    /*end of add*/
						         };

/*调度信息菜单界面*/
char code *code dispatchMsg[]= {
                            "2-收发短信",              /*DD_DDXX=0*/
                                "4-固定短语",          /*DD_GDDY=1*/
                                    "1-路堵",    /*DD_LD=2*/
                                    "2-事故",     /*DD_RD=3*/
                                    "3-车故障",      /*DD_GZ=4*/
                                    "4-POS机故障",   /*DD_SG=5*/
                                    "5-报警",   /*DD_BJ=6*/
                                    "6-满座",   /*DD_JF=7*/
                                    "7-通话",   /*DD_MZ=8*/
                                 "1-调度指令",    /*DD_DDZL=9*/
                                    "发送退出营",
                                    "发送进入营",
                                    "运请求,请等候",
                                    "已查看完所有消息", /*DD_CKJS=13*/
									"无消息记录",  /*DD_WXXJL=14*/
                                 "2-告警信息",    /*DD_GJXX=15*/
                                    " ",
									" ",
									" ",
								 "网络繁忙,",  /*DD_WLFM=19*/
                                 "请稍后再试!",   /*DD_QSHZS=20*/
                                 "3-营运计划",  /*DD_YYJH=21*/
                                 "发送成功",    /*DD_FSCG=22*/

                                 };

/*通话功能菜单界面*/
char code *code callFunc[]={

                            "3-通话功能",           /*TH_THGN=0*/
                                "1-通信录",   /*TH_TXL=1*/
                                    " ",
                                    " ",
                                    " ",
                                    " ",
                                "2-拨打电话",         /*TH_BDDH=6*/
                                    "请输入号码:",  /*TH_QSUHM=7*/
                                    "已挂断",       /*TH_YGD=8*/
                                    "通话中...",   /*TH_HJ=9*/
                                    "有来电",           /*TH_ZZLJ=10*/
                                    "呼出...",    /*TH_WFJT=11*/
                                    "3-呼入电话",       /*TH_HRDH=12*/
                                    "未接电话",     /*TH_WJDH=13*/
                                    " ",     /*TH_ZZHJ=14*/
                                    " ",
                                    " ",
 								    "无通话记录",  /*TH_WTHJL=17*/
                                "4-呼出电话",      /*TH_HCDH=18*/
                                    "对方正忙",     /*TH_DFZM=19*/
                                    " ",
                                    " ",
                                    " ",

                            };


/*系统信息菜单界面*/
char code *code sysMsg[]={
                            "4-系统信息",                 /*XT_XTXX=0*/
                                "1-网络设置",           /*XT_WLSZ=1*/
                                "1-服务器设置",   /*XT_FWQSZ=2*/
                                   "2-APN设置 ",     /*XT_APNSZ=3*/
                                    "服务器IP地址:",       /*XT_IP=4*/
                                    "端口号: ",      /*XT_DKH=5*/
                                "2-车辆ID号",         /*XT_ID=6*/
                                    "车辆ID号:",       /*XT_SRCLID=7*/

                                    "00",            /*XT_CB=8*/
                                "3-系统查询", /*XT_XTCX=9*/

                                    "系统查询:", /*XT_CX=10*/
                                    "1-GPS 信息查询", /*XT_GPS=11*/
                                          "东经:",   /*XT_DJ=12*/
										  "北纬:",   /*XT_BW=13*/
										  "方向:",   /*XT_FX=14*/
										  "状态:",     /*XT_ZT=15*/
										  "速度:",     /*XT_SD=16*/

									"2-版本号查询", /*XT_BBHCX=17*/
                                          "输入错误,请重试", /*XT_QCS=18*/
                                "4-语音/程序更新",           /*XT_YYGX=19*/
                                    "语音正在更新",           /*XT_YYZZGX=20*/
                                    "请等候...",           /*XT_QDD=21*/
                                    "语音更新成功",           /*XT_YYGXCG=22*/
                                    "通信失败!",            /*XT_TXSB=23*/
                                    "更新失败",              /*XT_GXSB=24*/
                                    "主机版本号:",          /*XT_ZJBBH=25*/
                                    "公交终端版本号:",      /*XT_GJZDBBH=26*/
                                    "3-设备号查询",          /*XT_SBHCX=27*/
                                    "设备号:",              /*XT_SBH=28*/
                                    " ",        /*XT_CKGXYY=29*/
                                    "1-USB更新语音",         /*XT_USBGXYY=30*/
                                    "2-终端程序更新",        /*XT_ZDCXGX=31*/
                                    "4-主机程序更新",        /*XT_ZJCXGX=32*/
                                    "程序正在更新",          /*XT_CXZZGX=33*/
                                    "程序更新成功",          /*XT_CXGXCG=34*/
                                    "USB驱动正确装载,",      /*XT_USBZZZ=35*/
                                    "请重启后重新下载",      /*XT_QCQ=36*/
                                    "上传成功",              /*XT_SCCG=37*/
                                    "USB被正确设置,",        /*XT_USBSET=38*/
                                    "请重新开机后下载",      /*XT_QCXKJXZ=39*/
                                    "下载成功",              /*XT_XZCG=40*/

                            };

/*音量调节弹出界面*/
char code *code voiceClassAjust[]={
                            "音量等级:",             /*YLTJ_YLDJ=0*/
                            " ",

                            };

Byte gbMenuInMain;//是否在运行界面上
Byte gnMainMenuTimeout;
char startup_menu(char FlashLcd)  /*开机画面*/
{
    gbMenuInMain = INVALID_DATA;
    gnMainMenuTimeout = 0;
    if (FlashLcd == FLASH_SCREEN)
    {
	    lcd_init();
	    display_attribute( 0,1,0 );
        display_string( startupMsg[KJ_deviceType] );
        display_attribute( 2,2,0 );
        display_string( startupMsg[KJ_deviceNam] );
    }
    return OK;
}

/********公用的显示消息的函数*******
*pBuffer:显示内容缓存
*bufLen:显示内容长度
*nLcd:显示第几屏
***********************************/
Byte display_Msg_byLCD(Byte* pBuffer, Byte bufLen, Byte nLcd)
{
    Byte tmpBuf[65];
    Byte firstByte, lastByte;
    if ((NULL !=  pBuffer) && (nLcd > 0))
    {
        memset(tmpBuf, 0, 65);
        if (bufLen > 0)
        {
            firstByte = 64*(nLcd-1);
            if (nLcd == 4)
                lastByte = 0xff;
            else
                lastByte = 64*nLcd;
            if (firstByte >= bufLen)
                return (nLcd-1);
            else
            {
                if (lastByte > bufLen)
                    lastByte = bufLen;
                memcpy(tmpBuf, pBuffer+firstByte, lastByte-firstByte);
                lcd_clear_srceen();
                display_attribute( 0,0,0 );
                display_string(tmpBuf);
                return (nLcd);
            }
        }
        else
            return 0;
    }
    else
        return 0;
}

/*通用菜单显示函数*/
void comm_menu( char *str1, char *str2, char *str3, char *str4 )
{
	lcd_clear_srceen();
    
    if (NULL != str1)
    {
    	display_attribute( 0,0,0 );
        display_string( str1 );
    }
    if (NULL != str2)
    {
        display_attribute( 0,1,0 );
        display_string( str2 );
    }
    if (NULL != str3)
    {
        display_attribute( 0,2,0 );
        display_string( str3 );
    }
    if (NULL != str4)
    {   
        display_attribute( 0,3,0 );
        display_string( str4 );
    }
}

/*******************************以下函数为主界面需要调用的函数********/
/*显示本站,下站,首站。flash判断是否刷新标志,以下相同。该内容从*get_busInfo()中获取。*/
unsigned char menuMainStaAttr = 0;
unsigned char gMenuSpeed,  gMenuSpeed2= 0;
void display_stationAttr(char flash)
{
    Byte attr, tmpvalue;
    char tmpbuf[4];
/*    tmpvalue = get_menu_speed();
    if ((flash == FLASH_SCREEN) || (gMenuSpeed != tmpvalue))
    {
        
        memset(tmpbuf, 0, 4);
        gMenuSpeed = tmpvalue;
        tmpbuf[0] = gMenuSpeed/10+'0';
        tmpbuf[1] = gMenuSpeed%10+'0';
        tmpbuf[2] = ':';
        display_attribute( 11,1,0 );
		display_string(tmpbuf);
    }*/
    tmpvalue = get_menucurspeed();
    if ((flash == FLASH_SCREEN) || (gMenuSpeed2 != tmpvalue))
    {
        
        memset(tmpbuf, 0, 4);
        gMenuSpeed2= tmpvalue;
        tmpbuf[0] = gMenuSpeed2/10+'0';
        tmpbuf[1] = gMenuSpeed2%10+'0';
//        sprintf(tmpbuf, "%2bd", get_menucurspeed());
        display_attribute( 14,1,0 );
		display_string(tmpbuf);
    }
    get_station_attr(&attr);
	if ((flash == FLASH_SCREEN) || (attr != menuMainStaAttr))
	{
		menuMainStaAttr = attr;
		switch (menuMainStaAttr)
		{
			case FIRST_STATION:
				display_attribute( 2,1,0 );
				display_string(drivingMsg[YX_SZ]);
				break;

    		case CURRENT_STATION:
				display_attribute( 2,1,0 );
				display_string(drivingMsg[YX_BZ]);
				break;

			case NEXT_STATION:
				display_attribute( 2,1,0 );
				display_string(drivingMsg[YX_XZ]);
				break;

			default:
        		break;
		}
	}
}

/*显示站点序号和站名,该内容从*get_busInfo()中获取*/
unsigned char menuMainStaNum = 0;//主界面站点序号
void display_stationNumNam(char flash)  
{
    Byte num;
    Byte *nam;
	unsigned char numStr[5],row,len,i,str_row,str[17];

    get_cur_displayStation(&num);
    if ((flash == FLASH_SCREEN)||(num != menuMainStaNum))
	{
		menuMainStaNum = num;/*显示站点序号*/
        nam = get_station_name();
        if (num > 64)   /*判断上下行*/
            num = num - 64;
		display_attribute( 7,1,0 );
        numStr[0] = '(';
        //转换成ASCII码
		numStr[1] = num / 10 + '0';    /*十位数*/
    	numStr[2] = num % 10 + '0';    /*个位数*/
        numStr[3] = ')';
        numStr[4] = 0;
		display_string( numStr );
        /*显示站名*/
        display_attribute( 0,2,0 );
        display_string(startupMsg[KJ_NULL]);/*清除该行上次显示的站名*/
        len = strlen(nam);
        if (len > 16)
        {
	        for (i = 0;i < 16;i ++)  /*超过8个汉字则保留前8个汉字。*/
            {
                str[i] = *nam;
                nam ++;
            }
            str[16] = '\0';
            display_attribute( 0,2,0 );
            display_string(str);
        }
        else   /*将站名显示在偶数列*/
        {
            row = (16 - len)/2;
            str_row = odd_to_even(row);
		    display_attribute( str_row,2,0 );
		    display_string(nam);
        }
    }
}

/*显示线路模式,从get_busInfo()中获取*/
unsigned char menuMainLineMode = 0;
void display_lineMode(char flash)
{
    Byte mode;
    unsigned char modeStr[2];

    get_cur_mode(&mode);
    if ((menuMainLineMode != mode) || (flash == FLASH_SCREEN))
    {
        menuMainLineMode = mode;
        display_attribute( 6,3,0 );
		display_string(drivingMsg[YX_mode]);
        modeStr[0] = menuMainLineMode + '0';
        modeStr[1] = 0;
        display_attribute( 7,3,0 );
		display_string(modeStr);
    }
}

/*显示线路,从get_busInfo()中获取*/
unsigned char data menuMainLineNum = 0;
void display_line(char flash)
{
    Byte lnNm;
    unsigned char name[7];

    get_line_num(&lnNm);
    if((menuMainLineNum != lnNm) || (flash == FLASH_SCREEN))
    {
        menuMainLineNum = lnNm;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -