📄 appmain.c.bak
字号:
//*********************************************************************************************
//手持机点菜应用程序 -- 业务流程二
//起始时间: 2005/07/14
//作者:梅海华
//File : appmain.c
//Function: entery for this application
//*********************************************************************************************
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <api.h>
#include <database.h>
#include "ExEH0218.h"
#include "hd_dt_wl.h"
//#include "db.h"
#include "common.h"
#define DEBUG_MODE
#define VERSION_KM "Version 0.00"
#define POWER_DELAY 4 // 开机按电源键延时1秒
const char mMenu[8*16+2] = "1.点菜 2.加菜 3.查看及上传 4.换楼层 5.结账 6.设置密码 7.测试 8.查询 \0";
const char sMenu[6*16+2] = "1.数据通讯 2.设置手持机编号3.无线测试 \0";
NVVAR(char first_run); //第一次运行标志
NVVAR(unsigned long kb_mask); //键盘声音key掩码
NVVAR(unsigned long el_mask); //被关key掩码
NVVAR(unsigned int ac_time); //自动关机时间
NVVAR(unsigned int el_time); //背光的延时时间
NVVAR(short g_LCD_contrast); //lcd contranst
NVARR(unsigned char g_desk_NO[6+1]); //台号,原为4字节,改为6个字节
NVARR(unsigned char g_person_num); //当前台号的人数
NVARR(unsigned char g_waiter_NO[4+1]); //点菜人编号
NVARR(unsigned char g_waiter_PWD[4+1]); //员工密码
NVARR(short g_hd_pwd[9]); //系统设置密码(F3进入系统设置密码)
NVVAR(unsigned char g_id_self); //手持机的通讯地址,手持机的编号,由酒店统一编号
NVVAR(unsigned char g_id_server); //服务器通讯通讯地址,一般缺省为0xFF
NVVAR(unsigned char g_comm_current_id); //点菜用的流水号,目前没有使用该参数,只是作为0传给上位机,作为将来使用
NVVAR(short g_com_port); //当前的通讯口:红外,串口,232
NVVAR(int g_curr_floor); //当前楼层,当前所处的楼层
NVARR(unsigned char g_info_path_array[16]); //当前的信道号数组
NVVAR(int g_info_path_array_len); //当前信道的个数,g_info_path_array的有效长度
NVVAR(unsigned char g_curr_info_path); //当前的信道号,取g_info_path_array中的一个值
NVVAR(unsigned char g_menu_set_float_percent);//套餐价格浮动比例
int g_flag_login = 0; //0:没有登陆 1:登陆
//版本显示
void Version()
{
DispStr_CE(0,1,"无线手持机通讯",DISP_CENTER|DISP_CLRSCR);
DispStr_CE(0,4,"演示程序",DISP_CENTER);
DispStr_CE(0,7,VERSION_KM,DISP_CENTER|DISP_5x7);
if(delay_and_wait_key( 5, EXIT_KEY_ALL, 0 )==EXIT_KEY_F3)
{
menu_sysset();
}
}
//主菜单
int menu_main()
{
short ret ;
int cPtr = 0;
int lPtr = 0;
unsigned char p_menu_namelzm[1000];
unsigned long p_arr_idlzm[100];
ret = 0;
while(1)
{
ret = browse_menu(0,mMenu,&cPtr,&lPtr );
switch( ret )
{
case 0:
//order_dish();
order_dish_leap();
break;
case 1:
order_dish_relay();
break;
case 2:
browse_client_cur_rec();
break;
case 3:
select_floor_set();
break;
case 4:
mifare_operate();
break;
case 5: change_passwd();
break;
case 6: browse_append(p_menu_namelzm,p_arr_idlzm);
break;
case 7: comm_search();
break;
case -1:
case -2:
case -3:
case -4:
return ret;
break;
default:
break;
}
}
}
//系统设置菜单
int menu_sysset()
{
int ret=0;
int cPtr = 0;
int lPtr = 0;
while(1)
{
ret = browse_menu(0,sMenu,&cPtr,&lPtr );
switch( ret )
{
case 0:
data_transmit();
break;
case 1:
set_self_id();
break;
case 2:
wireless();
break;
case -1:
case -2:
case -3:
case -5:
return ret;
break;
default:
break;
}
}
}
//*************************************************************
//System entry
//*************************************************************
int main(void)
{
int ret;
append_count_count_count(DB_count_records(2));
if (NVRAM_invalid()||first_run!='Q')
{ // nvram初始化
first_run = 'Q';
ac_time = 120;
el_time = 5;
g_LCD_contrast = 30;
kb_mask = 0x00007fff;
el_mask = 0x00007fff;
g_id_self = 0xff;
g_id_server = 0xff;
memset(g_desk_NO,0,sizeof(g_desk_NO));
g_person_num = 0;
memset(g_waiter_NO,0,sizeof(g_waiter_NO));
memcpy(g_waiter_PWD,"1234",5);//初始化服务员ID
g_com_port = PORT_UART_MODEM;
g_comm_current_id = 0;
memset(g_hd_pwd,' ',9);
memcpy(g_hd_pwd,"123456",7);//初始化密码
//信道初始化
g_curr_floor = -1;
g_info_path_array_len = 0;
g_curr_info_path = 15;
g_menu_set_float_percent = 10;
}
g_flag_login = 0;
//KEY_init(KEY_BEEP_KEY|KEY_AUTO_EL_ON);
KEY_init(KEY_BEEP_KEY);
set_LCD_contrast( g_LCD_contrast );
chk_sys_db_format(); //must read the database parameter here and check the database format
//信道初始化,初始化库的static变量
REBOOT:
//Disp_icon_customize(DISP_ICON_C_BATTERY);
sm_setting(MSK_KEY_UP|MSK_KEY_DOWN);
EL_set_time_out(el_time);
kb_mask = 0x00007fff;
el_mask = 0x00007fff;
KEY_beep_mask_set(kb_mask);
KEY_EL_mask_set(el_mask);
Disp_init(DISP_INIT_ON);
if ( Refresh_Battery()<2 )
{
DispStr_CE(0,3,"电量低,请充电",DISP_CENTER|DISP_CLRSCR);
delay_and_wait_key( 0, EXIT_KEY_ALL, 0 );
}
Version();
read_self_id();
select_floor_set();
ret = -2;
while(1)
{
switch(ret)
{
case -1:
Halt_EH0218(POWER_DELAY);
goto REBOOT;
break;
case -2:
ret = menu_main();
break;
case -3:
ret = menu_sysset();
break;
default:
ret = menu_main();
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -