📄 menuprocess.c
字号:
break;
case KEY_CODE_NO:
return NOKEY_MENU;
break;
default:
return NOCHANGE_MENU;
break;
}*/
}
//显示5位数字
void display_num5(Uint16 number)
{
char num[6];
num[0] = number / 10000 + '0';
num[1] = (number % 10000) / 1000 + '0';
num[2] = ((number % 10000) % 1000) / 100 + '0';
num[3] = (((number % 10000) % 1000) % 100) / 10 + '0';
num[4] = (((number % 10000) % 1000) % 100) % 10 + '0';
num[5] = 0;
display_string(num);
}
/*运营设置子菜单*/
char menu1Process(char FlashLcd)
{
char key;
if (FlashLcd == FLASH_SCREEN)
comm_menu(runSet[YY_CQKH],runSet[YY_XLXZ],runSet[YY_XCMS],startupMsg[0]);
key = get_key();
switch (key)
{
case KEY_CODE_ESC:
case KEY_CODE_ENTER:
return PREVIEW_MENU;
break;
case KEY_CODE_NUM1:/*出勤考核*/
return NEXT_MENU1;
break;
case KEY_CODE_NUM2:/*线路选择*/
return NEXT_MENU2;
break;
case KEY_CODE_NUM3:/*行车模式*/
return NEXT_MENU3;
break;
case KEY_CODE_NO:
return NOKEY_MENU;
break;
default:
return NOCHANGE_MENU;
break;
}
}
/*调度信息子菜单*/
char menu2Process(char FlashLcd)
{
char key;
if (FlashLcd == FLASH_SCREEN)
comm_menu(dispatchMsg[9],dispatchMsg[15],dispatchMsg[21],dispatchMsg[1]);
key = get_key();
switch (key)
{
case KEY_CODE_ESC:
case KEY_CODE_ENTER:
return PREVIEW_MENU;
break;
case KEY_CODE_NUM1:/*调度指令*/
return NEXT_MENU1;
break;
case KEY_CODE_NUM2:/*告警信息*/
return NEXT_MENU2;
break;
case KEY_CODE_NUM3:/*运营计划*/
return NEXT_MENU3;
break;
case KEY_CODE_NUM4:/*固定短语*/
return NEXT_MENU4;
break;
case KEY_CODE_NO:
return NOKEY_MENU;
break;
default:
return NOCHANGE_MENU;
break;
}
}
/*通话功能子菜单*/
char menu3Process(char FlashLcd)
{
char key;
if (FlashLcd == FLASH_SCREEN)
comm_menu(callFunc[TH_TXL],startupMsg[0],startupMsg[0],startupMsg[0]);
key = get_key();
switch (key)
{
case KEY_CODE_ESC:
case KEY_CODE_ENTER:
return PREVIEW_MENU;
break;
case KEY_CODE_NUM1:/*通信录*/
return NEXT_MENU1;
break;
case KEY_CODE_NO:
return NOKEY_MENU;
break;
default:
return NOCHANGE_MENU;
break;
}
}
//查询GPRS状态
char find_gprsStatus()
{
Uchar gprs;
get_gprsStatus(&gprs);
if (gprs != PPP_CONECTTOCENTER)
{ //网络繁忙,请稍后再试
lcd_clear_srceen();
display_attribute( 0,1,0 );
display_string(dispatchMsg[19]);
display_attribute( 0,2,0 );
display_string(dispatchMsg[20]);
return KO;
}
else
return OK;
}
//上下班二次确认界面
void display_confirmOn_or_off_duty(char type)
{
Byte tmpID[5];
memset(tmpID, 0, 5);
//二次确认显示
lcd_clear_srceen();
//工号显示
display_attribute( 0,0,0 );
display_string(runSet[3]);
display_attribute( 5,0,0 );
get_driver_id(tmpID);
display_string(tmpID);
//显示是否确认上下班
display_attribute( 0,1,0 );
if (type == ON_DUTY)
display_string(runSet[33]);
else
display_string(runSet[34]);
display_attribute( 0,2,0 );
display_string("是请按确定键");
display_attribute( 0,3,0 );
display_string("退出请按取消键");
}
//出勤考核菜单
static Uchar dutyConfirm = 0;//0,没有上下班确认;1,确认过上班;2,确认过下班
char driverDuty_to_center()
{
Uchar key;
FORMAT_BUFFER *format;
static lcdSeq;
format = get_format_buffer();
switch (format->status)
{
case RESPONSE_VALID://与主机通信正常时,显示中心回应
//先确认命令ID(0EH)
if ((format->id) == 0x0108)
{ //等待上班确认aaaa
gpMsgStatus = (SET_WORKSTATUS*)(format->buf);
lcdSeq = 0;
lcd_clear_srceen();
if (0 == gpMsgStatus->len)
{
//老版本
if (dutyConfirm == 1)
{
if (gpMsgStatus->status == ACK_DUTY)
{ //同意上班
display_attribute( 0,1,0 );
display_string(runSet[37]);
display_attribute( 0,2,0 );
display_string(runSet[38]);
}
if (gpMsgStatus->status == NAK_DUTY)
{ //不同意上班
display_attribute( 0,1,0 );
display_string(runSet[40]);
display_attribute( 0,2,0 );
display_string(runSet[41]);
}
}
//等待下班确认
if (dutyConfirm == 2)
{
if (gpMsgStatus->status == ACK_OFFDUTY)
{ //同意下班
display_attribute( 0,1,0 );
display_string(runSet[37]);
display_attribute( 0,2,0 );
display_string(runSet[39]);
}
if (gpMsgStatus->status == NAK_OFFDUTY)
{ //不同意下班
display_attribute( 0,1,0 );
display_string(runSet[40]);
display_attribute( 0,2,0 );
display_string(runSet[42]);
}
}
}
else
{
display_Msg_byLCD(gpMsgStatus->content, gpMsgStatus->len, lcdSeq+1);
}
}
set_formatbuffer_status(RESPONSE_NOUSE);
break;
case RESPONSE_WAITING://未连接到主机上时,不做任何处理
case RESPONSE_NOUSE:
default:
break;
case RESPONSE_TIMEOUT://与主机连接失败时,显示"与主机通信失败"
case RESPONSE_FAILED:
lcd_clear_srceen();
display_attribute( 0,1,0 );
display_string(runSet[32]);
set_formatbuffer_status(RESPONSE_NOUSE);
break;
}
key = get_key();
switch (key)
{
case KEY_CODE_ESC:
case KEY_CODE_ENTER:
nMenuIndex = 0;
dutyConfirm = 0;
gpMsgStatus = NULL;
lcdSeq = 0;
return PREVIEW_MENU;
break;
case KEY_CODE_START://下翻一屏
if (NULL != gpMsgStatus)
{
lcdSeq = display_Msg_byLCD(gpMsgStatus->content, gpMsgStatus->len, lcdSeq+1);
}
return NOCHANGE_MENU;
break;
case KEY_CODE_NUM8://上翻一屏
if (NULL != gpMsgStatus)
{
if (lcdSeq > 1)
lcdSeq = display_Msg_byLCD(gpMsgStatus->content, gpMsgStatus->len, lcdSeq+1);
}
return NOCHANGE_MENU;
break;
case KEY_CODE_NO:
return NOKEY_MENU;
default:
return NOCHANGE_MENU;
}
}
char driverDuty_to_host(char FlashLcd)
{
Uchar key;
//第一次进入界面时,读取工号
if (FlashLcd == FLASH_SCREEN)
{
Byte tmpBuf[5];
nMenuIndex = 0;
dutyConfirm = 0;
memset(tmpBuf, 0, 5);
get_driver_id(tmpBuf);
lcd_clear_srceen();
display_attribute( 0,0,0 );
display_string(runSet[3]);
display_attribute( 0,1,0 );
display_string(runSet[4]);
display_attribute( 0,2,0 );
display_string(runSet[5]);
display_attribute( 0,3,0 );
display_string(runSet[6]);
display_attribute( 5,0,0 );
display_string(tmpBuf);
}
key = get_key();
switch (key)
{
case KEY_CODE_NUM1://修改工号
if (dutyConfirm == 0)
return NEXT_MENU;
else
return NOCHANGE_MENU;
break;
case KEY_CODE_ESC:
nMenuIndex = 0;
dutyConfirm = 0;
return PREVIEW_MENU;
break;
case KEY_CODE_ENTER:
if (dutyConfirm != 0)
{
lcd_clear_srceen();
if (dutyConfirm == 1)
make_assess_message(1);
else
make_assess_message (2);
//显示等待界面
display_attribute( 0,1,0 );
display_string(runSet[36]);
display_attribute( 0,2,0 );
display_string(sysMsg[21]);
set_formatbuffer_status(RESPONSE_WAITING);
nMenuIndex = 1;
}
return NOCHANGE_MENU;
break;
case KEY_CODE_NUM2://上班确认
if (OK == find_gprsStatus())
{
dutyConfirm = 1;
display_confirmOn_or_off_duty(ON_DUTY);
}
return NOCHANGE_MENU;
break;
case KEY_CODE_NUM3://下班确认
if (OK == find_gprsStatus())
{
dutyConfirm = 2;
display_confirmOn_or_off_duty(OFF_DUTY);
}
return NOCHANGE_MENU;
break;
case KEY_CODE_NO:
return NOKEY_MENU;
break;
default:
return NOCHANGE_MENU;
break;
}
}
char set_driverDuty(char FlashLcd)
{
//确认上下班后等待主机回应
if (nMenuIndex == 1)
{
return driverDuty_to_center();;
}
else if (nMenuIndex == 0)
{
return driverDuty_to_host(FlashLcd);
}
}
//输入司机工号
char input_driverNum(char disNum)
{
char num[2];
drivNum_order = drivNum_order + 1;
num[0] = disNum + '0';
num[1] = 0;
if ((drivNum_order < 5) && (drivNum_order > 0))
{
display_attribute( drivNum_order,1,0 );
display_string(num);
driverID[drivNum_order - 1] = num[0];
}
else
drivNum_order = 4;
return NOCHANGE_MENU;
}
/*修改司机工号菜单*/
char modify_driverNum(char FlashLcd)
{
char key;
//重新输入工号
if (FlashLcd == FLASH_SCREEN)
{
lcd_clear_srceen();
display_attribute( 0,0,0 );
display_string(runSet[25]);
memset(driverID,0,4);
drivNum_order = 0;
}
key = get_key();
switch (key)
{
case KEY_CODE_NUM0:
input_driverNum(0);
break;
case KEY_CODE_NUM1:
input_driverNum(1);
break;
case KEY_CODE_NUM2:
input_driverNum(2);
break;
case KEY_CODE_NUM3:
input_driverNum(3);
break;
case KEY_CODE_NUM4:
input_driverNum(4);
break;
case KEY_CODE_NUM5:
input_driverNum(5);
break;
case KEY_CODE_NUM6:
input_driverNum(6);
break;
case KEY_CODE_NUM7:
input_driverNum(7);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -