📄 disp.c
字号:
else
{
keyb_num[0]=keynumdata[17];//"Hand"
}
keyb_num[1]=keynumdata[27];
if(state2==4)
{
keyb_num[2]=keynumdata[6];
keyb_num[3]=keynumdata[0]; //06-H
}
else
{
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[3]; //3--H
}
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:显示选择的打印机
***************************************************************/
void disp_printselect(uchar gunidid)
{
if(gunidid==0) //枪0
{
keya_num[0]=keynumdata[pirnt_select_a+1];
keya_num[1]=keynumdata[27];
if(state1==4)
{
keya_num[2]=keynumdata[7];
keya_num[3]=keynumdata[0]; //"07-1"
}
else
{
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[4]; //"4--1"
}
keya_num[4]=0x02;
}
else //gunidid==1
{
keyb_num[0]=keynumdata[pirnt_select_b+1];
keyb_num[1]=keynumdata[27];
if(state2==4)
{
keyb_num[2]=keynumdata[7];
keyb_num[3]=keynumdata[0]; //"07-1"
}
else
{
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[4]; //"4--1"
}
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:显示选择的油品
***************************************************************/
void disp_product(uchar gunidid)
{
if(gunidid==0) //枪0
{
keya_num[0]=keynumdata[oil_types_a];
keya_num[1]=keynumdata[27];
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[2]; //"Pr-0"
keya_num[4]=0x02;
}
else
{
keyb_num[0]=keynumdata[oil_types_b];
keyb_num[1]=keynumdata[27];
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[2]; //"Pr-1"
keyb_num[4]=0x02;
}
}
/***************************************************************
* 功能:lcd1/lcd2显示--清屏
***************************************************************/
void disp_lcd_clear(uchar gunidid)
{ uchar dispmem[16];
uchar i;
uchar *ptr;
for(i=0;i<16;i++)
{
dispmem[i]=0x0f;
}
ptr=&dispmem;
disp_out(gunidid,ptr,8);
dispmem[0+8]=0xff;
disp_out(gunidid,ptr,6);
}
/***************************************************************
* 功能:显示设置的单价
***************************************************************/
void disp_setprice(uchar gunidid)
{ uchar i;
xdata uchar dispmem[16];
uchar *ptr;
ulong mn;
union
{
ulong x;
uchar c[4];
}temp;
//-------------------
for(i=0;i<16;i++)
{
dispmem[i]=0x0f;
}
ptr=&dispmem;
disp_out(gunidid,ptr,8);
//--------------------------
if(gunidid==0) //枪0
{
keya_num[0]=keynumdata[23];
keya_num[1]=keynumdata[23];
keya_num[2]=keynumdata[27];
keya_num[3]=keynumdata[1]; //"1-PP"
keya_num[4]=0x02;
mn=price_a;
for(i=0;i<6;i++)
{
dispmem[i]=mn%10;mn/=10;
}
temp.x=price_a;
table_buf[3]=temp.c[3];
table_buf[2]=temp.c[2];
table_buf[1]=temp.c[1];
table_buf[0]=temp.c[0];
for(i=5;i>0;i--)
{ if(i==dota_data[4])break;
if(dispmem[i]==0) dispmem[i]=0x0f;
else break;
}
}
else
{
keyb_num[0]=keynumdata[23];
keyb_num[1]=keynumdata[23];
keyb_num[2]=keynumdata[27];
keyb_num[3]=keynumdata[1]; //"1-PP"
keyb_num[4]=0x02;
mn=price_b;
for(i=0;i<6;i++)
{
dispmem[i]=mn%10;mn/=10;
}
temp.x=price_b;
table_buf[3+53]=temp.c[3];
table_buf[2+53]=temp.c[2];
table_buf[1+53]=temp.c[1];
table_buf[0+53]=temp.c[0];
for(i=5;i>0;i--)
{ if(i==dotb_data[4])break;
if(dispmem[i]==0) dispmem[i]=0x0f;
else break;
}
}
if(gunidid==0)bbyte=dota_data[4];
else bbyte=dotb_data[4];
if(bbyte==2)dispmem[0+8]=0xcf;//空位
else if(bbyte==3)dispmem[0+8]=0xfc;//空位
else dispmem[0+8]=0xff;//空位
dispmem[10]=dotmem[bbyte];
ptr=&dispmem;
disp_out(gunidid,ptr,6);
}
/***************************************************************
* 功能:显示加油菜单项--1#
***************************************************************/
void disp_memu1_oil(void)
{
switch(menu1)
{
case 1: //查询前十次加油记录
disp_eeprom_history(0,0);
break;
case 2: //查询时钟
Get1302();
disp_time(0);
break;
case 3: //锁机
disp_lock_a();
break;
case 4: //修改锁机密码
disp_lock_a();
break;
case 5: //显示版本号
disp_ver(0);
break;
case 6: //设置打印机工作方式 "Auto"戓"Hand" 00--[Auto]自动 01--[Hand]手动
disp_printer_mode(0);
writebyte(92,printermode_a);
save_ok=1;
break;
case 7: //选择打印机,"P--0/1"
disp_printselect(0);
writebyte(93,pirnt_select_a);
save_ok=1;
break;
default:
break;
}
}
/***************************************************************
* 功能:显示加油菜单项--2#
***************************************************************/
void disp_memu2_oil(void)
{
switch(menu2)
{
case 1: //查询前十次加油记录
disp_eeprom_history(1,0);
break;
case 2: //查询时钟
Get1302();
disp_time(1);
break;
case 3: //锁机
disp_lock_b();
break;
case 4: //修改锁机密码
disp_lock_b();
break;
case 5: //显示版本号
disp_ver(1);
break;
case 6: //设置打印机工作方式 "Auto"戓"Hand" 00--[Auto]自动 01--[Hand]手动
#if GUNJLMODE>2//单计量时
printermode_a=printermode_b;
writebyte(92,printermode_a);
save_ok=1;
#endif
disp_printer_mode(1);
writebyte(99,printermode_b);
save_ok=1;
break;
case 7: //选择打印机,"P--0/1"
#if GUNJLMODE>2//单计量时
printermode_a=printermode_b;
writebyte(93,pirnt_select_a);
save_ok=1;
#endif
disp_printselect(1);
writebyte(100,pirnt_select_b);
save_ok=1;
break;
default:
break;
}
}
/***************************************************************
* 功能:显示设置菜单项--1#
***************************************************************/
void disp_memu1_set(void)
{ void *pt;
if(menu1==7) menu1=8;
switch(menu1)
{
case 1: //设置单价"00-P"
disp_setprice(0);
if(price_a>0)
{
pt=&price_a;
writebyteseq(498,pt,4); //保存单价
save_ok=1;
table_buf[52] |=0x01; //通知读单价
}
else
{
pt=&(price_a);
readbyteseq(498,pt,4);//单价a
}
break;
case 2: //油品
if(oil_types_a>7) oil_types_a=0;
disp_lcd_clear(0); //清屏
disp_product(0);
writebyte(78,oil_types_a);
save_ok=1;
break;
case 3: //设置打印机工作方式 "Auto"戓"Hand" 00--[Auto]自动 01--[Hand]手动
disp_printer_mode(0);
writebyte(92,printermode_a);
save_ok=1;
break;
case 4: //选择打印机,"P--0/1"
disp_printselect(0);
writebyte(93,pirnt_select_a);
save_ok=1;
break;
case 5: //修改时钟"t--t"
if(temp_mema==0)Get1302();
if(temp_mema==13)Set1302();
disp_time(0);
break;
case 6: //设置提前关阀量 "2--60"
if(residue_a>60) residue_a=60;
disp_lcd_clear(0); //清屏
disp_velocity_control(0);
writebyte(87,residue_a);
save_ok=1;
break;
case 7: //设置每秒增量 "09-3"
break;
case 8: //设置中控地址 "Ad-32"
if(gunadd_a>32) gunadd_a=1;
disp_lcd_clear(0); //清屏
disp_address(0);
writebyte(89,gunadd_a);
save_ok=1;
break;
case 9: //进入特殊菜单
disp_pass_vital(0);
break;
default:
break;
}
}
/***************************************************************
* 功能:显示设置菜单项--2#
***************************************************************/
void disp_memu2_set(void)
{ void *pt;
if(menu2==7) menu2=8;
switch(menu2)
{
case 1: //设置单价"00-P"
disp_setprice(1);
if(price_b>0)
{
#if GUNJLMODE>2//单计量时
price_a=price_b;
pt=&price_a;
writebyteseq(498,pt,4); //保存单价
save_ok=1;
table_buf[52] |=0x01; //通知读单价
#endif
pt=&price_b;
writebyteseq(502,pt,4); //保存单价
save_ok=1;
table_buf[52+53] |=0x01;
}
else
{
pt=&(price_b);
readbyteseq(502,pt,4);//单价b
}
break;
case 2: //油品
#if GUNJLMODE>2//单计量时
oil_types_a=oil_types_b;
disp_lcd_clear(0); //清屏
disp_product(0);
writebyte(78,oil_types_a);
save_ok=1;
#endif
if(oil_types_b>7) oil_types_b=0;
disp_lcd_clear(1); //清屏
disp_product(1);
writebyte(79,oil_types_b);
save_ok=1;
break;
case 3: //设置打印机工作方式 "Auto"戓"Hand" 00--[Auto]自动 01--[Hand]手动
#if GUNJLMODE>2//单计量时
printermode_a=printermode_b;
writebyte(92,printermode_a);
save_ok=1;
#endif
disp_printer_mode(1);
writebyte(99,printermode_b);
save_ok=1;
break;
case 4: //选择打印机,"P--0/1"
#if GUNJLMODE>2//单计量时
printermode_a=printermode_b;
writebyte(93,pirnt_select_a);
save_ok=1;
#endif
disp_printselect(1);
writebyte(100,pirnt_select_b);
save_ok=1;
break;
case 5: //修改时钟"t--t"
if(temp_mema==0)Get1302();
if(temp_mema==13)Set1302();
disp_time(1);
break;
case 6: //设置提前关阀量 "2--60"
#if GUNJLMODE>2//单计量时
residue_a=residue_b;
writebyte(87,residue_a);
#endif
if(residue_b>60) residue_b=60;
disp_lcd_clear(1); //清屏
disp_velocity_control(1);
writebyte(94,residue_b);
save_ok=1;
break;
case 7: //设置每秒增量 "09-3"
break;
case 8: //设置中控地址 "Ad-32"
if(gunadd_a>32) gunadd_a=1;
disp_lcd_clear(1); //清屏
disp_address(1);
writebyte(96,gunadd_b);
save_ok=1;
break;
case 9: //进入特殊菜单
disp_pass_vital(1);
break;
default:
break;
}
}
/***************************************************************
* 功能:显示特殊菜单项--1#
***************************************************************/
void disp_memu1_important(void)
{ if(!setpas_a) if(menu1>2)menu1=1;
switch(menu1)
{
case 1: //设置小数点 "08-5"
if(decimal_a>6) decimal_a=2;
disp_setdot(0);
writebyte(90,decimal_a);
table_buf[52] |=0x01;
count_cnta(); //计数器与总累的校正
count_cntb(); //计数器与总累的校正
save_ok=1;
break;
case 2: //设置每秒增量 "09-3"
if(increment_a>23) increment_a=23;
disp_lcd_clear(0); //清屏
disp_dilate(0);
writebyte(91,increment_a);
save_ok=1;
break;
case 3:
ration_mode_a=0;
disp_total_a();
break;
case 4:
ration_mode_a=1;
disp_total_a();
break;
case 5: //Bare
keya_num[0]=keynumdata[15];
keya_num[1]=keynumdata[24];
keya_num[2]=keynumdata[10];
keya_num[3]=keynumdata[11]; //"bArE"
keya_num[4]=0x02;
break;
default:
break;
}
}
/***************************************************************
* 功能:显示特殊菜单项--2#
***************************************************************/
void disp_memu2_important(void)
{ if(!setpas_b) if(menu2>2)menu2=1;
switch(menu2)
{
case 1: //设置小数点 "08-5"
if(decimal_b>6) decimal_b=2;
disp_setdot(1);
writebyte(97,decimal_b);
table_buf[52+53] |=0x01;
count_cnta(); //计数器与总累的校正
count_cntb(); //计数器与总累的校正
save_ok=1;
break;
case 2: //设置每秒增量 "09-3"
if(increment_b>23) increment_b=23;
disp_lcd_clear(1); //清屏
disp_dilate(1);
writebyte(98,increment_b);
save_ok=1;
break;
case 3:
ration_mode_b=0;
disp_total_b();
break;
case 4:
ration_mode_b=1;
disp_total_b();
break;
case 5: //Bare
keyb_num[0]=keynumdata[15];
keyb_num[1]=keynumdata[24];
keyb_num[2]=keynumdata[10];
keyb_num[3]=keynumdata[11]; //"bArE"
keyb_num[4]=0x02;
break;
default:
break;
}
}
/***************************************************************
* 功能:显示加油数据--1#
***************************************************************/
void update_lcd1(void)
{
if(gun1.pulse>disp_floor_level_a)
{
if(!cease_power)disp_lcd(gun1.sale,gun1.liter,0);
}
else
{
if(!cease_power)disp_lcd(0,0,0);
}
}
/***************************************************************
* 功能:显示加油数据--2#
***************************************************************/
void update_lcd2(void)
{
#if GUNJLMODE>2//单计量时
update_lcd1();
#else
if(gun2.pulse>disp_floor_level_b)
{
if(!cease_power)disp_lcd(gun2.sale,gun2.liter,1);
}
else
{
if(!cease_power)disp_lcd(0,0,1);
}
#endif
}
/***************************************************************
* 功能:显示密度系数
***************************************************************/
void disp_coefficient(void)
{ ulong x;
if(ration_num_a==0)x=coefficient_set;
else x=ration_num_a;
keya_num[0]=keynumdata[x%10];x/=10;
keya_num[1]=keynumdata[x%10];x/=10;
keya_num[2]=keynumdata[x%10];x/=10;
keya_num[3]=keynumdata[x%10]+0x80;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -