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

📄 菜单.c

📁 通过车载终端采集GPS数据
💻 C
字号:
#include "display.h"
#include "gps.h"
#include "菜单.h"
#include "string.h"
#include "gps_collect.h"
extern GPS_LINE_INFO gps_8line[8];
extern unsigned char cur_line;
extern unsigned char cur_direction;
extern GPS_STRING gps_string;
unsigned char gps_OK;
//存点时显示的界面
void menu_main(void)
{
	unsigned char xdata lcd_row0[17]="纬度: ----.---- ";
	unsigned char xdata lcd_row1[17]="经度:-----.---- ";
	unsigned char xdata lcd_row2[17]="----路-   速度--";
	unsigned char xdata lcd_row3[17]="站--拐--   --.--";
	if(gps_OK)
	{
		memcpy(lcd_row0+6,gps_string.latitude,9);
		memcpy(lcd_row1+5,gps_string.longitude,10);
		memcpy(lcd_row2+14,gps_string.speed,2);
		lcd_row2[8]=gps_string.valid;
	}
	else lcd_row2[8]='V';
	memcpy(lcd_row2,gps_8line[cur_line].linename,4);
	memcpy(lcd_row2+6,&cur_direction,1);

	if(cur_direction==24)
	{
		lcd_row3[2]=(gps_8line[cur_line].station_counter_up)/10+'0';
		lcd_row3[3]=(gps_8line[cur_line].station_counter_up)%10+'0';
		lcd_row3[6]=(gps_8line[cur_line].corner_counter_up)/10+'0';
		lcd_row3[7]=(gps_8line[cur_line].corner_counter_up)%10+'0';
		if(gps_8line[cur_line].gps_counter_up==0||gps_8line[cur_line].gps_counter_up>6000)
			memcpy(lcd_row3+10,"100.00",6);
		else
		{
			lcd_row3[11]=(6000-gps_8line[cur_line].gps_counter_up)/600+'0';
			lcd_row3[12]=(6000-gps_8line[cur_line].gps_counter_up)/60%10+'0';

			lcd_row3[14]=(6000-gps_8line[cur_line].gps_counter_up)%60/10+'0';
			lcd_row3[15]=(6000-gps_8line[cur_line].gps_counter_up)%60%10+'0';


		}
		
	}
	else if(cur_direction==25)
	{
		lcd_row3[2]=(gps_8line[cur_line].station_counter_down)/10+'0';
		lcd_row3[3]=(gps_8line[cur_line].station_counter_down)%10+'0';
		lcd_row3[6]=(gps_8line[cur_line].corner_counter_down)/10+'0';
		lcd_row3[7]=(gps_8line[cur_line].corner_counter_down)%10+'0';
		if(gps_8line[cur_line].gps_counter_down==0||gps_8line[cur_line].gps_counter_down>6000)
			memcpy(lcd_row3+10,"100.00",6);
		else
		{
			lcd_row3[11]=(6000-gps_8line[cur_line].gps_counter_down)/600+'0';
			lcd_row3[12]=(6000-gps_8line[cur_line].gps_counter_down)/60%10+'0';

			lcd_row3[14]=(6000-gps_8line[cur_line].gps_counter_down)%60/10+'0';
			lcd_row3[15]=(6000-gps_8line[cur_line].gps_counter_down)%60%10+'0';


		}
	}
	lcd_clear_srceen();

	display_attribute(0,0,0);
	display_string(lcd_row0);

	display_attribute(0,1,0);
	display_string(lcd_row1);

	display_attribute(0,2,0);
	display_string(lcd_row2);

	display_attribute(0,3,0);
	display_string(lcd_row3);


}
//显示功能选择菜单界面
unsigned char code fun_menu[5][17]=
{"1 线路选择      ",
 "2 开始采集      ",
 "3 删除gps数据   ",
 "4 上传至电脑    ",
 "2 暂停采集      "
};
extern unsigned char gps_receive_flg;
void menu_fun(void)
{
	lcd_clear_srceen();

	display_attribute(0,0,0);
	display_string(fun_menu[0]);

	if(gps_receive_flg!=0)
	{
		display_attribute(0,1,0);
		display_string(fun_menu[4]);
	}
	else 
	{
		display_attribute(0,1,0);
		display_string(fun_menu[1]);
	}
	display_attribute(0,2,0);
	display_string(fun_menu[2]);

	display_attribute(0,3,0);
	display_string(fun_menu[3]);

}
//线路选择界面
void menu_line(void)
{
	unsigned char xdata lcd_row0[17]="1-????路5-????路";
	unsigned char xdata lcd_row1[17]="2-????路6-????路";
	unsigned char xdata lcd_row2[17]="3-????路7-????路";
	unsigned char xdata lcd_row3[17]="4-????路8-????路";
	memcpy(lcd_row0+2,gps_8line[0].linename,4);
	memcpy(lcd_row1+2,gps_8line[1].linename,4);
	memcpy(lcd_row2+2,gps_8line[2].linename,4);
	memcpy(lcd_row3+2,gps_8line[3].linename,4);

	memcpy(lcd_row0+10,gps_8line[4].linename,4);
	memcpy(lcd_row1+10,gps_8line[5].linename,4);
	memcpy(lcd_row2+10,gps_8line[6].linename,4);
	memcpy(lcd_row3+10,gps_8line[7].linename,4);

	lcd_clear_srceen();

	display_attribute(0,0,0);
	display_string(lcd_row0);

	display_attribute(0,1,0);
	display_string(lcd_row1);

	display_attribute(0,2,0);
	display_string(lcd_row2);

	display_attribute(0,3,0);
	display_string(lcd_row3);
}
//显示上下行选择界面
unsigned char code direction_menu[4][17]=
{
 "请选择上下行!   ",
 "1 上行          ",
 "2 下行          ",
 "                ",
};
void menu_direction(void)
{
	lcd_clear_srceen();

	display_attribute(0,0,0);
	display_string(direction_menu[0]);

	display_attribute(0,1,0);
	display_string(direction_menu[1]);

	display_attribute(0,2,0);
	display_string(direction_menu[2]);


	display_attribute(0,3,0);
	display_string(direction_menu[3]);

}
//上传到电脑等待界面
unsigned char code up_gps_record[4][17]=
{"上行: ----/---- ",
 "下行: ----/---- ",
 "正在上传到电脑! ",
 "请稍后... ...   ",
};
void menu_up_gps_record(void)
{
	lcd_clear_srceen();

	display_attribute(0,0,0);
	display_string(up_gps_record[0]);

	display_attribute(0,1,0);
	display_string(up_gps_record[1]);

	display_attribute(0,2,0);
	display_string(up_gps_record[2]);


	display_attribute(0,3,0);
	display_string(up_gps_record[3]);

}
//针对所有的操作完成界面
unsigned char code process_over[4][17]=
{"                ",
 "     成功!      ",
 "                ",
 "                ",
};
void menu_process_over(void)
{
	lcd_clear_srceen();

	display_attribute(0,0,0);
	display_string(process_over[0]);

	display_attribute(0,1,0);
	display_string(process_over[1]);

	display_attribute(0,2,0);
	display_string(process_over[2]);


	display_attribute(0,3,0);
	display_string(process_over[3]);

}
//线路名修改界面
unsigned char code inputline_menu[4][17]=
{"请输入线路名:   ",
 "     ----路     ",
 "                ",
 "                ",
};
void menu_inputline(void)
{
	lcd_clear_srceen();

	display_attribute(0,0,0);
	display_string(inputline_menu[0]);

	display_attribute(0,1,0);
	display_string(inputline_menu[1]);

	display_attribute(0,2,0);
	display_string(inputline_menu[2]);


	display_attribute(0,3,0);
	display_string(inputline_menu[3]);

}
//在指定位置显示一个字符
//参数依次为:列号,行号,字符串,模式(0:正显,1反显)
void menu_display_char(unsigned char columh,unsigned char row,unsigned char c,unsigned char mode)
{
	unsigned char a[2];
	a[0]=c;
	a[1]='\0';
	display_attribute(columh,row,mode);
	display_string(a);
}

⌨️ 快捷键说明

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