本文整理汇总了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;未经允许,请勿转载。 |
请发表评论