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

📄 appmain.c.bak

📁 手机点菜系统手机端,利用GPRS实现菜名上报
💻 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 + -