当前位置: 首页>>代码示例>>C++>>正文


C++ VscpRemoteTcpIf::doCmdInterfaceList方法代码示例

本文整理汇总了C++中VscpRemoteTcpIf::doCmdInterfaceList方法的典型用法代码示例。如果您正苦于以下问题:C++ VscpRemoteTcpIf::doCmdInterfaceList方法的具体用法?C++ VscpRemoteTcpIf::doCmdInterfaceList怎么用?C++ VscpRemoteTcpIf::doCmdInterfaceList使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在VscpRemoteTcpIf的用法示例。


在下文中一共展示了VscpRemoteTcpIf::doCmdInterfaceList方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: OnButtonGetInterfacesClick

void dlgVscpInterfaceSettings::OnButtonGetInterfacesClick( wxCommandEvent& event )
{
	VscpRemoteTcpIf tcpif;
	wxString wxstr;

	m_btnGetInterfaces->Enable( false );

    
	// If server username is given and no password is entered we ask for it.
	if ( m_RemoteServerPassword->GetValue().IsEmpty() && 
		!m_RemoteServerUsername->GetValue().IsEmpty() ) {
			wxstr = ::wxGetTextFromUser( _("Please enter password"), 
				_("Password is needed") );
	}
	else {
		wxstr = m_RemoteServerPassword->GetValue();
	}

	wxBusyCursor busy;

	long rv = tcpif.doCmdOpen( m_RemoteServerURL->GetValue(),
		m_RemoteServerUsername->GetValue(),
		wxstr );

	if ( VSCP_ERROR_SUCCESS == rv ) {

		// Get the interface list
		wxArrayString array;
		tcpif.doCmdInterfaceList( array );

		// Close the channel
		tcpif.doCmdClose();

		if ( array.Count() ) {

			dlgSelectDaemonInterface dlg( this );
			for ( unsigned int i=0; i<array.Count(); i++ ) {

				wxStringTokenizer tkz( array[i], _(",") );
				wxString strOrdinal = tkz.GetNextToken();
				wxString strType = tkz.GetNextToken();
				wxString strGUID = tkz.GetNextToken();
				wxString strDescription = tkz.GetNextToken();
				wxString strLine = strGUID;
				strLine += _(" ");
				strLine += _(" Type = ");
				strLine +=  strType;
				strLine += _(" - ");
				strLine += strDescription;

				dlg.m_ctrlListInterfaces->Append( strLine );
			}

			if ( wxID_OK == dlg.ShowModal() ) {

				int selidx;
				if ( wxNOT_FOUND != ( selidx = dlg.m_ctrlListInterfaces->GetSelection() ) ) {

					wxStringTokenizer tkz( array[selidx], _(",") );
					wxString strOrdinal = tkz.GetNextToken();
					wxString strType = tkz.GetNextToken();
					wxString strGUID = tkz.GetNextToken();

					// Name of interface
					wxString strifName = tkz.GetNextToken();
					int pos;
					if ( wxNOT_FOUND != ( pos = strifName.Find(_(" ") ) ) ) {
						strifName = strifName.Left( pos );
						strifName.Trim();
					}

					m_RemoteInterfaceName->ChangeValue( strifName );
                    
				}
			}

		}
		else {
			wxMessageBox(_("No interfaces found!"));
		}

	}
	else {
		wxMessageBox(_("Failed to connect to server."), _("Get daemon interfaces"), wxICON_STOP );
	}

	m_btnGetInterfaces->Enable( true );

	event.Skip( false );
}
开发者ID:jaej-dev,项目名称:vscp_software,代码行数:90,代码来源:dlgvscpinterfacesettings.cpp


注:本文中的VscpRemoteTcpIf::doCmdInterfaceList方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。