Пример #1
0
int OpenGL43Instance::EnumerateGpus()
{
	fDebug0();

	mGpuCount = 0;
	return mGpuCount;
}
Пример #2
0
void Frame::CalibrateESCs()
{
	fDebug0();

	gDebug() << "Disabling ESCs\n";
	for ( Motor* m : mMotors ) {
		m->Disable();
	}

	gDebug() << "Waiting 10 seconds...\n";
	usleep( 10 * 1000 * 1000 );

	gDebug() << "Setting maximal speed\n";
	for ( Motor* m : mMotors ) {
		m->setSpeed( 1.0f, true );
	}

	gDebug() << "Waiting 10 seconds...\n";
	usleep( 10 * 1000 * 1000 );

	gDebug() << "Setting minimal speed\n";
	for ( Motor* m : mMotors ) {
		m->setSpeed( 0.0f, true );
	}

	gDebug() << "Waiting 2 seconds...\n";
	usleep( 2 * 1000 * 1000 );

	gDebug() << "Disarm all ESCs\n";
	for ( Motor* m : mMotors ) {
		m->Disarm();
	}
}
Пример #3
0
int Socket::Connect()
{
	fDebug0();
	if ( mConnected ) {
		return 0;
	}
	setBlocking( true );

	if ( mSocket < 0 ) {
		int type = ( mPortType == UDP or mPortType == UDPLite ) ? SOCK_DGRAM : SOCK_STREAM;
		int proto = ( mPortType == UDPLite ) ? IPPROTO_UDPLITE : ( ( mPortType == UDP ) ? IPPROTO_UDP : 0 );

		char myname[256];
		gethostname( myname, sizeof(myname) );
		memset( &mSin, 0, sizeof( mSin ) );
		mSin.sin_addr.s_addr = htonl( INADDR_ANY );
		mSin.sin_family = AF_INET;
		mSin.sin_port = htons( mPort );

		mSocket = socket( AF_INET, type, proto );
		int option = 1;
		setsockopt( mSocket, SOL_SOCKET, ( 15/*SO_REUSEPORT*/ | SO_REUSEADDR ), (char*)&option, sizeof( option ) );
		if ( mPortType == TCP ) {
			int flag = 1; 
			setsockopt( mSocket, IPPROTO_TCP, TCP_NODELAY, (char*)&flag, sizeof(int) );
		}
		if ( mBroadcast ) {
			int broadcastEnable = 1;
			setsockopt( mSocket, SOL_SOCKET, SO_BROADCAST, &broadcastEnable, sizeof(broadcastEnable) );
		}
		if ( mPortType == UDPLite ) {
			uint16_t checksum_coverage = 8;
			setsockopt( mSocket, IPPROTO_UDPLITE, UDPLITE_SEND_CSCOV, &checksum_coverage, sizeof(checksum_coverage) );
			setsockopt( mSocket, IPPROTO_UDPLITE, UDPLITE_RECV_CSCOV, &checksum_coverage, sizeof(checksum_coverage) );
		}
		if ( bind( mSocket, (SOCKADDR*)&mSin, sizeof(mSin) ) < 0 ) {
			gDebug() << "Socket ( " << mPort << " ) error : " << strerror(errno) << "\n";
			mConnected = false;
			return -1;
		}
	}

	if ( mPortType == TCP ) {
		int ret = listen( mSocket, 5 );
		int size = 0;
		if ( !ret ) {
			mClientSocket = accept( mSocket, (SOCKADDR*)&mClientSin, (socklen_t*)&size );
			if ( mClientSocket < 0 ) {
				mConnected = false;
				return -1;
			}
		} else {
			mConnected = false;
			return -1;
		}
	} else if ( mPortType == UDP or mPortType == UDPLite ) {
		if ( not mBroadcast ) {
			uint32_t flag = 0;
			uint32_t fromsize = sizeof( mClientSin );
			int ret = recvfrom( mSocket, &flag, sizeof( flag ), 0, (SOCKADDR *)&mClientSin, &fromsize );
			if ( ret > 0 ) {
				flag = ntohl( flag );
				gDebug() << "flag : " << ntohl( flag ) << "\n";
				if ( flag != 0x12345678 ) {
					mConnected = false;
					return -1;
				}
			} else {
				gDebug() << strerror( errno ) << "\n";
				mConnected = false;
				return -1;
			}
		}
	}

	mConnected = true;
	return 0;
}