?? appmain.c
字號:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <api.h>
//#include <memcard.h>
#include <ExEH0218.h>
#include "Health.h"
//#include "ExEH0218.h"
#define POWER_DELAY 4 // 開機按電源鍵延時1秒
#define MENU_COUNT 4
//#define FLASH_ADDR ((char*)0xA0000)
NVVAR(char first_run);
NVVAR(unsigned long kb_mask);
NVVAR(unsigned long el_mask);
NVVAR(unsigned int ac_time);
NVVAR(unsigned int el_time);
NVARR(char PosId[8]);
void main()
{
int kind, first,light=0;
GETSTR_PARAM gs;
typ_RTC_date_rec rdr;
const char mmenu[8*16+2] = "1.DEMOGRAHICINFO2.HEALTH SUMMARY3.RELATIVES 4.INSURANCES 5.PHYSICIANS 6.POS ID 7.SYSTEM TIME 8.SYSTEM SETUP ";
const char mmenu2[2*16+2] = "1.Set POSid 2.Set Time ";
unsigned char distmp[500],tmpstr[500],AscTime[60],tmp[30],Card_Read_Buff[256],tmpasc[10];
int ret;
BROWINFO bi,bi1;
char hour,minute,second;
char month,day;
int year;
if (NVRAM_invalid()||first_run!='Q')
{ // nvram init
first_run = 'Q';
//logo = 0;
ac_time = 30;
el_time = 5;
kb_mask = 0x00007fff;
el_mask = 0x00007fff;
}
KEY_init(KEY_BEEP_KEY|KEY_AUTO_EL_ON);
Disp_icon_customize(DISP_ICON_C_BATTERY);
set_LCD_contrast( 30 );
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_E(0,2,"Power Low",DISP_CENTER|DISP_CLRSCR);
DispStr_E(0,4,"Please Charging",DISP_CENTER);
delay_and_wait_key( 0, EXIT_KEY_ALL, 0 );
}
/*if ( Refresh_Battery()<2 )
{
DispStr_CE(0,2,"low voltage",DISP_CENTER|DISP_CLRSCR);
DispStr_CE(0,4,"Please charging",DISP_CENTER);
delay_and_wait_key( 2, 0, 0 );
}*/
DispStr_E(0,1,"Welcome",DISP_CENTER|DISP_CLRSCR);
DispStr_E(0,3,"Healthmeans",DISP_CENTER);
DispStr_E(0,5,"POS System V1.0",DISP_CENTER);
delay_and_wait_key( 5, EXIT_KEY_ALL, 0 );
KEY_read();
//init_db();
//chk_sys_db_format(); //must read the database parameter here and check the database format
bi.lPtr = bi.cPtr = 0;
while(1)
{
clr_scr(); // clear screen
bi.iStr = (char *)mmenu;
bi.mInt = 8;
bi.lineMax = 16;
bi.sFont = 0;
bi.numEnable = 1;
bi.startLine = 0;
bi.dispLines = 4;
bi.qEvent = EXIT_KEY_POWER|EXIT_AUTO_QUIT|EXIT_KEY_F3; // Enter[F3]and [POWER] exit
bi.autoexit = 30; // 30s auto power off
kind = brow_select( &bi ); // 顯示主菜單
switch(kind)
{
case 0:
Personal_info();
break; // PERSONAL INFORMATION
case 1:
Health_sum(); //HEALTH SUMMARY
break;
case 2:
Relatives(); //RELATIVES
break;
case 3:
Insurances();
break; // INSURANCES
case 4:
Physicians();
break; // PHYSICIANS
case 5:
DispStr_E(0,1,"POS ID:",DISP_CENTER|DISP_CLRSCR);
memset(tmpstr,0,9);
memcpy(tmpstr,PosId,8);
DispStr_E(0,3,tmpstr,DISP_CENTER);
delay_and_wait_key( 10, EXIT_KEY_ALL, 0 );
break;
case 6:
rdr.l_word = RTC_read_date();
memset(AscTime,0,sizeof(AscTime));
sprintf(AscTime,"%02d/%02d/%04d",rdr.fields.month,rdr.fields.day,rdr.fields.year);
DispStr_E(0,1,"System Time",DISP_CENTER|DISP_CLRSCR);
DispStr_E(0,3,AscTime,DISP_CENTER);
delay_and_wait_key( 5, EXIT_KEY_ALL, 0 );
break;
case 7:
DispStr_E(0,0,"Please Select",DISP_POSITION|DISP_CLRSCR);
bi1.iStr = (char *)mmenu2;
bi1.mInt = 2;
bi1.lineMax = 16;
bi1.sFont = 0;
bi1.lPtr = 0;
bi1.cPtr = 0;
bi1.startLine = 1;
bi1.dispLines = 3;
bi1.numEnable = 1;
bi1.autoexit = 10;
bi1.qEvent = EXIT_KEY_F1;
for ( ; ; )
{
ret = brow_select( &bi1 );
if( bi1.qEvent == EXIT_KEY_F1 )
break;
switch(ret)
{
case 0:
DispStr_E(0,1,"Enter 8bit ID:",DISP_CENTER|DISP_CLRSCR);
gs.qx = 0;
gs.qy = 4; // 在第2行輸入
gs.alpha = 0; // 不允許字符輸入
gs.nullEnable = 0; // 不允許輸入空字符串
gs.sFont = 0; // 7x9大字體
gs.pPrompt = ""; // 提示語句
gs.csChar = '_'; // 光標字符'_'
gs.pwChar = 0;
gs.spChar = 1; // 不允許分隔字符
gs.pStr = PosId; // 輸入字符串放在中
gs.maxNum = 8; // 最多允許6個字符
gs.minNum = 6; // 最少必須1個字符
gs.minValue = -1; // 最小值
gs.maxValue = -1; // 最大值
gs.retNum =0; // 無初始值
gs.autoexit = 0; // 30秒無按鍵自動退出
gs.qEvent = EXIT_KEY_F1|EXIT_AUTO_QUIT; // 默認按[F1]及無按鍵自動退出
ret = huGetStr_E(&gs);
if(!ret) DispStr_E(0,1,"Setup ID success",DISP_CENTER|DISP_CLRSCR);
else
{
DispStr_E(0,1,"Setup ID Failed",DISP_CENTER|DISP_CLRSCR);
Alarm();
}
delay_and_wait_key( 5, EXIT_KEY_ALL, 0 );
break;
case 1:
DispStr_E(0,0,"Plesde Set Time",DISP_CENTER|DISP_CLRSCR);
DispStr_E(0,2,"mmddyyhhmmss",DISP_CENTER);
gs.qx = 0;
gs.qy = 4; // 在第2行輸入
gs.alpha = 0; // 不允許字符輸入
gs.nullEnable = 0; // 不允許輸入空字符串
gs.sFont = 0; // 7x9大字體
gs.pPrompt = ""; // 提示語句
gs.csChar = '_'; // 光標字符'_'
gs.pwChar = 0;
gs.spChar = 1; // 不允許分隔字符
gs.pStr = tmp; // 輸入字符串放在中
gs.maxNum = 12; // 最多允許6個字符
gs.minNum = 12; // 最少必須1個字符
gs.minValue = -1; // 最小值
gs.maxValue = -1; // 最大值
gs.retNum =0; // 無初始值
gs.autoexit = 0; // 30秒無按鍵自動退出
gs.qEvent = EXIT_KEY_F1|EXIT_AUTO_QUIT; // 默認按[F1]及無按鍵自動退出
ret = huGetStr_E(&gs);
if(ret)
{
DispStr_E(0,1,"Set Time Failed",DISP_CENTER|DISP_CLRSCR);
Alarm();
}
else
{
typ_RTC_date_rec devicedate;
char devicemonth,deviceday;
int deviceyear;
DispStr_E(0,1,"Set Time success",DISP_CENTER|DISP_CLRSCR);
month=(tmp[0]-'0')*10+(tmp[1]-'0');
day=(tmp[2]-'0')*10+(tmp[3]-'0');
year=(tmp[4]-'0')*10+(tmp[5]-'0')+2000;
hour=(tmp[6]-'0')*10+(tmp[7]-'0');
minute=(tmp[8]-'0')*10+(tmp[9]-'0');
second=(tmp[10]-'0')*10+(tmp[11]-'0');
if(RTC_set_date(MAKE_DATE(year,month,day))==-1)
{
DispStr_CE(0,6,"MAKE_DATE error",DISP_CENTER|DISP_CLRSCR);
Alarm();
delay_and_wait_key( 2, 0, 0 );
break;
}
if(RTC_set_time(MAKE_TIME(hour, minute, second)) == -1)
{
;//dt_DetectStatus(MSG_-1);
DispStr_CE(0,6,"MAKE_TIME error",DISP_CENTER|DISP_CLRSCR);
Alarm();
delay_and_wait_key( 2, 0, 0 );
break;
}else
{
typ_RTC_time_rec Current_Time;
Current_Time.l_word = RTC_read_time();
Disp_7_SEG_Time(Current_Time.fields.hour, Current_Time.fields.minute);
//refresh_icon();
}
}
delay_and_wait_key( 5, EXIT_KEY_ALL, 0 );
break;
default:
break;
}
//data_transmit();
break;
}
break;
default:
ICC_interface_power(ICC_POWER_OFF);
UART_init(UART_OFF);
if (bi.qEvent==EXIT_KEY_POWER||bi.qEvent==EXIT_AUTO_QUIT)
{
Halt_EH0218(POWER_DELAY); // Power off
goto REBOOT;
}
else if ( bi.qEvent==EXIT_KEY_F3 ) // Enter [F3] show edition
{
//DispStr_CE(0,1,"Welcome",DISP_CENTER|DISP_CLRSCR);
DispStr_E(0,1,"HEALTHMEANS",DISP_CENTER|DISP_CLRSCR);
DispStr_E(0,3,"POS System V3.0",DISP_CENTER);
DispStr_E(0,5,"06/2006 by zyh",DISP_CENTER);
delay_and_wait_key( 20, EXIT_KEY_ALL, 0 );
}
}//end switch
}//end while
}
//======================================================================
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -