📄 main.c
字号:
/******************************************************************************
main.c BY xbpda 2003.3.5
*****************************************************************************/
#define MAIN
#define VZ328
#include <stdlib.h>
#include <stdio.h>
#include "ppsm.h"
#include "errors.h"
#include "proto.h"
#include "M68328.h"
#include "Gui.h"
#include "Main.h"
#include "PubVal.h"
#include "PubFun.h"
//extern STATUS CalibratePen(U16 LogoFlag);
extern void VarForSelectFoodInit(void);
extern void SysInit();//应用系统初始化
extern void IrqInit();//中断初始化
extern U8 ChangeCommChannel[2];
extern void RFOn(void); //频率
void main(void)
{
PPSMInit(TRUE);//PPSM初始化
IrqInit(); //中断初始化
//CalibratePen(TRUE);//校准屏幕
TempBitMap=LcallocBit(101,181);
SysInit();//应用系统初始化
//建立用户身份验证任务
if (TaskCreate(&UserVerifyTaskID, (P_VOID)UserVerifyTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(UserVerifyTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立系统菜单
if (TaskCreate(&SysMenuTaskID, (P_VOID)SysMenuTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SysMenuTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立姓名查询任务
if (TaskCreate(&SearchNameTaskID, (P_VOID)SearchNameTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SearchNameTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立点菜查询任务
if (TaskCreate(&LookTableTaskID, (P_VOID)LookTableTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(LookTableTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立发送状态任务 //NewAdd
if (TaskCreate(&SendStatusTaskID, (P_VOID)SendStatusTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SendStatusTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立失败状态任务 //NewAdd
if (TaskCreate(&SendErrorTaskID, (P_VOID)SendErrorTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SendErrorTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立菜类任务
if (TaskCreate(&MenuTypeTaskID, (P_VOID)MenuTypeTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(MenuTypeTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立开台点菜查询任务
if (TaskCreate(&FoodManagerTaskID, (P_VOID)FoodManagerTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(FoodManagerTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立菜品任务
if (TaskCreate(&ViewFoodTaskID, (P_VOID)ViewFoodTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(ViewFoodTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立结帐任务
if (TaskCreate(&CloseOffTaskID, (P_VOID)CloseOffTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(CloseOffTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立查未发送菜品任务
if (TaskCreate(&ViewSelectedFoodTaskID, (P_VOID)ViewSelectedFoodTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(ViewSelectedFoodTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立已发送菜品查询任务
if (TaskCreate(&InquireTaskID, (P_VOID)InquireTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(InquireTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立通信管理任务
if (TaskCreate(&ManageCommTaskID, (P_VOID)ManageCommTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(ManageCommTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立数据下载任务
if (TaskCreate(&WDownLoadDataTaskID, (P_VOID)WDownLoadDataTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(WDownLoadDataTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立系统维护任务
if (TaskCreate(&SysServiceTaskID, (P_VOID)SysServiceTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SysServiceTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立关于系统任务
//if (TaskCreate(&AboutSysTaskID, (P_VOID)AboutSysTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
//if (TaskReInit(AboutSysTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立系统授权任务
if (TaskCreate(&SysRegistTaskID, (P_VOID)SysRegistTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SysRegistTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立系统设置任务
if (TaskCreate(&SysSetTaskID, (P_VOID)SysSetTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SysSetTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//设置本机信息 //NewAdd
if (TaskCreate(&SysSelfSetTaskID, (P_VOID)SysSelfSetTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SysSelfSetTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//浏览本机信息 //NewAdd
if (TaskCreate(&SysSelfBrowseTaskID, (P_VOID)SysSelfBrowseTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SysSelfBrowseTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立系统介绍任务
if (TaskCreate(&SysIntroduceTaskID, (P_VOID)SysIntroduceTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(SysIntroduceTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立系统设置中的输入任务
if (TaskCreate(&InputSysSetID, (P_VOID)InputSysSet,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
if (TaskReInit(InputSysSetID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//建立错误处理任务
// if (TaskCreate(&CommErrorTaskID, (P_VOID)CommErrorTask,0, 0, 0, 0, 0) != PPSM_OK) rv = PPSM_ERROR;
// if (TaskReInit(CommErrorTaskID, TRUE) != PPSM_OK) rv = PPSM_ERROR;
//任务交换
AppSwap(TRUE);
//启动系统菜单任务
if(TaskStart(UserVerifyTaskID)!=PPSM_OK) rv = PPSM_ERROR;
}
extern void RFOff(void);
extern void ELedOff(void);
extern void LCDOff_new(void);
extern void RFPWOff(void);
extern void LEDHealthOff(void);
void UserVerifyTask(void) //用户身份
{
}
U8 CheckEmployeePwd(P_TEXT EmployeeName,P_TEXT PwdStr) //检测员工编号和密码的正确性
{
U8 i;
for (i=0;i<TotalEmployeeNum;i++)
{
if(Strcmp((P_TEXT)Employee[i].EmpName,EmployeeName)==0)
{
if (Strcmp( (P_TEXT)Employee[i].EmpPwd,PwdStr)==0 ) return i;
else return 0xFF;
}
}
return 0xFE;
}
//////////////////////////////////////////////////////////////////////
U16 ListName(U8 PageID);
void SearchNameTask(void) //姓名查询任务
{
U32 size;
U32 id;
S16 xSrc, ySrc, xDest, yDest;
P_U16 inData;
U8 i,j,m;
U8 TmpCurrentID=0;
U8 TmpTotalNameNum;
U8 PageID=0;
TEXT TitleTxt[]={'查','询',0};
TEXT TableTitleTxt[2][4]={{'编','号',0},{'姓',' ','名',0}};
TEXT cmdButtonTxt[2][3]={{'上','页',0},{'下','页',0}};
U32 cmdButtonID[2];
U32 MsgButtonOKID;
U32 TmpSelectedNameID[9];
U16 ColWidth[2]={80,141};
Draw_Logo((P_TEXT)TitleTxt);
Draw_Table(14,30, 2, 1 , (P_U16)ColWidth, 19);
PutString((P_TEXT)TableTitleTxt[0],37,32);
PutString((P_TEXT)TableTitleTxt[1],140,32);
Draw_Table(14, 49, 2, 9, (P_U16)ColWidth, 23);
for (i=0;i<2;i++)
{
Text_Button3D(&cmdButtonID[i],(P_TEXT)cmdButtonTxt[i],120*i+25,270,85,26,2);
}
for (i=0;i<9;i++)
{
Active_AreaEnable(&TmpSelectedNameID[i], 15, 23*i+50, 219, 21);
}
//OpenCommPort(SearchNameTaskID);
TmpTotalNameNum=ListName(PageID);
while(1)
{
switch(IrptGetData((P_U32)&id, (P_U32*)&inData, (P_U32)&size))
{
case IRPT_RTC:
if (id==TimerRTCId) RTCTimerEvent();
break;
case IRPT_UART:
if (*inData == UART_DATA_RECEIVED) RecvData();
break;
case IRPT_ICON:
if (ActiveAreaRead(id,&xSrc,&ySrc,&xDest,&yDest)!= PPSM_OK) rv = PPSM_ERROR;
if (InvRec(xSrc+1,ySrc+1,(xDest-(xSrc+1)),(yDest-(ySrc+1)))!= PPSM_OK) rv = PPSM_ERROR;
if (AutoPowerOff!=0) PDAOpenTime=0;
if (*inData == PPSM_ICON_PEN_UP)
{
if (id==cmdButtonID[0]) //上页
{
if (PageID>0)
{
PageID--;
TmpTotalNameNum=ListName(PageID);
}
break;
}
else if (id==cmdButtonID[1])//下页
{
if ((PageID+1)*9<TotalEmployeeNum)
{
PageID++;
TmpTotalNameNum=ListName(PageID);
}
break;
}
else
{
for (i=0;i<TmpTotalNameNum;i++)
{
if (id==TmpSelectedNameID[i])
{
//LookNameFlag=TRUE;
EmployeeIndex=PageID*9+i;
CloseCommPort(UserVerifyTaskID);
break;
}
}
break;
}
}
break;
default:
break;
}
}
}
U16 ListName(U8 PageID) //显示名字和编号
{
U8 i;
for(i=0;i<9;i++)
{
Clear_Rec(WHITE,15,23*i+50,78,21);
Clear_Rec(WHITE,96,23*i+50,138,21);
}
for (i=0;i<9;i++)
{
if ((PageID*9+i)<TotalEmployeeNum)
{
PutAssic((P_TEXT)Employee[PageID*9+i].EmpNo,22,i*23+52);
PutString((P_TEXT)Employee[PageID*9+i].EmpName,105,i*23+52);
}
else return i;
}
return 9;
}
//*********************NewAdd***清除闪存留痕记录和标记*******************************
void ClearDeadSaveFlash(void) //检测是否正常关机
{
U32 address;
GetSaveIndex=0;
address = SAVETASKADDR;
ram_perase_sector(28); //先擦除这个扇区
ram_pwrite_word(address,0xFFAA); //往扇区中写存储标志
address+=2;
ram_pwrite_word(address,GetSaveIndex);
}
//*************************************************************************************
extern U8 RFONFlag;
U8 CheckSelectIndex;
void SysMenuTask(void) //主界面函数
{
U32 size;
U32 id;
S16 xSrc, ySrc, xDest, yDest;
P_U16 inData;
U8 i,j;
TEXT TitleTxt[]={0};
TEXT cmdButtonTxt[4][5]={{'点',' ',' ','菜',0},{'无','线','下','载',0},{'系','统','维','护',0},{'退','出','系','统',0}};
U32 cmdButtonID[4];
TEXT MsgBoxTitelTxt[]={'操','作','提','示',0};
TEXT AssureMessageTxt[]={'您','确','定','要','退','出','系','统','吗','? ',0};
U32 MsgButtonID[2];
U32 MsgButtonOKID;
TEXT MsgNoTableTxt[]={'您','没','有','下','载','桌','台','数','据','! ',0};
SignalValue=5;
Draw_Signal(SignalValue);
Draw_Logo((P_TEXT)TitleTxt);
for (i=0;i<3;i++)
{
Text_Button3D(&cmdButtonID[i],(P_TEXT)cmdButtonTxt[i],45,i*45+30,160,35,2);
}
Text_Button3D(&cmdButtonID[3],(P_TEXT)cmdButtonTxt[3],45,260,160,35,2);
OpenCommPort(SysMenuTaskID);
while(1)
{
switch(IrptGetData((P_U32)&id, (P_U32*)&inData, (P_U32)&size))
{
case IRPT_RTC:
if (id==TimerRTCId) RTCTimerEvent();
break;
case IRPT_UART:
if (*inData == UART_DATA_RECEIVED) RecvData();
break;
case IRPT_ICON:
if (ActiveAreaRead(id,&xSrc,&ySrc,&xDest,&yDest)!= PPSM_OK) rv = PPSM_ERROR;
if (InvRec(xSrc+1,ySrc+1,(xDest-(xSrc+1)),(yDest-(ySrc+1)))!= PPSM_OK) rv = PPSM_ERROR;
if (AutoPowerOff!=0) PDAOpenTime=0;
if (*inData == PPSM_ICON_PEN_UP)
{
if (id==cmdButtonID[0]) //点菜
{
CheckSelectIndex=1;
for (i=0;i<4;i++) TempTableStr[i]=0;
CloseCommPort(LookTableTaskID);
break;
}
else if (id==cmdButtonID[1]) //无线下载
{
CloseCommPort(ManageCommTaskID);
break;
}
else if (id==cmdButtonID[2]) //系统维护
{
CloseCommPort(SysServiceTaskID);
break;
}
else if (id==cmdButtonID[3]) //退出系统
{
MessageBox((P_TEXT)MsgBoxTitelTxt, (P_TEXT)AssureMessageTxt, 2, &MsgButtonID[0], TempBitMap);
break;
}
else if (id==MsgButtonID[0]) //退出系统对话框[是]
{
EmployeeIndex=0;
LookNameFlag=FALSE;
ClearDeadSaveFlash();
CloseMsgBox(TempBitMap,2,&MsgButtonID[0]);
CloseCommPort(UserVerifyTaskID);
break;
}
else if (id==MsgButtonID[1]) //退出系统对话框[否]
{
CloseMsgBox(TempBitMap,2,&MsgButtonID[0]);
break;
}
else if (id==MsgButtonOKID)
{
CloseMsgBox(TempBitMap,1,&MsgButtonOKID);
break;
}
}
default:
break;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -