示例#1
0
// _____________________________________________________________________
CWebSocketServer::CWebSocketServer(QObject *parent)
    : CNetworkServerInterface(parent),
      m_pWebSocketServer(NULL),
      m_client_count(0)
{
    setTransmissionMode(TEXT_MODE);
}
示例#2
0
bool CApoxObj::setAdapterFilterMask( structFilterMask *pFilterMask )
{
  uint8_t txdata[ 100 ];
  short size = 0;

	// Must be in confguration mode
	if ( !setTransmissionMode( TRMODE_CONFIG ) ) return false;

	if ( pFilterMask->rx_buff1_ext ) {
		pFilterMask->RXM0 |= 0x80000000;
		pFilterMask->RXM1 |= 0x80000000;
		pFilterMask->RXF0 |= 0x80000000;
		pFilterMask->RXF1 |= 0x80000000;
	}

	//txdata[size++] = 0x00;
	//txdata[size++] = ( SET_MSGFILTER1 ) | 0x80;
  txdata[size++] = (uint8_t)( pFilterMask->RXM0 >> 24 );
	txdata[size++] = (uint8_t)( pFilterMask->RXM0 >> 16 );
	txdata[size++] = (uint8_t)( pFilterMask->RXM0 >> 8 );
	txdata[size++] = (uint8_t)  pFilterMask->RXM0;

	txdata[size++] = (uint8_t)( pFilterMask->RXM1 >> 24 ); 
	txdata[size++] = (uint8_t)( pFilterMask->RXM1 >> 16 );
	txdata[size++] = (uint8_t)( pFilterMask->RXM1 >> 8 );
	txdata[size++] = (uint8_t)  pFilterMask->RXM1;
	
	txdata[size++] = (uint8_t)( pFilterMask->RXF0 >> 24 ); 
	txdata[size++] = (uint8_t)( pFilterMask->RXF0 >> 16 );
	txdata[size++] = (uint8_t)( pFilterMask->RXF0 >> 8 );	
	txdata[size++] = (uint8_t)  pFilterMask->RXF0;	
	
	txdata[size++] = (uint8_t)( pFilterMask->RXF1 >> 24 ); 
	txdata[size++] = (uint8_t)( pFilterMask->RXF1 >> 16 );
	txdata[size++] = (uint8_t)( pFilterMask->RXF1 >> 8 );
	txdata[size++] = (uint8_t)  pFilterMask->RXF1;

	if ( USB_OK != sendCommand( SET_MSGFILTER1, txdata, size ) ) {
		return false;
	}

	
	if ( pFilterMask->rx_buff2_ext ) {
		pFilterMask->RXF2 |= 0x80000000;
		pFilterMask->RXF3 |= 0x80000000;
		pFilterMask->RXF4 |= 0x80000000;
		pFilterMask->RXF5 |= 0x80000000;
	}

	size = 0;	
	//txdata[size++] = 0x00;
	//txdata[size++] = ( SET_MSGFILTER2 ) | 0x80; 
	
	txdata[size++] = (uint8_t)( pFilterMask->RXF2 >> 24 ); 
	txdata[size++] = (uint8_t)( pFilterMask->RXF2 >> 16 );
	txdata[size++] = (uint8_t)( pFilterMask->RXF2 >> 8 );
	txdata[size++] = (uint8_t)  pFilterMask->RXF2;

	txdata[size++] = (uint8_t)( pFilterMask->RXF3 >> 24 ); 
	txdata[size++] = (uint8_t)( pFilterMask->RXF3 >> 16 );
	txdata[size++] = (uint8_t)( pFilterMask->RXF3 >> 8 );
	txdata[size++] = (uint8_t)  pFilterMask->RXF3;
	
	txdata[size++] = (uint8_t)( pFilterMask->RXF4 >> 24 ); 
	txdata[size++] = (uint8_t)( pFilterMask->RXF4 >> 16 );
	txdata[size++] = (uint8_t)( pFilterMask->RXF4 >> 8 );
	txdata[size++] = (uint8_t)  pFilterMask->RXF4;
	
	txdata[size++] = (uint8_t)( pFilterMask->RXF5 >> 24 ); 
	txdata[size++] = (uint8_t)( pFilterMask->RXF5 >> 16 );
	txdata[size++] = (uint8_t)( pFilterMask->RXF5 >> 8 );
	txdata[size++] = (uint8_t)  pFilterMask->RXF5;

	if ( USB_OK != sendCommand( SET_MSGFILTER2, txdata, size ) ) {
		return false;
	}

	return true;
}
示例#3
0
bool CApoxObj::open( const char *szFileName, unsigned long flags )
{
	const char *p;
	unsigned long busspeed = 125;
	m_emergencyInfo = 0;
	char szDrvParams[ MAX_PATH ];
	m_initFlag = flags;

	m_RxMsgState = USB_IDLE;

	// save parameter string and conbert to upper case
	strncpy( szDrvParams, szFileName, MAX_PATH );
	_strupr( szDrvParams );

	// Initiate statistics
	m_stat.cntReceiveData = 0;
	m_stat.cntReceiveFrames = 0;
	m_stat.cntTransmitData = 0;
	m_stat.cntTransmitFrames = 0;

	m_stat.cntBusOff = 0;
	m_stat.cntBusWarnings = 0;
	m_stat.cntOverruns = 0;

	// if open we have noting to do
	if ( m_bRun ) return true;
		
	// serial
	p = strtok( szDrvParams, ";" );
	if ( NULL != p ) {		
		strcpy( m_SerialNumber, p );	
	}

	// Bus-Speed
	p = strtok( NULL, ";" );
	if ( NULL != p ) {		
		if ( ( NULL != strstr( p, "0x" ) ) || ( NULL != strstr( p, "0X" ) )  ) {
			sscanf( p + 2, "%x", &busspeed );
		}
		else {
			busspeed = atol( p );
		}
	}

	// Handle busspeed
	uint8_t nSpeed = CAN_BAUD_1000;
	switch ( busspeed ) {

		case 125:
			nSpeed = CAN_BAUD_125;
			break;

		case 250:
			nSpeed = CAN_BAUD_250;
			break;

		case 500:
			nSpeed = CAN_BAUD_500;
			break;

		case 1000:
			nSpeed = CAN_BAUD_1000;
			break;

		default:
			nSpeed = CAN_BAUD_125;
			break;

	}


	FT_STATUS ftStatus;
	ftStatus = FT_OpenEx( (void *)m_SerialNumber, 
							FT_OPEN_BY_SERIAL_NUMBER, 
							&m_ftHandle );
	if ( !FT_SUCCESS( ftStatus ) ) return false;
		
	ftStatus = FT_ResetDevice( m_ftHandle );
	ftStatus = FT_Purge( m_ftHandle, FT_PURGE_RX | FT_PURGE_TX );
	ftStatus = FT_SetTimeouts(m_ftHandle, 378, 128);
	ftStatus = FT_SetUSBParameters ( m_ftHandle, 2048, 2048 );
	ftStatus = FT_SetLatencyTimer( m_ftHandle, 3 );
    
	
	// Run run run ..... 

	m_bRun = true;

#ifdef WIN32
	
	// Start write thread 
	DWORD threadId;
	if ( NULL == 
			( m_hTreadTransmit = CreateThread(	NULL,
										0,
										(LPTHREAD_START_ROUTINE) workThreadTransmit,
										this,
										0,
										&threadId ) ) ) { 
		// Failure
		close();
		return false;
	}

	// Start read thread 
	if ( NULL == 
			( m_hTreadReceive = CreateThread(	NULL,
										0,
										(LPTHREAD_START_ROUTINE) workThreadReceive,
										this,
										0,
										&threadId ) ) ) { 
		// Failure
		close();
		return  false;
	}
	
	// Release the mutex
	UNLOCK_MUTEX( m_apoxMutex );
	UNLOCK_MUTEX( m_receiveMutex );
	UNLOCK_MUTEX( m_transmitMutex );
	UNLOCK_MUTEX( m_responseMutex );

#else // LINUX


	pthread_attr_t thread_attr;
	pthread_attr_init( &thread_attr );
	
	
	// Create the log write thread.
	if ( pthread_create( 	&m_threadId,
								&thread_attr,
								workThreadTransmit,
								this ) ) {	
							
		syslog( LOG_CRIT, "canallogger: Unable to create apoxdrv write thread.");
		rv = false;
		fclose( m_flog );
	}


	// Create the log write thread.
	if ( pthread_create( 	&m_threadId,
								&thread_attr,
								workThreadReceive,
								this ) ) {	
							
		syslog( LOG_CRIT, "canallogger: Unable to create apoxdrv receive thread.");
		rv = false;
		fclose( m_flog );
	}
		
    // We are open
	m_bOpen = true;

	// Release the mutex
	pthread_mutex_unlock( &m_apoxMutex );

#endif	

	// Switch to main mode if in boot mode
	if ( RUNMODE_BOOT == getAdapterRunMode() ) {
		setAdapterRunMode( RUNMODE_MAIN );
	}

	// Set baudrate
	setBaudrate( nSpeed );

	// Set initial filter/mask	
	switch( m_initFlag & 0x03 ) {

		case 0:
		case 3:
			m_filtermask.rx_buff1_ext = 0;
			m_filtermask.rx_buff2_ext = 1;
			break;

		case 1:
			m_filtermask.rx_buff1_ext = 0;
			m_filtermask.rx_buff2_ext = 0;
			break;

		case 2:
			m_filtermask.rx_buff1_ext = 1;
			m_filtermask.rx_buff2_ext = 1;
			break;
	}

	m_filtermask.RXM0 = 0;
	m_filtermask.RXM1 = 0;
	m_filtermask.RXF0 = 0;	
	m_filtermask.RXF1 = 0;
	m_filtermask.RXF2 = 0;
	m_filtermask.RXF3 = 0;
	m_filtermask.RXF4 = 0;
	m_filtermask.RXF5 = 0;

	setAdapterFilterMask( &m_filtermask );

	// Set transmission mode
	short trmode = ( (short)( m_initFlag & 0x0c ) >> 2 );
	if ( 0 == trmode ) trmode = TRMODE_NORMAL;
	setTransmissionMode( trmode );

	return true;
}