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

📄 addeditdialog.cpp

📁 mtk simulator v2 new source code
💻 CPP
📖 第 1 页 / 共 5 页
字号:
				}
			}
	
		}
			}
		return datalist;
	}
	}

void CAddEditDialog::SaveEditedDataSet(CData& dataset)
{
	CString sMsgId, msgformat;
	MsgIdCombo.GetLBText(MsgIdCombo.GetCurSel(),sMsgId);
	UINT32 messageid = _ttoi(sMsgId);
	cmessagemanager.SaveDataSetValues(messageid,dataset);

}

void CAddEditDialog::SaveNewDataSet(CData& dataset)
{
	CString sMsgId, msgformat;
	MsgIdCombo.GetLBText(MsgIdCombo.GetCurSel(),sMsgId);
	CPtrList * ptr_to_outgoing_lst = cmessagemanager.m_plstOutGoingMsg;
	COutgoingMessage * ptr_to_outgoing_msg;
	UINT32 messageid = _ttoi(sMsgId);
	//MsgIdCombo.ResetContent();
	if(ptr_to_outgoing_lst)
	{
		if(ptr_to_outgoing_lst->GetCount())
		{
			for(POSITION pos =  ptr_to_outgoing_lst->GetHeadPosition();pos!= NULL;)
{
    			ptr_to_outgoing_msg = (COutgoingMessage *) (ptr_to_outgoing_lst->GetNext (pos));
				if(ptr_to_outgoing_msg->GetMessageId() == messageid)
				{
					msgformat = ptr_to_outgoing_msg->GetFormat();
				}
			}
		}
		//ptr_to_fmt_lst = cmessagemanager.m_pFormatList;
		CFormat* FmtPtr;
		if(cmessagemanager.m_pFormatList)
	{
			if(cmessagemanager.m_pFormatList->GetCount())
			{
				for(POSITION pos =  cmessagemanager.m_pFormatList->GetHeadPosition();pos!= NULL;)
				{
					FmtPtr = (CFormat *) (cmessagemanager.m_pFormatList->GetAt (pos));
					CString name = FmtPtr->GetName();
					if(!msgformat.CompareNoCase((LPCTSTR)name))
					{
						CNWGCMLHandler gcmlHandler;
						CDataList datalist = FmtPtr->GetDataList();
						datalist.AddValue(dataset);
						FmtPtr->SetDataList(datalist);//..AddValue(dataset);
						cmessagemanager.m_pFormatList->SetAt(pos,FmtPtr);
						gcmlHandler.SetDataSetInDom(dataset,datalist);
						CGCMLGenerator generate_xml;
						generate_xml.MakeGCML();
						break;
					}
					cmessagemanager.m_pFormatList->GetNext(pos);
				}
			}
		}
	}
}

int CAddEditDialog::SaveTheDataSet()
{
	int return_value = DataSetValidationRoutine();
	if(return_value == 1)            /*DataSet ready for save*/
	{
        CData DataSetToBeSaved;
		if(MakeTheDataSet(DataSetToBeSaved))
		{
		CDataList datalist = GetDataListForMessageID();
		if(NewDataSetNameEdit.IsWindowVisible())
		{	
			SaveNewDataSet(DataSetToBeSaved);
		}
		else
			SaveEditedDataSet(DataSetToBeSaved);
		SetTheHasBeenEditedFlag(0);           /*reset the edit flag*/
			
		if(NewDataSetNameEdit.IsWindowVisible())
		{
			CString WindowText;			/*need to refresh the DSIdCombo list*/	
			NewDataSetNameEdit.GetWindowText(WindowText);
			DSIdCombo.EnableWindow(1);   /*this is for the case in which we previously had no datasets and now 
											we have added one...*/
			DSIdCombo.AddString(WindowText);
				DefaultDataSetCombo.AddString(WindowText);
				edit_sel_ds_descr.SetWindowText(DataSetToBeSaved.GetDescription());
			NewDataSetNameEdit.ShowWindow(SW_HIDE);
			NewDataSetDescrEdit.ShowWindow(SW_HIDE);
			NewDataSetNameEdit.SetWindowText(_T(""));
			NewDataSetDescrEdit.SetWindowText(_T(""));
			static_new_ds_descr.ShowWindow(SW_HIDE);
			static_new_ds_name.ShowWindow(SW_HIDE);
			static_new_ds_desrc.ShowWindow(SW_HIDE);
			SetWindowtextInCombo(DSIdCombo,WindowText);
		}
		return 1;
	}
		else
			return 0;
	}
	else if(return_value == 2)
		return 2;
	else
        return 0;
}



BOOL CAddEditDialog::MakeTheDataSet(CData& DataSetToBeSaved)
{
		//CData DataSetToBeSaved;
		CData dataobj;	
		CString WindowText;
		CString WindowText1;
		if(NewDataSetNameEdit.IsWindowVisible())             /*if new dataset*/
		{
			NewDataSetNameEdit.GetWindowText(WindowText);
			if(DSIdCombo.GetCount())
			{
				for(int index = 0; index < DSIdCombo.GetCount(); index ++)
				{
					DSIdCombo.GetLBText(index,WindowText1);
					if(!WindowText1.CompareNoCase(WindowText))
					{
						AfxMessageBox(IDS_STRING_DS_ALREADY_EXISTS);
						return 0;
					}
				}
			}
			DataSetToBeSaved.SetName(WindowText);
			NewDataSetDescrEdit.GetWindowText(WindowText1);
			DataSetToBeSaved.SetDescription(WindowText1);
		}
		else
		{														/*for old dataset*/
			DSIdCombo.GetWindowText(WindowText);
			DataSetToBeSaved.SetName(WindowText);
		}
		DataSetFreqCombo.GetWindowText(WindowText1);
		DataSetToBeSaved.SetFrequency(_ttoi(WindowText1));
		DataSetTimerCombo.GetWindowText(WindowText1);
		DataSetToBeSaved.SetTimer(_ttoi(WindowText1));
		/*CDataList datalist = GetDataListForMessageID();
		CList<CData,CData&>& dataset_list_from_datalist = datalist.GetData();
		for(POSITION pos = dataset_list_from_datalist.GetHeadPosition();pos!=NULL;)
		{
			dataobj = dataset_list_from_datalist.GetNext(pos);
			if(dataobj.GetName().CompareNoCase(datalist.GetDefault()))
				break;
		}
		CList<CValue,CValue&>& vallist = dataobj.GetValueList();*/
		int item_no = datawindow.GetItemCount()-1;
		for(;item_no>=0;item_no--)
		//for(POSITION pos = vallist.GetHeadPosition(); item_no>=0;item_no--)			/*common to new & old dataset*/
		{
			CValue val;//,val1;
			//val1 = vallist.GetNext(pos);
			val.SetName(datawindow.GetItemText(item_no,1));
			val.SetSourceValue(datawindow.GetItemText(item_no,3));
			/*val.SetSourceType(val1.GetSourceType());
			val.SetValueSize(val1.GetValueSize());
			val.SetCount(val1.GetCount());*/
			DataSetToBeSaved.AddValue(val);
		}	
		return 1;
}



void CAddEditDialog::OnCbnSelchangeFreqcomboPan()
{
	CString stringID_to_string;
	//chk for whether the datawindow has ne items

	DataSetFreqCombo.GetWindowText(stringID_to_string);
	if(!(CString(stringID_to_string)).CompareNoCase(_T("1")))
	{
		DataSetTimerCombo.EnableWindow(0);
		DataSetTimerCombo.SetCurSel(0);
	}
	else
	{
		DataSetTimerCombo.EnableWindow(1);
		DataSetTimerCombo.GetWindowText(stringID_to_string);
		if(!(CString(stringID_to_string)).CompareNoCase(_T("0")))
		{
			DataSetTimerCombo.EnableWindow(1);
		DataSetTimerCombo.SetCurSel(1);
	}
	}
	if(datawindow.GetItemCount())
	SetTheHasBeenEditedFlag(1);
		// TODO: Add your control notification handler code here
	}

void CAddEditDialog::OnCbnSelchangeTimecombo()
{
	CString stringID_to_string;
	DataSetTimerCombo.GetWindowText(stringID_to_string);
	if(!(CString(stringID_to_string)).CompareNoCase(_T("0")))
	{
		//DataSetFreqCombo.GetWindowText(stringID_to_string);
		//if(stringID_to_string.CompareNoCase(_T("1")))
		AfxMessageBox(IDS_STRING_CANT_MAKE_FREQ_0);
		DSIdCombo.GetWindowText(stringID_to_string);
		if(!(CString(stringID_to_string)).CompareNoCase(_T("")))
			DataSetTimerCombo.SetCurSel(1);
		else
		{
			CString msg_combo_text;
			MsgIdCombo.GetWindowText(msg_combo_text);
			UINT32 val_of_timer_in_dataset = cmessagemanager.GetTimer(_ttoi(msg_combo_text),stringID_to_string);
			if(val_of_timer_in_dataset > 0)
				DataSetTimerCombo.SetCurSel(val_of_timer_in_dataset);
			else
				DataSetTimerCombo.SetCurSel(1);
		}
	}
	//chk for whether the datawindow has ne items 
	if(datawindow.GetItemCount())
	SetTheHasBeenEditedFlag(1);
	// TODO: Add your control notification handler code here
}



/*********The handler for filling the dialog with the information it received from Search Dialog**********/

LRESULT CAddEditDialog::SetValuesInDialog(WPARAM MsgId,LPARAM Unused)
{
		CPtrList * ptr_to_outgoing_msg_list = cmessagemanager.m_plstOutGoingMsg;
		COutgoingMessage * ptr_to_outgoing_msg;
		if(ptr_to_outgoing_msg_list)
		{
		if(ptr_to_outgoing_msg_list->GetCount())
		{
			for(POSITION pos =  ptr_to_outgoing_msg_list->GetHeadPosition();pos!= NULL;)
			{
     			ptr_to_outgoing_msg = (COutgoingMessage *) (ptr_to_outgoing_msg_list->GetNext (pos));
				UINT32 outgoing_msgid = ptr_to_outgoing_msg->GetMessageId();
				if(outgoing_msgid == MsgId)
				{
					//CNWGCMLHandler tempobj;
					CPtrList *applst_ptr;
					CApplication * App_ptr;
					//applst_ptr = tempobj.GetApplicationList();
					applst_ptr = cmessagemanager.m_pAppList;
						if(applst_ptr)
						{
					if(applst_ptr->GetCount())
					{
						for(POSITION pos =  applst_ptr->GetHeadPosition();pos!= NULL;)
						{
     						App_ptr = (CApplication *) (applst_ptr->GetNext (pos));
							if(App_ptr->GetAppId()==ptr_to_outgoing_msg->GetAppId())
					{
								//AppIdCombo.SetWindowText(CString(itoa(App_ptr->GetAppId(),buffer_for_str,10))+":"+ App_ptr->GetApplicationName());
								SetWindowtextInCombo(AppIdCombo,CString(itoa(App_ptr->GetAppId(),buffer_for_str,10))+":"+ App_ptr->GetApplicationName());
								CString window_text;
								AppIdCombo.GetWindowText(window_text);
								GetMessagesForApp(window_text);
								for(int MsgIdComboIndex = 0;MsgIdComboIndex < MsgIdCombo.GetCount();MsgIdComboIndex++)
						{
									MsgIdCombo.GetLBText(MsgIdComboIndex,window_text);
									if(ptr_to_outgoing_msg->GetMessageId()== _ttoi(window_text))
							{
										MsgIdCombo.SetCurSel(MsgIdComboIndex);
										break;
									}
								}
									SendButton.EnableWindow(0);
								MsgIdCombo.GetWindowText(window_text);
								GetDataSetsForMsg(window_text);

							}
						}
					}
						}
					}

				}
			}
		}
		MsgIdCombo.SetFocus();
		return 1;
}
void CAddEditDialog::SetWindowtextInCombo(CComboBox& combo_box,CString string_to_be_shown)
{
	CString item_text;
	int x = combo_box.GetCount();
	for(int ComboIndex = 0;ComboIndex < combo_box.GetCount();ComboIndex++)
	{
		combo_box.GetLBText(ComboIndex,item_text);
		if(!string_to_be_shown.CompareNoCase(item_text))
		{
			combo_box.SetCurSel(ComboIndex);
			break;
		}
	}
}


void CAddEditDialog::SendEventMessageWithDataSet(CMessage * message_to_be_sent, CData dataset_to_be_sent)
{
	UINT32 iSize = 0;
	MYQUEUE stMsgQueue;// = (MYQUEUE *)malloc(sizeof(MYQUEUE));
	//MYQUEUE stMsgQueue;
	void *pData = NULL;
	if(dataset_to_be_sent.GetFrequency() == 1)
	{
		CFormat * format_for_msg_to_be_sent =cmessagemanager.GetFormatForMessage(message_to_be_sent);
		CList<CVar,CVar&>& varlist_for_msg_to_be_sent = format_for_msg_to_be_sent->GetVarList();
		pData = cmessagemanager.GetBufferForSocket(message_to_be_sent,dataset_to_be_sent,varlist_for_msg_to_be_sent,&iSize);
		if(pData!=NULL)
		{		
			stMsgQueue.oslSrcId = MOD_L4C;
			stMsgQueue.oslDestId = PRT_EVENT;
			stMsgQueue.oslMsgId = message_to_be_sent->GetMessageId();
			stMsgQueue.oslDataPtr = pData;
			stMsgQueue.oslPeerBuffPtr = NULL;		
			myNSRThread->WriteToSocket(&stMsgQueue);		
		}
		else
		AMLOGINFO(_T("Memory NULL Buffer error for Outgoing Message"));
	}
	else
	{
		//UINT32 timer= cmessagemanager.GetTimer (message_to_be_sent->GetMessageId(),dataset_to_be_sent.GetName());  
		SendMessageDetails *messagedetailpacket;
		messagedetailpacket = (SendMessageDetails*) malloc(sizeof(SendMessageDetails));
		
		messagedetailpacket->clMessage   = message_to_be_sent;
		messagedetailpacket->Freq		 = dataset_to_be_sent.GetFrequency()-1; 
		messagedetailpacket->Timer		 = dataset_to_be_sent.GetTimer();
		messagedetailpacket->TimerId	 = NULL;
		messagedetailpacket->strDataList = "-1";
		messagedetailpacket->dataset	= new CData();
		*(messagedetailpacket->dataset)	 = dataset_to_be_sent;
		if(Is_Coming_From == MAIN)
			GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,0,(LPARAM)messagedetailpacket);
		else
			GetParent()->GetParent()->SendMessage(WM_SEND_MSG_FROM_ADDEDIT,0,(LPARAM)messagedetailpacket);
	}
		
}

void CAddEditDialog::SendMessageFreq(CMessage *clMessage,CData* dataset)
{
	UINT32 iSize = 0;
	MYQUEUE stMsgQueue;
	void *pData = NULL;
	CFormat * format_for_msg_to_be_sent =cmessagemanager.GetFormatForMessage(clMessage);
	CList<CVar,CVar&>& varlist_for_msg_to_be_sent = format_for_msg_to_be_sent->GetVarList();
	pData = cmessagemanager.GetBufferForSocket(clMessage,*dataset,varlist_for_msg_to_be_sent,&iSize);
	if(pData!=NULL)  
	{
		stMsgQueue.oslSrcId = MOD_L4C;
		stMsgQueue.oslDestId = PRT_EVENT;
		stMsgQueue.oslMsgId = clMessage->GetMessageId();
		stMsgQueue.oslDataPtr = pData;
		stMsgQueue.oslPeerBuffPtr = NULL;
		myNSRThread->WriteToSocket(&stMsgQueue);	
	}
	else
	AMLOGINFO(_T("Memory NULL Buffer error for Outgoing Message"));	
}  
 

void CAddEditDialog::OnCbnSelendokDefcomboPan()
{
	set_msg_attrib_flag = 1;
	SaveButton.EnableWindow(1);
	SaveSendButton.EnableWindow(1);
	// TODO: Add your control notification handler code here
}

void CAddEditDialog::OnCbnSelendokComboInputMode()
{
	set_msg_attrib_flag = 1;
	SaveButton.EnableWindow(1);
	SaveSendButton.EnableWindow(1);
	// TODO: Add your control notification handler code here
}

void CAddEditDialog::OnCbnSelendcancelAppcomboPan()
{
	if(combo_refresh_flag)
	{
		O

⌨️ 快捷键说明

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