anchors.left:parent.left;anchors.right:parent.right
anchors.leftMargin:50;anchors.rightMargin:50
- spacing: 30
+ spacing: 40
Text {
width:400
text: "Drone IP"
// onEnabledChanged:{drone.confFullScreen=enabled;}
onCheckedChanged:{drone.confFullScreen=checked;}
}
-
+ Text {
+ text: "Acceleration Sensor for controll"
+ }
+ Switch {
+ id: useAccelSw
+ // enabled:drone.confUseAccel
+ checked:drone.confUseAccel
+ anchors.right:parent.right
+// onEnabledChanged:{drone.confUseAccel=enabled;}
+ onCheckedChanged:{drone.confUseAccel=checked;}
+ }
Text {
text: "Show debug"
}
}
Text {
- text: "Forward gain"
+ text: "Forward/backward gain"
}
Slider {
value:drone.confForwardGain
onValueChanged:{drone.confForwardGain=value;}
}
+ /*
Text {
text: "Backward gain"
}
value:drone.confLeftGain
onValueChanged:{drone.confLeftGain=value;}
}
-
+*/
Text {
- text: "Right gain"
+ text: "Right/Left gain"
}
Slider {
value:drone.confRightGain
onValueChanged:{drone.confRightGain=value;}
}
+ Text {
+ text: "accel ctrl treshold"
+ }
+ Slider {
+ id: ctrlTreshold
+ anchors.right:parent.right
+ // maximumValue:25.0
+ // stepSize:0.01
+ // steps:1
+ value:drone.confCtrlTrsh
+ onValueChanged:{drone.confCtrlTrsh=value;}
+ }
}
}
}
id:joystick
property int xv:(knob.x-(width-knob.width)/2)*(200/(width-knob.width))
property int yv:(knob.y-(height-knob.height)/2)*(200/(height-knob.height))
+ property bool pressed:mouse_area.pressed
width: 200
height: 200
drag.maximumX:parent.width-knob.width
drag.maximumY:parent.height-knob.height
drag.target:knob;
- onReleased:{knob.x=parent.width/2-knob.width/2;knob.y=parent.height/2-knob.height/2
+ onReleased:{
+ knob.x=parent.width/2-knob.width/2;
+ knob.y=parent.height/2-knob.height/2;
}
}
}
#############################################################################
# Makefile for building: mardrone
-# Generated by qmake (2.01a) (Qt 4.7.0) on: Wed Dec 22 12:56:25 2010
+# Generated by qmake (2.01a) (Qt 4.7.0) on: Wed Jan 5 16:02:29 2011
# Project: mardrone.pro
# Template: app
# Command: /usr/bin/qmake -o Makefile mardrone.pro
DEFINES = -DQT_GL_NO_SCISSOR_TEST -DQT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH=1024 -DQT_NO_DEBUG -DQT_DECLARATIVE_LIB -DQT_GUI_LIB -DQT_NETWORK_LIB -DQT_CORE_LIB -DQT_SHARED
CFLAGS = -pipe -O3 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wall -W -D_REENTRANT $(DEFINES)
CXXFLAGS = -pipe -O3 -fno-omit-frame-pointer -fno-optimize-sibling-calls -Wall -W -D_REENTRANT $(DEFINES)
-INCPATH = -I/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/linux-g++-maemo5 -I. -I/targets/FREMANTLE_ARMEL/usr/include/QtCore -I/targets/FREMANTLE_ARMEL/usr/include/QtNetwork -I/targets/FREMANTLE_ARMEL/usr/include/QtGui -I/targets/FREMANTLE_ARMEL/usr/include/QtDeclarative -I/targets/FREMANTLE_ARMEL/usr/include -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/Soft/Common -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/VP_SDK -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/VP_SDK/VP_Os/linux -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/VP_SDK/VP_Os -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/Soft/Lib -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/VLIB -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib -I.
+INCPATH = -I/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/linux-g++-maemo5 -I. -I/targets/FREMANTLE_ARMEL/usr/include/QtCore -I/targets/FREMANTLE_ARMEL/usr/include/QtNetwork -I/targets/FREMANTLE_ARMEL/usr/include/QtGui -I/targets/FREMANTLE_ARMEL/usr/include/QtDeclarative -I/targets/FREMANTLE_ARMEL/usr/include -I/targets/FREMANTLE_ARMEL/usr/include/QtSensors -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/Soft/Common -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/VP_SDK -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/VP_SDK/VP_Os/linux -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/VP_SDK/VP_Os -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/Soft/Lib -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib/VLIB -I../../../../ARDrone_SDK_1_5_Version_20101004/ARDroneLib -I/targets/FREMANTLE_ARMEL/usr/include -I.
LINK = g++
-LFLAGS = -Wl,-rpath-link,/usr/lib -Wl,-O1 -Wl,--hash-style=gnu
-LIBS = $(SUBLIBS) -L/usr/lib -lQtComponents -L/home/kathy/ARDrone_SDK_1_5_Version_20101004/lib -lvlib -lsdk -lQtDeclarative -L/usr/lib -L/usr/X11R6/lib -lQtScript -lQtSvg -lQtSql -lQtXmlPatterns -lQtOpenGL -lQtGui -lQtNetwork -lQtDBus -lQtXml -lQtCore -lpthread
+LFLAGS = -Wl,-rpath-link,/usr/lib -Wl,-O1 -Wl,--hash-style=gnu -Wl,-rpath,/usr/lib
+LIBS = $(SUBLIBS) -L/usr/lib -lQtComponents -L/home/kathy/ARDrone_SDK_1_5_Version_20101004/lib -lvlib -lsdk -L/usr/lib -lQtSensors -lQtDeclarative -L/usr/X11R6/lib -lQtScript -lQtSvg -lQtSql -lQtXmlPatterns -lQtOpenGL -lQtGui -lQtNetwork -lQtDBus -lQtXml -lQtCore -lpthread
AR = ar cqs
RANLIB =
QMAKE = /usr/bin/qmake
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/default_pre.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/release.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/default_post.prf \
+ /targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/mobility.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/warn_on.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/qt.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/unix/thread.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/default_pre.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/release.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/default_post.prf \
+ /targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/mobility.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/warn_on.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/qt.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/unix/thread.prf \
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/default_pre.prf:
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/release.prf:
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/default_post.prf:
+/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/mobility.prf:
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/warn_on.prf:
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/qt.prf:
/targets/FREMANTLE_ARMEL/usr/share/qt4/mkspecs/features/unix/thread.prf:
-$(DEL_DIR) $(INSTALL_ROOT)/opt/usr/bin/
+install_icon64: first FORCE
+ @$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/share/icons/hicolor/64x64/apps/ || $(MKDIR) $(INSTALL_ROOT)/usr/share/icons/hicolor/64x64/apps/
+ -$(INSTALL_FILE) /home/kathy/sb/harmattan/mardrone/mardrone/mardrone.png $(INSTALL_ROOT)/usr/share/icons/hicolor/64x64/apps/
+
+
+uninstall_icon64: FORCE
+ -$(DEL_FILE) -r $(INSTALL_ROOT)/usr/share/icons/hicolor/64x64/apps/mardrone.png
+ -$(DEL_DIR) $(INSTALL_ROOT)/usr/share/icons/hicolor/64x64/apps/
+
+
install_desktopfile: first FORCE
@$(CHK_DIR_EXISTS) $(INSTALL_ROOT)/usr/share/applications/hildon/ || $(MKDIR) $(INSTALL_ROOT)/usr/share/applications/hildon/
-$(INSTALL_FILE) /home/kathy/sb/harmattan/mardrone/mardrone/mardrone.desktop $(INSTALL_ROOT)/usr/share/applications/hildon/
-$(DEL_DIR) $(INSTALL_ROOT)/usr/share/applications/hildon/
-install: install_target install_desktopfile FORCE
+install: install_target install_icon64 install_desktopfile FORCE
-uninstall: uninstall_target uninstall_desktopfile FORCE
+uninstall: uninstall_target uninstall_icon64 uninstall_desktopfile FORCE
FORCE:
opacity:0.5
width:640;height:480;
}
+ Text {
+ y:100
+ visible:drone.confUseAccel
+ color: "#00FF00"
+ id: droneCtrlValues
+ font.pixelSize:20
+ text: "cmd:pitch=" + Math.round(drone.pitch) + " roll= " + Math.round(drone.roll) + " yaw=" + Math.round(drone.yaw) + " vv= " + Math.round(drone.vVelocity)
+ }
Text {
y:115
}
}
Image {
+ visible: !drone.confUseAccel
x:10;y:200
width:280;height:280;
source: "joybox.png"
id:rj
anchors.fill:parent
anchors.margins:50
- onYvChanged:{drone.vVelocity=yv;}
+ onYvChanged:{drone.vVelocity=-1*yv;}
onXvChanged:{drone.yaw=xv;}
+ onPressedChanged: { drone.ctrlActive=pressed;}
}
}
Row {
connect(droneThread->navData(),SIGNAL(navDataUpdated()),this,SLOT(navDataUpdated()));
connect(droneThread->navData(),SIGNAL(stateUpdated()),this,SLOT(statusUpdated()));
droneSettings=new QSettings("katix.org","ardrone");
+ m_ctrlActive=false;
m_pitch=0;
m_roll=0;
m_yaw=0;
m_vv=0;
+ m_useAccel=droneSettings->value("useAccel",false).toBool();
+ m_ctrlTrsh=droneSettings->value("ctrlTreshold",10.0).toFloat();
+ rSensor=new QRotationSensor();
+ rSensor->start();
+ connect(rSensor,SIGNAL(readingChanged()),this,SLOT(rotationReadingsChanged()));
droneThread->setDroneGain(confForwardGain(),confBackwardGain(),confLeftGain(),confRightGain());
}
+
+void DroneControl::rotationReadingsChanged()
+{
+ if(m_useAccel && m_ctrlActive) {
+ m_pitch=rSensor->reading()->x()-m_rotRefX;
+ m_roll =rSensor->reading()->y()-m_rotRefY;
+ m_pitch=(fabs(m_pitch)<m_ctrlTrsh ) ? 0:(m_pitch>0 ? m_pitch-m_ctrlTrsh:m_pitch+m_ctrlTrsh);
+ m_roll =(fabs(m_roll )<m_ctrlTrsh ) ? 0:(m_roll>0 ? m_roll- m_ctrlTrsh:m_roll+ m_ctrlTrsh);
+ droneThread->setDroneControl(m_pitch,m_roll,m_yaw,m_vv);
+ emit pitchRollChanged();
+ //m_rotRefZ=rSensor->reading()->z();
+ //qDebug("setCtrlActive ref(%3.1f,%3.1f,%3.1f)",m_rotRefX,m_rotRefY,m_rotRefZ);
+ }
+}
+
void DroneControl::navDataUpdated()
{
emit navDataChanged();
droneThread->setDroneControl(m_pitch,m_roll,m_yaw,m_vv);
};
float DroneControl::roll() {return m_roll;};
-void DroneControl::setYaw(float val_) {
- m_yaw=val_;
- // qDebug() << "setYaw=" << val_;
+void DroneControl::setYaw(float val) {
+ m_yaw=val;
+ // qDebug() << "setYaw=" << val;
+ if(m_useAccel && m_ctrlActive) m_yaw=(fabs(m_yaw)<(m_ctrlTrsh*2) ) ? 0:(m_yaw>0 ? m_yaw-(m_ctrlTrsh*2):m_yaw+(m_ctrlTrsh*2));
droneThread->setDroneControl(m_pitch,m_roll,m_yaw,m_vv);
};
float DroneControl::yaw() {return m_yaw;};
-void DroneControl::setVVelocity(float val_) {
- m_vv=val_;
+void DroneControl::setVVelocity(float val) {
+ m_vv=val;
+ if(m_useAccel && m_ctrlActive) m_vv=(fabs(m_vv)<(m_ctrlTrsh*2) ) ? 0:(m_vv>0? m_vv-(m_ctrlTrsh*2):m_vv+(m_ctrlTrsh*2));
// qDebug() << "setVv=" << val_;
droneThread->setDroneControl(m_pitch,m_roll,m_yaw,m_vv);
};
float DroneControl::altitude() {return m_altitude;};
void DroneControl::setEnabled(int val_) { m_enabled=val_;};
int DroneControl::enabled() {return m_enabled;};
+
+bool DroneControl::ctrlActive()
+{
+ return m_ctrlActive;
+};
+void DroneControl::setCtrlActive(bool val_)
+{
+ if(val_ && !m_ctrlActive) { // Ctrl switched to active
+ m_rotRefX=rSensor->reading()->x();
+ m_rotRefY=rSensor->reading()->y();
+ m_rotRefZ=rSensor->reading()->z();
+ qDebug("setCtrlActive ref(%3.1f,%3.1f,%3.1f)",m_rotRefX,m_rotRefY,m_rotRefZ);
+ }
+ m_ctrlActive=val_;
+ if(!m_ctrlActive) { m_pitch=0;m_roll=0; };
+ droneThread->setDroneControl(m_pitch,m_roll,m_yaw,m_vv);
+ emit pitchRollChanged();
+
+};
+
+
void DroneControl::setFly(bool val_)
{
m_fly=val_;
};
bool DroneControl::confUseAccel()
{
- return droneSettings->value("useAccel",false).toBool();
+ //return droneSettings->value("useAccel",false).toBool();
+ return m_useAccel; // return cached value
};
void DroneControl::setConfUseAccel(bool val)
{
droneSettings->setValue("useAccel",val);
+ m_useAccel=val;
emit configChanged();
};
bool DroneControl::confUseJoyStick()
droneThread->setDroneGain(confForwardGain(),confBackwardGain(),confLeftGain(),confRightGain());
emit configChanged();
};
-
+float DroneControl::confCtrlTrsh()
+{
+ return m_ctrlTrsh;
+};
+void DroneControl::setConfCtrlTrsh(float val)
+{
+ droneSettings->setValue("ctrlTreshold",val);
+ m_ctrlTrsh=val;
+ emit configChanged();
+};
float DroneControl::confBackwardGain()
{
break;
case initialized:
sendCmd("AT*CTRL=0\r");
+ sendCmd("AT*CONFIG=%1,\"detect:detect_type\",\"2\"\r");
state=ready;
break;
case ready:
#include <QThread>
#include <QTimer>
#include <QSettings>
+#include <QRotationSensor>
#undef _GNU_SOURCE // just get rid of error message double definition
#include <navdata.h>
class DroneThread;
+QTM_USE_NAMESPACE
+
class DroneControl : public QObject
{
Q_OBJECT
- Q_PROPERTY(float pitch READ pitch WRITE setPitch)
- Q_PROPERTY(float roll READ roll WRITE setRoll)
- Q_PROPERTY(float yaw READ yaw WRITE setYaw)
+ Q_PROPERTY(float pitch READ pitch WRITE setPitch NOTIFY pitchRollChanged)
+ Q_PROPERTY(float roll READ roll WRITE setRoll NOTIFY pitchRollChanged)
+ Q_PROPERTY(float yaw READ yaw WRITE setYaw NOTIFY pitchRollChanged)
Q_PROPERTY(float altitude READ altitude WRITE setAltitude)
- Q_PROPERTY(float vVelocity READ vVelocity WRITE setVVelocity)
+ Q_PROPERTY(float vVelocity READ vVelocity WRITE setVVelocity NOTIFY pitchRollChanged)
Q_PROPERTY(int enabled READ enabled WRITE setEnabled)
Q_PROPERTY(bool fly READ fly WRITE setFly)
+ Q_PROPERTY(bool ctrlActive READ ctrlActive WRITE setCtrlActive)
Q_PROPERTY(float dronePitch READ dronePitch NOTIFY navDataChanged)
Q_PROPERTY(float droneRoll READ droneRoll NOTIFY navDataChanged)
Q_PROPERTY(float droneYaw READ droneYaw NOTIFY navDataChanged)
Q_PROPERTY(float confBackwardGain READ confBackwardGain WRITE setConfBackwardGain NOTIFY configChanged)
Q_PROPERTY(float confLeftGain READ confLeftGain WRITE setConfLeftGain NOTIFY configChanged)
Q_PROPERTY(float confRightGain READ confRightGain WRITE setConfRightGain NOTIFY configChanged)
+ Q_PROPERTY(float confCtrlTrsh READ confCtrlTrsh WRITE setConfCtrlTrsh NOTIFY configChanged)
public:
explicit DroneControl();
int enabled() ; void setEnabled(int val_) ;
bool emergency();void setEmergency(bool val_) ;
bool fly() ; void setFly(bool val_) ;
+ bool ctrlActive();void setCtrlActive(bool val_) ;
// Read only telemetry and drone status
QString decodedStatus();
float droneVBat();
//Config variables
- QString confDroneIp(); void setConfDroneIp(QString ip);
+ QString confDroneIp(); void setConfDroneIp(QString ip);
bool confShowDebug(); void setConfShowDebug(bool val);
bool confShowHorizon(); void setConfShowHorizon(bool val);
bool confShowGauges(); void setConfShowGauges(bool val);
bool confUseAccel(); void setConfUseAccel(bool val);
- bool confFullScreen();void setConfFullScreen(bool val);
+ bool confFullScreen(); void setConfFullScreen(bool val);
bool confUseJoyStick(); void setConfUseJoyStick(bool val);
float confForwardGain(); void setConfForwardGain(float val);
float confBackwardGain(); void setConfBackwardGain(float val);
float confLeftGain(); void setConfLeftGain(float val);
float confRightGain(); void setConfRightGain(float val);
-
+ float confCtrlTrsh(); void setConfCtrlTrsh(float val);
signals:
void navDataChanged();
void statusChanged();
void configChanged();
+ void pitchRollChanged();
public slots:
void navDataUpdated();
void statusUpdated();
+ void rotationReadingsChanged();
private:
float m_pitch; // pitch in horizon
float m_yaw; // low value to display
float m_vv; // Verticl velocity
float m_altitude; // altitude
+ float m_rotRefX; // Rotation zero reference
+ float m_rotRefY;
+ float m_rotRefZ;
int m_enabled; // Enable flag
bool m_emergency; // Emergency flag
QString _emgReason; // Reason of emergency
bool m_fly; // Fly flag
+ bool m_ctrlActive;
+ bool m_useAccel;
+ float m_ctrlTrsh; // accel controll treshold
QTcpSocket *ctlSock; // TCP port for control/config data
QUdpSocket *navSock; // Navigation data receive socket port 5554
DroneThread *droneThread;
QSettings *droneSettings;
+ QRotationSensor *rSensor; // used for controllind drone with device rotation
};
CONFIG += mobility
+MOBILITY += sensors
TARGET = mardrone
TEMPLATE = app
AR_DRONE_SDK= $$(HOME)/ARDrone_SDK_1_5_Version_20101004
desktopfile.files = $${TARGET}.desktop
maemo5 {
desktopfile.path = /usr/share/applications/hildon
+ icon64.path = /usr/share/icons/hicolor/64x64/apps
+ icon64.files = $${TARGET}.png
+ INSTALLS += icon64
} else {
desktopfile.path = /usr/share/applications
}
current_motor4=npwm->current_motor4;
pwm_motor4=npwm->motor4;
emit navDataUpdated();
- qDebug("pwm1=%3d I1=%4f pwm2=%3d I2=%4f pwm3=%3d I3=%4f pwm4=%3d I4=%4f",
- pwm_motor1,current_motor1,pwm_motor2,current_motor2,pwm_motor3,current_motor3,pwm_motor4,current_motor4);
+ // qDebug("pwm1=%3d I1=%4f pwm2=%3d I2=%4f pwm3=%3d I3=%4f pwm4=%3d I4=%4f",
+ // pwm_motor1,current_motor1,pwm_motor2,current_motor2,pwm_motor3,current_motor3,pwm_motor4,current_motor4);
}
break;
case NAVDATA_ALTITUDE_TAG: //10
case NAVDATA_TRACKERS_SEND_TAG:
break;
case NAVDATA_VISION_DETECT_TAG: //16
+ {
+ _navdata_vision_detect_t *nvisd=(_navdata_vision_detect_t*)op;
+ qDebug("nb_detected=%d type=%d xc=%d yc=%d width=%d height=%d dist=%d",nvisd->nb_detected,nvisd->type[0],nvisd->xc[0],nvisd->yc[0],
+ nvisd->width[0],nvisd->height[0],nvisd->dist[0]);
+ for(int i=0;i++;i<4) {
+ tags[i].type=nvisd->type[i];
+ tags[i].xc=nvisd->xc[i];
+ tags[i].yc=nvisd->yc[i];
+ tags[i].height=nvisd->height[i];
+ tags[i].width=nvisd->width[i];
+ tags[i].dist=nvisd->dist[i];
+ }
+ }
break;
case NAVDATA_WATCHDOG_TAG:
break;
#include <navdata_common.h>
#include "config.h"
+struct tag_t {
+ unsigned int type;
+ unsigned int xc;
+ unsigned int yc;
+ unsigned int width;
+ unsigned int height;
+ unsigned int dist;
+};
+
class NavData : public QObject
{
Q_OBJECT
int pwm_motor2;
int pwm_motor3;
int pwm_motor4;
+ tag_t tags[4];
signals:
void navDataUpdated();
void stateUpdated();
picture.cr_line_size = pictureWidth / 2;
picture.y_pad = 0;
picture.c_pad = 0;
- qDebug() << "videoThread::run() 3";
video_codec_open(&controller, (codec_type_t)UVLC_CODEC);
//stateTimer->start(1000);
qDebug() << "videoThread::run() initialized";
quint16 port;
videoData.resize(videoSock->pendingDatagramSize ());
l=videoSock->readDatagram(videoData.data(),videoData.size(),&host,&port);
- qDebug() << "videoThread::videoDataReady" <<" l=" << l << "from" << host ;
+// qDebug() << "videoThread::videoDataReady" <<" l=" << l << "from" << host ;
decodeTransform(videoData);
}
//video_decode_picture( &controller, &picture, &stream, &got_image );
if( got_image )
{
- qDebug() <<"VideoThread::decodeTransform got image" << picture.width << picture.height << image->byteCount() << image->bytesPerLine();
+ // qDebug() <<"VideoThread::decodeTransform got image" << picture.width << picture.height << image->byteCount() << image->bytesPerLine();
// we got one picture
// out->size = 1;
picture.complete = 1;
vp_stages_YUV420P_to_RGB565(NULL,&picture,image->bits(),image->bytesPerLine());
- qDebug() << "pic " << num_picture_decoded;
+ // qDebug() << "pic " << num_picture_decoded;
}
.
* Initial Release.
Files:
- 1591b907efe219822b1d5394e97f543e 269 user/hidden optional mardrone_0.0.1.dsc
- 08c0e35f2b10481131ba0f08a8c28115 1373656 user/hidden optional mardrone_0.0.1.tar.gz
- 898cfeb09dd6c616a146ac6b1869607b 103972 user/hidden optional mardrone_0.0.1_armel.deb
+ c19e2d3cccf5dcc764da734d0127d6a7 269 user/hidden optional mardrone_0.0.1.dsc
+ 0552a460cc8b4b7d7413e5637e4be22c 1379887 user/hidden optional mardrone_0.0.1.tar.gz
+ f097693f6af6d6e2785d3f8d282100a9 107678 user/hidden optional mardrone_0.0.1_armel.deb