• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

C++ VscpRemoteTcpIf类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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



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

示例1: CanalSetBaudrate

extern "C" int CanalSetBaudrate( long handle, unsigned long baudrate )
{
	VscpRemoteTcpIf *pvscpif =  theApp.getDriverObject( handle );
        if ( NULL == pvscpif ) return CANAL_ERROR_MEMORY;

	return ( pvscpif->doCmdSetBaudrate( baudrate ) ? CANAL_ERROR_SUCCESS : CANAL_ERROR_SUB_DRIVER );
}
开发者ID:BlueAndi,项目名称:vscp_software,代码行数:7,代码来源:vscpl1.cpp


示例2: _fini

void
_fini()
{
    // If empty - nothing to do
    if (g_ifMap.empty()) return;

    // Remove orphan objects

    LOCK_MUTEX(g_mapMutex);

    for (std::map<long, VscpRemoteTcpIf *>::iterator it = g_ifMap.begin();
         it != g_ifMap.end();
         ++it) {
        // std::cout << it->first << " => " << it->second << '\n';

        VscpRemoteTcpIf *pvscpif = it->second;
        if (NULL != pvscpif) {
            pvscpif->doCmdClose();
            delete pvscpif;
            pvscpif = NULL;
        }
    }

    g_ifMap.clear(); // Remove all items

    UNLOCK_MUTEX(g_mapMutex);
    pthread_mutex_destroy(&g_mapMutex);
}
开发者ID:davidluca3000,项目名称:vscp_software,代码行数:28,代码来源:vscpl1.cpp


示例3: CanalGetStatistics

extern "C" int CanalGetStatistics( long handle, PCANALSTATISTICS pCanalStatistics  )
{
	VscpRemoteTcpIf *pvscpif =  theApp.getDriverObject( handle );
        if ( NULL == pvscpif ) return CANAL_ERROR_MEMORY;

	return ( pvscpif->doCmdStatistics( pCanalStatistics ) ? CANAL_ERROR_SUCCESS : CANAL_ERROR_SUB_DRIVER );
}
开发者ID:BlueAndi,项目名称:vscp_software,代码行数:7,代码来源:vscpl1.cpp


示例4: CanalSend

extern "C" int CanalSend( long handle, PCANALMSG pCanalMsg  )
{
	VscpRemoteTcpIf *pvscpif =  theApp.getDriverObject( handle );
	if ( NULL == pvscpif ) return CANAL_ERROR_MEMORY;

	return ( pvscpif->doCmdSendLevel1( pCanalMsg )? CANAL_ERROR_SUCCESS : CANAL_ERROR_SUB_DRIVER );
}
开发者ID:BlueAndi,项目名称:vscp_software,代码行数:7,代码来源:vscpl1.cpp


示例5: CanalSetMask

extern "C" int
CanalSetMask(long handle, unsigned long mask)
{
    VscpRemoteTcpIf *pvscpif = getDriverObject(handle);
    if (NULL == pvscpif) return CANAL_ERROR_MEMORY;
    return (pvscpif->doCmdMask(mask) ? CANAL_ERROR_SUCCESS
                                     : CANAL_ERROR_SUB_DRIVER);
}
开发者ID:davidluca3000,项目名称:vscp_software,代码行数:8,代码来源:vscpl1.cpp


示例6: CanalDataAvailable

extern "C" int CanalDataAvailable( long handle  )
{
	int rv = 0;

	VscpRemoteTcpIf *pvscpif =  theApp.getDriverObject( handle );
        if ( NULL == pvscpif ) return CANAL_ERROR_MEMORY;

	return ( pvscpif->doCmdDataAvailable() ? CANAL_ERROR_SUCCESS : CANAL_ERROR_SUB_DRIVER );
}
开发者ID:BlueAndi,项目名称:vscp_software,代码行数:9,代码来源:vscpl1.cpp


示例7: CanalGetLevel

extern "C" unsigned long CanalGetLevel( long handle )
{
	unsigned long level;

	VscpRemoteTcpIf *pvscpif =  theApp.getDriverObject( handle );
	if ( NULL == pvscpif ) return CANAL_ERROR_MEMORY;

	level = pvscpif->doCmdGetLevel();
	return level;
}
开发者ID:BlueAndi,项目名称:vscp_software,代码行数:10,代码来源:vscpl1.cpp


示例8: CanalOpen

extern "C" long
CanalOpen(const char *pDevice, unsigned long flags)
{
    long h               = CANAL_ERROR_SUB_DRIVER;
    unsigned long filter = 0, mask = 0;
    bool bFilter = false, bMask = false;
    std::string str;
    std::string strDevice(pDevice);

    std::deque<std::string> tokens;
    vscp_split(tokens, strDevice, ";");

    // Get possible filter
    if (!tokens.empty()) {
        str = tokens.front();
        tokens.pop_front();
        if (0 != str.size()) {
            filter = vscp_readStringValue(str);
        }
    }

    // Get possible mask
    if (!tokens.empty()) {
        str = tokens.front();
        tokens.pop_front();
        if (0 != str.size()) {
            mask = vscp_readStringValue(str);
        }
    }

    VscpRemoteTcpIf *pvscpif = new VscpRemoteTcpIf();
    if (NULL != pvscpif) {

        if (pvscpif->doCmdOpen(strDevice, flags)) {

            if (!(h = addDriverObject(pvscpif))) {
                delete pvscpif;
            } else {

                if (bFilter) {
                    pvscpif->doCmdFilter(filter);
                }

                if (bMask) {
                    pvscpif->doCmdMask(mask);
                }
            }

        } else {
            delete pvscpif;
        }
    }

    return h;
}
开发者ID:davidluca3000,项目名称:vscp_software,代码行数:55,代码来源:vscpl1.cpp


示例9: CanalClose

extern "C" int CanalClose( long handle )
{
	int rv = 0;

	VscpRemoteTcpIf *pvscpif =  theApp.getDriverObject( handle );
	if ( NULL == pvscpif ) return CANAL_ERROR_MEMORY;
	pvscpif->doCmdClose();
	theApp.removeDriverObject( handle );
	rv = CANAL_ERROR_SUCCESS;
	return rv;
}
开发者ID:BlueAndi,项目名称:vscp_software,代码行数:11,代码来源:vscpl1.cpp


示例10: CanalGetStatus

extern "C" int
CanalGetStatus(long handle, PCANALSTATUS pCanalStatus)
{
    int rv = 0;

    VscpRemoteTcpIf *pvscpif = getDriverObject(handle);
    if (NULL == pvscpif) return CANAL_ERROR_MEMORY;

    return (pvscpif->doCmdStatus(pCanalStatus) ? CANAL_ERROR_SUCCESS
                                               : CANAL_ERROR_SUB_DRIVER);
}
开发者ID:davidluca3000,项目名称:vscp_software,代码行数:11,代码来源:vscpl1.cpp


示例11: CanalReceive

extern "C" int
CanalReceive(long handle, PCANALMSG pCanalMsg)
{
    int rv = 0;

    VscpRemoteTcpIf *pvscpif = getDriverObject(handle);
    if (NULL == pvscpif) return CANAL_ERROR_MEMORY;

    return (pvscpif->doCmdReceiveLevel1(pCanalMsg) ? CANAL_ERROR_SUCCESS
                                                   : CANAL_ERROR_SUB_DRIVER);
}
开发者ID:davidluca3000,项目名称:vscp_software,代码行数:11,代码来源:vscpl1.cpp


示例12: CanalOpen

extern "C" long CanalOpen( const char *pDevice, unsigned long flags )
{
	long h = CANAL_ERROR_SUB_DRIVER;
	unsigned long filter=0, mask=0;
	bool bFilter=false, bMask=false;
	wxString str;
	wxString strDevice( pDevice, wxConvUTF8);
	wxStringTokenizer tkz(strDevice, _(";") );

	// Get possible filter	
    str = tkz.GetNextToken();
	if ( 0 != str.Length() ) {
        if ( str.ToULong( &filter ) ) {
			bFilter = true;
		}
	}

	// Get possible mask
	if ( 0 != str.Length() ) {
		if ( str.ToULong( &mask ) ) {
			bMask = true;
		}
	}
	
	
	VscpRemoteTcpIf *pvscpif = new VscpRemoteTcpIf();
	if ( NULL != pvscpif ) {

		if ( pvscpif->doCmdOpen( strDevice, flags ) ){

			if ( !( h = theApp.addDriverObject( pvscpif ) ) ) {
				delete pvscpif;
			}
			else {
				
				if ( bFilter ) {
					pvscpif->doCmdFilter( filter );	
				}

				if ( bMask ) {
					pvscpif->doCmdMask( mask );
				}
			}

		}
		else {
			delete pvscpif;
		}

	}
 
	return h;
}
开发者ID:BlueAndi,项目名称:vscp_software,代码行数:53,代码来源:vscpl1.cpp


示例13: OnButtonTestInterfaceClick

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

	m_btnTestConnection->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"), 
			_("Connection Test") );
	}
	else {
		wxstr = m_RemoteServerPassword->GetValue();
	}

	wxBusyCursor busy;

	long rv = 
		tcpif.doCmdOpen( m_RemoteServerURL->GetValue(),
			m_RemoteServerUsername->GetValue(),
			wxstr );
	if ( VSCP_ERROR_SUCCESS == rv ) {
		tcpif.doCmdClose();
		wxMessageBox(_("Successful connect to server."), _("Connection Test"), wxICON_INFORMATION );
		/*rv = tcpif.doCmdNOOP();
		if ( CANAL_ERROR_SUCCESS == rv ) {
			wxMessageBox(_("Successful connect to server."), _("Connection Test"), wxICON_INFORMATION );
		}
		else {
			wxMessageBox(_("Failed do command on server (connected OK)."), _("Connection Test"), wxICON_STOP );
		}*/
	}
	else {
		wxMessageBox(_("Failed to connect to server."), _("Connection Test"), wxICON_STOP );
		tcpif.doCmdClose();
	}

	m_btnTestConnection->Enable( true );

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


示例14: LOCK_MUTEX

CVSCPL1App::~CVSCPL1App()
{
	LOCK_MUTEX( m_objMutex );
	
	for ( int i = 0; i<VSCP_LEVEL1_INTERFACE_MAX_OPEN; i++ ) {
		
		if ( NULL == m_pvscpifArray[ i ] ) {
			
			VscpRemoteTcpIf *pvscpif =  getDriverObject( i );
			if ( NULL != pvscpif ) { 
				pvscpif->doCmdClose();	
				delete m_pvscpifArray[ i ];
				m_pvscpifArray[ i ] = NULL; 
			}
		}
	}

	UNLOCK_MUTEX( m_objMutex );	
	pthread_mutex_destroy( &m_objMutex );
}
开发者ID:BlueAndi,项目名称:vscp_software,代码行数:20,代码来源:vscpl1.cpp


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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ VtableStub类代码示例发布时间:2022-05-31
下一篇:
C++ VoxelTreeElement类代码示例发布时间:2022-05-31
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap