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

📄 setparam.cpp

📁 高速公路收费系统车道软件. 功能: 1 检测公路过往车辆 2 收费过程控制和数据采集 3 车辆信息和图片上传服务器.
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// SetParam.cpp: implementation of the CSetParam class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "lane_new.h"
#include "SetParam.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

extern CLane_newApp theApp;
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

UINT CSetParam::nLine;
UINT CSetParam::nStatus;
char CSetParam::strParam[128];
UINT CSetParam::nSelectItem;
CSetParam::CSetParam()
{
}

//	处理按键
BOOL CSetParam::ProcessKeyboard(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nStatus){
	case SHOW_SET_MENU:
		bLegalityFlag=ProcessKeyAtMenu(nChar);
		break;
	case SHOW_SET_PARAM1:
	case SHOW_SET_PARAM2:
		bLegalityFlag=ProcessKeyAtParam1(nChar);
		break;
	}
	if(CScreen::ProcessKeyboard(nChar))
		bLegalityFlag=TRUE;
	return bLegalityFlag;
}

//	处理设置菜单下的按键
BOOL CSetParam::ProcessKeyAtMenu(UINT nChar)
{
	BOOL bLegalityFlag=FALSE;
	switch(nChar){
	case ONE_KEY:
		nSelectItem=1;
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,SET_MENU_OK,0);
		break;
	case END_KEY:
		bLegalityFlag=TRUE;
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,END_SHIFT_PRESS,0);
		break;
	}
	return bLegalityFlag;
}

//	处理设置参数窗口1下的按键
BOOL CSetParam::ProcessKeyAtParam1(UINT nChar)
{
	static char strInputData[16];	//存储用户键入的字符串
	if(nChar==VALID_KEY){			//确认键保存数据,返回
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,SET_PARAM_OK,0);
		return TRUE;
	}
	if(nChar==CANCEL_KEY){			//取消键放弃修改,返回
		SendMessage(theApp.m_pMainWnd->m_hWnd,WM_OPTION_FINISH,SET_PARAM_CANCEL,0);
		return TRUE;
	}
	if(nChar==UP_KEY){				//光标上移
		if(nLine==0){
			nLine=7;
		} else {
			nLine--;
		}
		memset(strInputData,0,16);
		DrawParamValue();
		return TRUE;
	}
	if(nChar==DOWN_KEY){			//光标下移
		if(nLine==7)
			nLine=0;
		else 
			nLine++;
		memset(strInputData,0,16);
		DrawParamValue();
		return TRUE;
	}
	switch(nLine){					//判断当前光标所在行数
	case 0:							//车道序号
	case 1:							//车道地址
	case 2:							//收费站号码
//	允许范围:0 - 99
		if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
			if(strlen(strInputData)==1){
				strInputData[1]=strParam[nLine*16+1]=nChar;
			} else {
				memset(strInputData,0,16);
				strInputData[0]=strParam[nLine*16]=nChar;
				strParam[nLine*16+1]=' ';
			}
		}
		break;
	case 3:							//本地端口号
	case 4:							//消息服务器端口号
//	允许范围:0 - 9999
		if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
			switch(strlen(strInputData)){
			case 1:
				strInputData[1]=strParam[nLine*16+1]=nChar;
				memmove(strParam+nLine*16+2,"  ",2);
				break;
			case 2:
				strInputData[2]=strParam[nLine*16+2]=nChar;
				strParam[nLine*16+3]=' ';
				break;
			case 3:
				strInputData[3]=strParam[nLine*16+3]=nChar;
				break;
			default:
				memset(strInputData,0,16);
				strInputData[0]=strParam[nLine*16]=nChar;
				memmove(strParam+nLine*16+1,"   ",3);
				break;
			}
		}
		break;
	case 5:							//消息服务器IP地址
	case 6:							//图片服务器IP地址
		if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
			switch(strlen(strInputData)){
			case 1:
				if(((strInputData[0]==ONE_KEY)&&(nChar==NINE_KEY))||((strInputData[0]==TWO_KEY)&&(nChar<THREE_KEY))){
					strInputData[1]=strParam[nLine*16+1]=nChar;
					memmove(strParam+nLine*16+2," .   .   .   ",13);
				}
				break;
			case 2:
				if(((atoi(strInputData)==19)&&(nChar>=TWO_KEY))||((atoi(strInputData)==22)&&(nChar<=THREE_KEY))||(strInputData[1]<TWO_KEY)){
					strInputData[2]=strParam[nLine*16+2]=nChar;
					strInputData[3]=strParam[nLine*16+3]='.';
					memmove(strParam+nLine*16+4,"   .   .   ",11);
				}
				break;
			case 4:
				if((nChar>=ZERO_KEY)&&(nChar<=TWO_KEY)){
					strInputData[4]=strParam[nLine*16+4]=nChar;
					memmove(strParam+nLine*16+5,"  .   .   ",10);
				}
				break;
			case 5:
				if((strInputData[4]<TWO_KEY)||((strInputData[4]==TWO_KEY)&&(nChar<=FIVE_KEY))){
					strInputData[5]=strParam[nLine*16+5]=nChar;
					memmove(strParam+nLine*16+6," .   .   ",9);
				}
				break;
			case 6:
				if((atoi(strInputData+4)<25)||((atoi(strInputData+4)==25)&&(nChar<=FIVE_KEY))){
					strInputData[6]=strParam[nLine*16+6]=nChar;
					strInputData[7]=strParam[nLine*16+7]='.';
					memmove(strParam+nLine*16+8,"   .   ",7);
				}
				break;
			case 8:
				if((nChar>=ZERO_KEY)&&(nChar<=TWO_KEY)){
					strInputData[8]=strParam[nLine*16+8]=nChar;
					memmove(strParam+nLine*16+9,"  .   ",6);
				}
				break;
			case 9:
				if((strInputData[8]<TWO_KEY)||((strInputData[8]==TWO_KEY)&&(nChar<=FIVE_KEY))){
					strInputData[9]=strParam[nLine*16+9]=nChar;
					memmove(strParam+nLine*16+10," .   ",5);
				}
				break;
			case 10:
				if((atoi(strInputData+8)<25)||((atoi(strInputData+8)==25)&&(nChar<=FIVE_KEY))){
					strInputData[10]=strParam[nLine*16+10]=nChar;
					strInputData[11]=strParam[nLine*16+11]='.';
					memmove(strParam+nLine*16+12,"   ",3);
				}
				break;
			case 12:
				if((nChar>=ZERO_KEY)&&(nChar<=TWO_KEY)){
					strInputData[12]=strParam[nLine*16+12]=nChar;
					memmove(strParam+nLine*16+13,"  ",2);
				}
				break;
			case 13:
				if((strInputData[12]<TWO_KEY)||((strInputData[12]==TWO_KEY)&&(nChar<=FIVE_KEY))){
					strInputData[13]=strParam[nLine*16+13]=nChar;
					strParam[nLine*16+14]=' ';
				}
				break;
			case 14:
				if((atoi(strInputData+12)<25)||((atoi(strInputData+12)==25)&&(nChar<=FIVE_KEY))){
					strInputData[14]=strParam[nLine*16+14]=nChar;
				}
				break;
			default:
				if((nChar==ONE_KEY)||(nChar==TWO_KEY)){
					memset(strInputData,0,16);
					strInputData[0]=strParam[nLine*16]=nChar;
					memmove(strParam+nLine*16+1,"  .   .   .   ",14);
				}
				break;
			}
		}
		break;
	case 7:								//车道备份数据保存时间
//	允许范围:0 - 99
		if((nChar>=ZERO_KEY)&&(nChar<=NINE_KEY)){
			if(strlen(strInputData)==1){
				strInputData[1]=strParam[nLine*16+1]=nChar;
			} else {
				memset(strInputData,0,16);
				strInputData[0]=strParam[nLine*16]=nChar;
				strParam[nLine*16+1]=' ';
			}
		}
		break;
	}
	DrawParamValue();
	return TRUE;
}

//	绘制工作窗口
CSetParam::DrawWorkInfo(UINT nSlaveStatus)
{
	nStatus=nSlaveStatus;
	switch(nSlaveStatus){
	case SHOW_SET_MENU:
		DrawSetMenu();
		break;
	case SHOW_SET_PARAM1:
	case SHOW_SET_PARAM2:
		DrawParam1();
		break;
	}
}

//	绘制设置菜单
void CSetParam::DrawSetMenu()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -