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

📄 uifax.c

📁 这个是单片机4200的ui程序
💻 C
📖 第 1 页 / 共 5 页
字号:
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						
						strncpy(gMFPSettingNvram.Common.zIDName, inputbuf,MACHINE_ID_NAME_LENGTH);
						strncpy(gUIMain.commonsetting.zIDName,inputbuf,MACHINE_ID_NAME_LENGTH);
						FaxAPI_SetUItoFaxParam_MachineID_Name();

						NU_Sleep(400);
						
						NVFlashDataWrite(MFPSETTINGS);

						strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));			
						strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
						setconfirm = FALSE;
						LCDCursorOff();
						step = 0;
						lastbutton = PANEL_NONE;
						memset(inputbuf, 0, sizeof(inputbuf));
						}
					else if(currentmenu->type == PHONEBOOKINPUT)
						{
						//memcpy(phonebook.PBrecord[udefault].sTelName, inputbuf,sizeof(inputbuf));
						
						strncpy(phonerecodetemp.sTelName, inputbuf,NAME_CHAR_MAX);
						setconfirm = FALSE;
						step = 2;
						memset(inputbuf, 0, sizeof(inputbuf));
						if(currentmenu->dispID == DISP_ADD_PER||currentmenu->dispID == DISP_EDIT_PER)
							PhoneBookDialInput(PANEL_SELECT);
						else if(currentmenu->dispID == DISP_ADD_GRP)
							PhoneBookPersonNumInput(PANEL_SELECT);
						else if(currentmenu->dispID == DISP_EDIT_GRP)
							PhoneBookPersonNumEdit(PANEL_SELECT);
						return;
						}
					else if(currentmenu->dispID == DISP_DELAY_FAX)
						{
						strncpy(gMFPSettingNvram.Fax.delayfax.faxid,inputbuf,NAME_CHAR_MAX);
						setconfirm = FALSE;
						step = 4;
						memset(inputbuf, 0, sizeof(inputbuf));
						DlyTimeInput(PANEL_SELECT);
						return;
						}
					}
				}
			break;
		case PANEL_NUM0:
			break;
		case PANEL_NUM1:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_NUM1,currentmenu);
			break;
		case PANEL_NUM2:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_NUM2,currentmenu);
			break;
		case PANEL_NUM3:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_NUM3,currentmenu);
			break;
		case PANEL_NUM4:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_NUM4,currentmenu);
			break;
		case PANEL_NUM5:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_NUM5,currentmenu);
			break;
		case PANEL_NUM6:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_NUM6,currentmenu);
			break;
		case PANEL_NUM7:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_NUM7,currentmenu);
			break;
		case PANEL_NUM8:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_NUM8,currentmenu);
			break;
		case PANEL_NUM9:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_NUM9,currentmenu);
			break;
		case PANEL_STAR:
			if(setconfirm == TRUE)
				{
				if(flag == INPUT_CHAR)
					flag = INPUT_NUM;
				else
					flag = INPUT_CHAR;
				CharSymbolTableInitial(chSymTbl, flag);
				lastbutton = PANEL_STAR;
				if(inputindex>=LCD_LINE_MAX)
					showbuf = inputbuf+inputindex-LCD_LINE_MAX;
				else
					showbuf = inputbuf;
				
				if(currentmenu->dispID == DISP_MACHINE_ID||currentmenu->dispID == DISP_DELAY_FAX)
					{
					strcpy(buftemp,GetMsgData(DISP_MYTECS_REPFAX_ID));
					sprintf(firstlinebuf,"%s:           %s",buftemp,inputflag[flag]);
					}
				else
					{
					strcpy(buftemp,GetMsgData(DISP_NAME));
					sprintf(firstlinebuf,"%s:         %s",buftemp,inputflag[flag]);
					}
				sprintf(secondlinebuf,"%s",showbuf);
				}
			break;
		case PANEL_SHARP:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_SHARP,currentmenu);
			break;
		case PANEL_PAUSE:
			if(setconfirm == TRUE)
				EditorCharInput(PANEL_PAUSE,currentmenu);
			break;
		default:
			break;
		}
		//sprintf(buf,"%-20s\n%-20s",firstlinebuf,secondlinebuf);
		//DisplayLCD(0, buf, strlen(buf));
		LCDDisplayClear();
		
		if(setconfirm == TRUE)
			{
			DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
			DisplayLCD(1, secondlinebuf, LEFT,FALSE);
			LCDCursorPos(curindex, 1);
			}
		else
			{
			DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
			DisplayLCD(1, secondlinebuf, AlignL2,TRUE);
			}
}

void DialInputType(Uint8 action)
{
    	char *showbuf;
	char *buftemp;
//	char buf[42];
	Uint8 bufcount;
	P_MAIN_MENU_LIST currentmenu;
	Uint8 AlignL1,AlignL2;

	currentmenu = gpMenudata ->ml + gpMenudata ->mlIndex;

	AlignL1 = currentmenu->firstline;
	AlignL2 = currentmenu->secondline;
	
	switch(action)
		{
		case PANEL_ARROWRIGHT:
			if(setconfirm == TRUE)
				{
				bufcount = strlen(inputbuf);
				if(curindex>bufcount+3||inputindex == bufcount)
					break;
				else
					{
					inputindex++;
					if(curindex <LCD_LINE_MAX-1)
						EditorCursorPlus();//curindex++
					}
				if(inputindex>=LCD_LINE_MAX-4-1)
					showbuf= inputbuf+inputindex-(LCD_LINE_MAX-4-1);
				else
					showbuf = inputbuf;

				strcpy(firstlinebuf,GetMsgData(currentmenu->dispID));
				strcpy(buftemp,GetMsgData(DISP_TEL));
				sprintf(secondlinebuf,"%s=%s",buftemp,showbuf);
				}
			else
				{
				strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
				strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
				}
			break;
		case PANEL_ARROWLEFT:
			if(setconfirm == TRUE)
				{
				bufcount = strlen(inputbuf);
				if(inputindex>0)
					{
					inputindex--;
					if(inputindex<LCD_LINE_MAX-4-1)
						EditorCursorMinus();//curindex--
					}
				if(curindex>bufcount+2||inputindex == bufcount-1)
					inputbuf[inputindex]=0;
				if(inputindex>=LCD_LINE_MAX-4)
					showbuf = inputbuf+inputindex-(LCD_LINE_MAX-4);
				else
					showbuf = inputbuf;
				
				strcpy(firstlinebuf,GetMsgData(currentmenu->dispID));
				strcpy(buftemp,GetMsgData(DISP_TEL));
				sprintf(secondlinebuf,"%s=%s",buftemp,showbuf);
				}
			else
				{
				strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
				strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
				}
			break;
		case PANEL_BACK:
			if(setconfirm == TRUE)
				{
				setconfirm = FALSE;
				}
			LCDCursorOff();
			step = 0;
			strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
			strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
			break;
		case PANEL_START:
		case PANEL_SELECT:
			if(setconfirm == FALSE)
				{
				setconfirm = TRUE;				
				presscount = 0;				
				curindex = 4;
				inputindex = 0;			
				memset(inputbuf, 0, sizeof(inputbuf));
				if(currentmenu->dispID == DISP_PREFIX_D)
					{
					strcpy(inputbuf,(char*)val[currentmenu->item_userdefault]);
					strcpy(firstlinebuf,GetMsgData(currentmenu->dispID));
					}
				else if(currentmenu->dispID == DISP_MACHINE_ID)
					{
					strcpy(inputbuf,gMFPSettingNvram.Common.zIDTelNumber);
					strcpy(firstlinebuf,GetMsgData(currentmenu->dispID));
					}
				else 
					{
					strcpy(firstlinebuf,GetMsgData(currentmenu->dispID));
					}
				CharSymbolTableInitial(chSymTbl, INPUT_NUM);
				LCDCursorOn();
				EditorCursorShow(curindex);			
				strcpy(buftemp,GetMsgData(DISP_TEL));
				sprintf(secondlinebuf,"%s=%s",buftemp,inputbuf);
				}
			else
				{
				if(currentmenu->dispID == DISP_PREFIX_D)
					{
					strcpy(firstlinebuf,GetMsgData(DISP_SAVED));					
					LCDDisplayClear();
					DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
					
					strncpy((char*)val[currentmenu->item_userdefault],inputbuf,5);
					strncpy(gUIMain.faxsetting.Prefixdial,inputbuf,5);
					FunFAX_ParamSelectAPI2();

					NU_Sleep(400);
					
					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));						
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					LCDCursorOff();
					
					setconfirm = FALSE;
					lastbutton = PANEL_NONE;
					memset(inputbuf, 0, sizeof(inputbuf));
					}
				else if(step == 0&&currentmenu->dispID != DISP_MACHINE_ID&&strlen(inputbuf) != 0)
					{
					strcpy((char*)val[currentmenu->item_userdefault],inputbuf);
					UIDoFaxJob(DIRECT_DIAL);

					if(!gUIMain.FaxlayerEnable)
					{
						strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));						
						strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
						LCDCursorOff();
					}
					setconfirm = FALSE;
					lastbutton = PANEL_NONE;
					memset(inputbuf, 0, sizeof(inputbuf));
					}
				else if(currentmenu->dispID == DISP_MACHINE_ID)
					{
					strncpy(gMFPSettingNvram.Common.zIDTelNumber,inputbuf,MACHINE_ID_LENGTH);
					strncpy(gUIMain.commonsetting.zIDTelNumber,inputbuf,MACHINE_ID_NAME_LENGTH);
					FaxAPI_SetUItoFaxParam_MachineID_TelNumber();
					step = 1;
					setconfirm = FALSE;
					CharInputType(PANEL_SELECT);
					return;
					}
				else if(currentmenu->dispID == DISP_RECV_FOR)
					{
					//strcpy(gMFPSettingNvram.Fax.Recvforward.ForwardDial,inputbuf);
					strcpy(recvforwardtemp.ForwardDial,inputbuf);
					step = 3;
					setconfirm = FALSE;
					strcpy(firstlinebuf,GetMsgData(DISP_START_TIME));
					strcpy(secondlinebuf,"              ");
					memset(inputbuf, 0, sizeof(inputbuf));
					LCDDisplayClear();
					DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
					DisplayLCD(1, secondlinebuf, AlignL2,FALSE);
					NU_Sleep(500);

					DateTimeType(PANEL_SELECT);
					return;
					}
				}
			break;
		case PANEL_NUM0:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM0,currentmenu);
			break;
		case PANEL_NUM1:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM1, currentmenu);
			break;
		case PANEL_NUM2:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM2, currentmenu);
			break;
		case PANEL_NUM3:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM3, currentmenu);
			break;
		case PANEL_NUM4:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM4, currentmenu);
			break;
		case PANEL_NUM5:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM5, currentmenu);
			break;
		case PANEL_NUM6:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM6, currentmenu);
			break;
		case PANEL_NUM7:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM7, currentmenu);
			break;
		case PANEL_NUM8:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM8, currentmenu);
			break;
		case PANEL_NUM9:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_NUM9, currentmenu);
			break;
		case PANEL_STAR:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_STAR, currentmenu);
			break;
		case PANEL_SHARP:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_SHARP, currentmenu);
			break;
		case PANEL_PAUSE:
			if(setconfirm == TRUE)
				EditorDialInput(PANEL_PAUSE, currentmenu);
			break;
		default:
			break;
		}
//		sprintf(buf,"%-20s\n%-20s",firstlinebuf,secondlinebuf);
//		DisplayLCD(0, buf, strlen(buf));
		if(!gUIMain.FaxlayerEnable)
			{
			LCDDisplayClear();
			if(setconfirm == TRUE)
				{
				DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
				DisplayLCD(1, secondlinebuf, LEFT,FALSE);
				LCDCursorPos(curindex, 1);
				}
			else
				{
				DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
				DisplayLCD(1, secondlinebuf, AlignL2,TRUE);
				}
			}
}

void IDInputType(Uint8 action)
{
	if(step == 0)
		DialInputType(action);
	else
		CharInputType(action);
}

void PhoneBookType(Uint8 action)
{
	P_MAIN_MENU_LIST currentmenu;
	
	currentmenu = gpMenudata ->ml + gpMenudata ->mlIndex;
	
	if(step == 0)
		{
		memset(&phonerecodetemp,0,sizeof(phonerecodetemp));
		PhoneBookNumInput(action);
		}
	else if(step == 1)
		CharInputType(action);
	else
		{
		if(currentmenu->dispID == DISP_ADD_PER||currentmenu->dispID == DISP_EDIT_PER)
			PhoneBookDialInput(action);
		else if(currentmenu->dispID == DISP_ADD_GRP)
			PhoneBookPersonNumInput(action);
		else if(currentmenu->dispID == DISP_EDIT_GRP)
			PhoneBookPersonNumEdit(action);
		}
}

void PhoneBookNumInput(Uint8 action)
{
	P_MAIN_MENU_LIST currentmenu;
	char* buftemp;
	char* buftemp2;
	static Uint8 utt;
	static RECORDTYPE type;
	Uint8 AlignL1,AlignL2,i;
	sPhoneBookDial phonebookdial; 

	currentmenu = gpMenudata ->ml + gpMenudata ->mlIndex;

	AlignL1 = currentmenu->firstline;
	AlignL2 = currentmenu->secondline;


	switch(action)
		{
		case PANEL_ARROWRIGHT:
			if(setconfirm == TRUE)
				{
				udefault++;
				if( udefault>max)
					udefault = min;
				udefault = GetNextAvailableNum(udefault, type);
				newnumber = TRUE;

				if(currentmenu->dispID == DISP_ADD_PER||currentmenu->dispID == DISP_EDIT_PER)
					strcpy(buftemp,GetMsgData(DISP_SPD_DIAL_NO));
				else if(currentmenu->dispID == DISP_ADD_GRP||currentmenu->dispID == DISP_EDIT_GRP)
					strcpy(buftemp,GetMsgData(DISP_GROUP_NO));
				sprintf(firstlinebuf,"%s:",buftemp);
				sprintf(secondlinebuf,"[%d-%d]>%d",currentmenu->item_min,currentmenu->item_max,udefault);
				}
			else
				if(delperson == TRUE)
					{
					utt++;
					if( utt>1)
						utt = 0;
					strcpy(buftemp,GetMsgData(DISP_DEL));
					strcpy(buftemp2,GetMsgData(DISP_NUMBER));
					sprintf(firstlinebuf,"%s %s%d?",buftemp,buftemp2,udefault);
					strcpy(secondlinebuf,GetMsgData(currentmenu->itemchoose_addr[utt]));
					}
				else
					{
					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
			break;
		case PANEL_ARROWLEFT:
			if(setconfirm == TRUE)
				{
				if( udefault==min)
					udefault = max;

⌨️ 快捷键说明

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