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

📄 uifax.c

📁 这个是单片机4200的ui程序
💻 C
📖 第 1 页 / 共 5 页
字号:
				else
					udefault--;
				udefault = GetPreAvailableNum(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)
					{
					if( utt ==0)
						utt = 1;
					else
						utt--;
					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_SELECT:
			if(currentmenu->pNextMenuList != NULL)
				{
				currentmenu = currentmenu->pNextMenuList;
				strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
				strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
				}
			else if(setconfirm == FALSE)
				{				
				min = currentmenu->item_min;
				max = currentmenu->item_max;

				if(currentmenu->dispID == DISP_ADD_GRP&&phonebook.GroupNum == NUM_OF_GROUP)
					{
					strcpy(firstlinebuf,GetMsgData(DISP_TOOMUCH_GROUPS));
					strcpy(secondlinebuf,"");

					LCDDisplayClear();
					DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
					DisplayLCD(1, secondlinebuf, AlignL2,TRUE);

					NU_Sleep(400);
					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					
					LCDDisplayClear();
					DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
					DisplayLCD(1, secondlinebuf, AlignL2,TRUE);
					return;
					}
				else if(delperson == FALSE)
					{
					if(currentmenu->dispID == DISP_ADD_PER||currentmenu->dispID == DISP_ADD_GRP)
						type = EMPTY;
					else if(currentmenu->dispID == DISP_EDIT_PER||currentmenu->dispID == DISP_DEL_PER)
						type = SPEEDDIAL;
					else if(currentmenu->dispID == DISP_EDIT_GRP||currentmenu->dispID == DISP_DEL_GRP)
						type = GROUPDIAL;
					
					utt = 1;
					udefault = GetFirstAvailableNum(type);
					gUIMain.LastPressTime = TaskGetSystemMilliTicks();
					if(udefault == PHONE_RECORD_MAX)
						{
						if(currentmenu->dispID == DISP_EDIT_PER||currentmenu->dispID == DISP_DEL_PER)
							{
							strcpy(firstlinebuf,GetMsgData(DISP_NO_PER));
							strcpy(secondlinebuf,GetMsgData(DISP_IS_ASSIGNED));
							}
						else if(currentmenu->dispID == DISP_EDIT_GRP||currentmenu->dispID == DISP_DEL_GRP)
							{
							strcpy(firstlinebuf,GetMsgData(DISP_NO_GRP));
							strcpy(secondlinebuf,GetMsgData(DISP_IS_ASSIGNED));
							}
						else if(currentmenu->dispID == DISP_ADD_PER||currentmenu->dispID == DISP_ADD_GRP)
							{
							strcpy(firstlinebuf,GetMsgData(DISP_PHO_BOOK));
							strcpy(secondlinebuf,GetMsgData(DISP_IS_FULL));
							}
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
						DisplayLCD(1, secondlinebuf, AlignL2,FALSE);
						NU_Sleep(500);

						strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
						strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
						break;
						}
					
					if(currentmenu->dispID == DISP_ADD_PER||currentmenu->dispID == DISP_EDIT_PER||currentmenu->dispID == DISP_DEL_PER)
						strcpy(buftemp,GetMsgData(DISP_SPD_DIAL_NO));
					else if(currentmenu->dispID == DISP_ADD_GRP||currentmenu->dispID == DISP_EDIT_GRP||currentmenu->dispID == DISP_DEL_GRP)
						strcpy(buftemp,GetMsgData(DISP_GROUP_NO));
					sprintf(firstlinebuf,"%s:",buftemp);
					sprintf(secondlinebuf,"[%d-%d]>%d",currentmenu->item_min,currentmenu->item_max,udefault);
					setconfirm = TRUE;
					}
				else if(currentmenu->dispID == DISP_ADD_PER&&utt == 1)
					{
					memset(phonebook.PBrecord[udefault].sTelNum,0,DIAL_NUMBER_MAX+1);
					memset(phonebook.PBrecord[udefault].sTelName,0,DIAL_NUMBER_MAX+1);
					phonebook.PBrecord[udefault].recordType = EMPTY;
					phonebook.PBrecord[udefault].membernum = 0;

					strcpy(buftemp,GetMsgData(DISP_SPD_DIAL_NO));
					sprintf(firstlinebuf,"%s:",buftemp);
					sprintf(secondlinebuf,"[%d-%d]>%d",currentmenu->item_min,currentmenu->item_max,udefault);
					setconfirm = TRUE;
					delperson = FALSE;
					}
				else if(currentmenu->dispID == DISP_ADD_GRP&&utt == 1)
					{
					for(i = 0;i<GROUP_MEMBER_MAX;i++)
						phonebook.PBrecord[udefault].groupmember[i] = PHONE_RECORD_MAX;					
					memset(phonebook.PBrecord[udefault].sTelName,0,DIAL_NUMBER_MAX+1);
					phonebook.PBrecord[udefault].recordType = EMPTY;
					phonebook.PBrecord[udefault].membernum = 0;

					strcpy(buftemp,GetMsgData(DISP_GROUP_NO));
					sprintf(firstlinebuf,"%s:",buftemp);
					sprintf(secondlinebuf,"[%d-%d]>%d",currentmenu->item_min,currentmenu->item_max,udefault);
					setconfirm = TRUE;
					delperson = FALSE;
					}
				else if(currentmenu->dispID == DISP_DEL_PER&&utt == 1)
					{
					memset(phonebook.PBrecord[udefault].sTelNum,0,DIAL_NUMBER_MAX+1);
					memset(phonebook.PBrecord[udefault].sTelName,0,DIAL_NUMBER_MAX+1);
					phonebook.PBrecord[udefault].recordType = EMPTY;
					phonebook.PBrecord[udefault].membernum = 0;
					phonebook.PersonNum--;

					strncpy(phonebookdial.Name,phonebook.PBrecord[udefault].sTelName,MAX_FAX_PHONEBOOK_DIAL_NAME_LEN);
					strncpy(phonebookdial.Number,phonebook.PBrecord[udefault].sTelNum,MAX_FAX_PHONEBOOK_DIAL_NUMBER_LEN);
					phonebookdial.RecordType = 0;
					FaxAPI_SetPhoneBookDialInfo_ByIndex(udefault,&phonebookdial);
					DeletePersonFromAllGroup(udefault);
					
					strcpy(firstlinebuf,GetMsgData(DISP_RECORD_DEL));
					memset(secondlinebuf,0,sizeof(secondlinebuf));
					LCDDisplayClear();
					DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
					DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
					NU_Sleep(500);
					delperson = FALSE;

					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				else if(currentmenu->dispID == DISP_DEL_GRP&&utt == 1)
					{
					for(i = 0;i<GROUP_MEMBER_MAX;i++)
						phonebook.PBrecord[udefault].groupmember[i] = PHONE_RECORD_MAX;					
					memset(phonebook.PBrecord[udefault].sTelName,0,DIAL_NUMBER_MAX+1);
					phonebook.PBrecord[udefault].recordType = EMPTY;
					phonebook.PBrecord[udefault].membernum = 0;
					phonebook.GroupNum--;

					strncpy(phonebookdial.Name,phonebook.PBrecord[udefault].sTelName,MAX_FAX_PHONEBOOK_DIAL_NAME_LEN);
					phonebookdial.RecordType = 0;
					phonebookdial.GroupMemberNum = phonebook.PBrecord[udefault].membernum;
					memcpy(phonebookdial.GroupMember,phonebook.PBrecord[udefault].groupmember,sizeof(Uint16)*MAX_FAX_GROUP_IN_PHONEBOOK_DIAL_MEMBER_NUM);
					
					FaxAPI_SetPhoneBookDialInfo_ByIndex(udefault,&phonebookdial);

					strcpy(firstlinebuf,GetMsgData(DISP_RECORD_DEL));
					memset(secondlinebuf,0,sizeof(secondlinebuf));
					LCDDisplayClear();
					DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
					DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
					NU_Sleep(500);
					delperson = FALSE;

					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				else if(utt == 0)
					{
					delperson = FALSE;
					newnumber = TRUE;
					strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
					strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
					}
				}
			else
				{
				if(udefault>max)
					{
					strcpy(firstlinebuf,GetMsgData(DISP_ENTER_AGAIN));
					LCDDisplayClear();
					DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
					NU_Sleep(500);
					}
				else
					{
					if(phonebook.PBrecord[udefault].recordType != EMPTY&&currentmenu->dispID == DISP_ADD_PER)
						{
						strcpy(firstlinebuf,GetMsgData(DISP_SPD_NUM));
						strcpy(secondlinebuf,GetMsgData(DISP_IS_ASSIGNED));
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
						NU_Sleep(500);

						strcpy(buftemp,GetMsgData(DISP_DEL));
						sprintf(firstlinebuf,"%s ?",buftemp);
						//memset(secondlinebuf,0,sizeof(secondlinebuf));
						strcpy(secondlinebuf,GetMsgData(currentmenu->itemchoose_addr[utt]));
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
						setconfirm = FALSE;
						delperson = TRUE;
						//return;
						}
					else if(phonebook.PBrecord[udefault].recordType != EMPTY&&currentmenu->dispID == DISP_ADD_GRP)
						{
						strcpy(firstlinebuf,GetMsgData(DISP_GROUP_NO));
						strcpy(secondlinebuf,GetMsgData(DISP_IS_ASSIGNED));
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
						NU_Sleep(500);

						strcpy(buftemp,GetMsgData(DISP_DEL));
						sprintf(firstlinebuf,"%s ?",buftemp);
						//memset(secondlinebuf,0,sizeof(secondlinebuf));
						strcpy(secondlinebuf,GetMsgData(currentmenu->itemchoose_addr[utt]));
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
						setconfirm = FALSE;
						delperson = TRUE;
						//return;
						}
					else if(phonebook.PBrecord[udefault].recordType != EMPTY&&(currentmenu->dispID ==DISP_DEL_PER||currentmenu ->dispID == DISP_DEL_GRP))
						{
						strcpy(buftemp,GetMsgData(DISP_DEL));
						strcpy(buftemp2,GetMsgData(DISP_NUMBER));
						sprintf(firstlinebuf,"%s %s%d?",buftemp,buftemp2,udefault);
						//memset(secondlinebuf,0,sizeof(secondlinebuf));
						strcpy(secondlinebuf,GetMsgData(currentmenu->itemchoose_addr[utt]));
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
						setconfirm = FALSE;
						delperson = TRUE;
						//return;
						}
					else if(phonebook.PBrecord[udefault].recordType == EMPTY&&(currentmenu->dispID == DISP_EDIT_GRP||currentmenu->dispID == DISP_EDIT_PER
						||currentmenu->dispID == DISP_DEL_PER||currentmenu->dispID == DISP_DEL_GRP))
						{
						newnumber = TRUE;
						strcpy(firstlinebuf,GetMsgData(DISP_NOT_ASSIGNED));
						strcpy(secondlinebuf,GetMsgData(DISP_ENTER_AGAIN));
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
						NU_Sleep(500);

						if(currentmenu->dispID == DISP_EDIT_GRP||currentmenu->dispID == DISP_DEL_GRP)
							strcpy(buftemp,GetMsgData(DISP_GROUP_NO));
						else if(currentmenu->dispID == DISP_EDIT_PER||currentmenu->dispID == DISP_DEL_PER)
							strcpy(buftemp,GetMsgData(DISP_SPD_DIAL_NO));
						sprintf(firstlinebuf,"%s:",buftemp);
						sprintf(secondlinebuf,"[%d-%d]>%d",currentmenu->item_min,currentmenu->item_max,udefault);						
						}
					else if(phonebook.PBrecord[udefault].recordType != SPEEDDIAL&&currentmenu->dispID == DISP_EDIT_PER)
						{
						strcpy(firstlinebuf,GetMsgData(DISP_SPD_NUM));
						strcpy(secondlinebuf,GetMsgData(DISP_IS_ASSIGNED));
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
						NU_Sleep(500);

						strcpy(buftemp,GetMsgData(DISP_SPD_DIAL_NO));
						sprintf(firstlinebuf,"%s:",buftemp);
						sprintf(secondlinebuf,"[%d-%d]>%d",currentmenu->item_min,currentmenu->item_max,udefault);
						}
					else if(phonebook.PBrecord[udefault].recordType != GROUPDIAL&&currentmenu->dispID == DISP_EDIT_GRP)
						{
						strcpy(firstlinebuf,GetMsgData(DISP_GROUP_NO));
						strcpy(secondlinebuf,GetMsgData(DISP_IS_ASSIGNED));
						LCDDisplayClear();
						DisplayLCD(0, firstlinebuf, MIDDLE,FALSE);
						DisplayLCD(1, secondlinebuf, MIDDLE,FALSE);
						NU_Sleep(500);

						strcpy(buftemp,GetMsgData(DISP_GROUP_NO));
						sprintf(firstlinebuf,"%s:",buftemp);
						sprintf(secondlinebuf,"[%d-%d]>%d",currentmenu->item_min,currentmenu->item_max,udefault);
						}
					else
						{
						setconfirm = FALSE;
						newnumber = TRUE;
						step = 1;
						CharInputType(PANEL_SELECT);
						return;						
						}
					}
				}
			break;
		case PANEL_BACK:
				{
				if(setconfirm == TRUE)
					{
					setconfirm = FALSE;
					}
				newnumber = TRUE;
				delperson = FALSE;
				step = 0;
				strcpy(firstlinebuf,GetMsgData(currentmenu->titleID));
				strcpy(secondlinebuf,GetMsgData(currentmenu->dispID));
				}
			break;
		case PANEL_NUM0:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM0, currentmenu);
			break;
		case PANEL_NUM1:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM1, currentmenu);
			break;
		case PANEL_NUM2:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM2, currentmenu);
			break;
		case PANEL_NUM3:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM3, currentmenu);
			break;
		case PANEL_NUM4:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM4, currentmenu);
			break;
		case PANEL_NUM5:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM5, currentmenu);
			break;
		case PANEL_NUM6:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM6, currentmenu);
			break;
		case PANEL_NUM7:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM7, currentmenu);
			break;
		case PANEL_NUM8:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM8, currentmenu);
			break;
		case PANEL_NUM9:
			if(setconfirm == TRUE)
				EditorMultiInput(PANEL_NUM9, currentmenu);
			break;
		default:
			break;		
		}
		LCDDisplayClear();
		if(setconfirm == TRUE)
			{
			DisplayLCD(0, firstlinebuf, LEFT,FALSE);
			DisplayLCD(1, secondlinebuf, LEFT,FALSE);
			}
		else
			{
			DisplayLCD(0, firstlinebuf, AlignL1,FALSE);
			DisplayLCD(1, secondlinebuf, AlignL2,TRUE);
			}
}

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

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

	AlignL1 = currentmenu->firstline;
	AlignL2 = currentmenu->secondline;
	
	switch(action)
		{
		case PANEL_ARROWRIGHT:
			if(setconfirm == TRUE)
				{
				bufcount = strlen(inputbuf);
				if(inputindex == bufcount)
					break;
				else
					{
					inputindex++;
					if(curindex <LCD_LINE_MAX-1)
						EditorCursorPlus();//curindex++
					}
				if(inputindex>=LCD_LINE_MAX-1)
					showbuf= inputbuf+inputindex-(LCD_LINE_MAX-1);
				else
					showbuf = inputbuf;
				
				strcpy(buftemp,GetMsgData(DISP_SPD_DIAL_NO));				
				sprintf(firstlinebuf,"%s%d:",buftemp,udefault);
				strcpy(secondlinebuf,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-1)
						EditorCursorMinus();//curindex--
					}
				if(inputindex == bufcount-1)
					inputbuf[inputindex]=0;
				if(inputindex>=LCD_LINE_MAX)
					showbuf = inputbuf+inputindex-LCD_LINE_MAX;
				else
					showbuf = inputbuf;
				
				strcpy(buftemp,GetMsgData(DISP_SPD_DIAL_NO));				
				sprintf(firstlinebuf,"%s%d:",buftemp,udefault);
				strcpy(secondlinebuf,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_SELECT:
			if(setconfirm == FALSE)
				{
				memset(inputbuf, 0, sizeof(inputbuf));//need inputbuf2??
				if(currentmenu->dispID == DISP_EDIT_PER)//||currentmenu->dispID == DISP_EDIT_GRP)
					strcpy(inputbuf,phonebook.PBrecord[udefault].sTelNum);

				strcpy(buftemp,GetMsgData(DISP_SPD_DIAL_NO));				
				sprintf(firstlinebuf,"%s%d:",buftemp,ude

⌨️ 快捷键说明

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