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

📄 main.c

📁 比较不错的ppsm系统源码 比较不错的ppsm系统源码
💻 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 + -