From d3456cb84b428b2f5070517d6e571f6b2724dd24 Mon Sep 17 00:00:00 2001 From: Wim Vriend Date: Mon, 4 Apr 2011 19:58:09 +0000 Subject: Move protocols to DLL: TrackIR git-svn-id: svn+ssh://svn.code.sf.net/p/facetracknoir/code@61 19e81ba0-9b1a-49c3-bd6c-561e1906d5fb --- FTNoIR_Protocol_FG/FGTypes.h | 28 ++++++++++++++++++++++++ FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp | 32 +++++++++++++++++++++++++--- FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h | 6 +++--- FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.vcproj | 4 ++++ 4 files changed, 64 insertions(+), 6 deletions(-) create mode 100644 FTNoIR_Protocol_FG/FGTypes.h (limited to 'FTNoIR_Protocol_FG') diff --git a/FTNoIR_Protocol_FG/FGTypes.h b/FTNoIR_Protocol_FG/FGTypes.h new file mode 100644 index 00000000..949dc213 --- /dev/null +++ b/FTNoIR_Protocol_FG/FGTypes.h @@ -0,0 +1,28 @@ +/******************************************************************************** +* FaceTrackNoIR This program is a private project of the some enthusiastic * +* gamers from Holland, who don't like to pay much for * +* head-tracking. * +* * +* Copyright (C) 2010 Wim Vriend (Developing) * +* Ron Hendriks (Researching and Testing) * +* * +* Homepage * +* * +* Type definitions for the FlightGear server. * +********************************************************************************/ +#pragma once +#ifndef INCLUDED_FGTYPES_H +#define INCLUDED_FGTYPES_H + +#include "Windows.h" + +// +// x,y,z position in metres, heading, pitch and roll in degrees... +// +#pragma pack(2) +struct TFlightGearData { + double x, y, z, h, p, r; + int status; +}; + +#endif//INCLUDED_FGTYPES_H diff --git a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp index cb03c70e..95c83958 100644 --- a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp +++ b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.cpp @@ -33,6 +33,9 @@ */ #include "ftnoir_protocol_fg.h" +// For Todd +//#define SEND_ASCII_DATA + /** constructor **/ FTNoIR_Protocol_FG::FTNoIR_Protocol_FG() { @@ -97,6 +100,10 @@ int no_bytes; QHostAddress sender; quint16 senderPort; +#ifdef SEND_ASCII_DATA +char data[100]; +#endif + // // Copy the Raw measurements directly to the client. // @@ -112,6 +119,22 @@ quint16 senderPort; // Try to send an UDP-message to the FlightGear // +#ifdef SEND_ASCII_DATA + sprintf_s(data, "%.4f;%.4f;%.4f;%.2f;%.2f;%.2f\n\0", FlightData.x, FlightData.y, FlightData.z, FlightData.p, FlightData.h, FlightData.r); + + if (outSocket != 0) { + no_bytes = outSocket->writeDatagram((const char *) &data, strlen( data ), destIP, destPort); + if ( no_bytes > 0) { + qDebug() << "FGServer::writePendingDatagrams says: bytes send =" << data; + } + else { + qDebug() << "FGServer::writePendingDatagrams says: nothing sent!"; + } + } + +#endif + + #ifndef SEND_ASCII_DATA //! [1] // no_bytes = outSocket->writeDatagram((const char *) &FlightData, sizeof( FlightData ), QHostAddress::LocalHost, 5550); if (outSocket != 0) { @@ -123,6 +146,7 @@ quint16 senderPort; qDebug() << "FGServer::writePendingDatagrams says: nothing sent!"; } } + #endif // // FlightGear keeps sending data, so we must read that here. @@ -208,13 +232,15 @@ FTNOIR_PROTOCOL_BASE_EXPORT PROTOCOLHANDLE __stdcall GetProtocol() // // Constructor for server-settings-dialog // -FGControls::FGControls( QWidget *parent, Qt::WindowFlags f ) : -QWidget( parent , f) +FGControls::FGControls() : +QWidget() { ui.setupUi( this ); QPoint offsetpos(100, 100); - this->move(parent->pos() + offsetpos); + //if (parent) { + // this->move(parent->pos() + offsetpos); + //} // Connect Qt signals to member-functions connect(ui.btnOK, SIGNAL(clicked()), this, SLOT(doOK())); diff --git a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h index 220dc60d..45188257 100644 --- a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h +++ b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.h @@ -1,5 +1,5 @@ /******************************************************************************** -* FaceTrackNoIR This program is a private project of the some enthusiastic * +* FaceTrackNoIR This program is a private project of some enthusiastic * * gamers from Holland, who don't like to pay much for * * head-tracking. * * * @@ -31,7 +31,7 @@ #include "..\ftnoir_protocol_base\ftnoir_protocol_base.h" #include "ui_FTNoIR_FGcontrols.h" -#include "..\facetracknoir\FGTypes.h" +#include "FGTypes.h" #include #include #include @@ -70,7 +70,7 @@ class FGControls: public QWidget, Ui::UICFGControls, public IProtocolDialog Q_OBJECT public: - explicit FGControls( QWidget *parent=0, Qt::WindowFlags f=0 ); + explicit FGControls(); virtual ~FGControls(); void showEvent ( QShowEvent * event ); diff --git a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.vcproj b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.vcproj index eae8510a..2a84fa7a 100644 --- a/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.vcproj +++ b/FTNoIR_Protocol_FG/FTNoIR_Protocol_FG.vcproj @@ -177,6 +177,10 @@ Filter="h" UniqueIdentifier="{93995380-89BD-4b04-88EB-625FBE52EBFB}" > + + -- cgit v1.2.3