author | wimpie <wimpie> | 2005-01-06 15:15:01 (UTC) |
---|---|---|
committer | wimpie <wimpie> | 2005-01-06 15:15:01 (UTC) |
commit | 0baf6b4c6862738d712f479cb7e99a5f2534d74d (patch) (side-by-side diff) | |
tree | fb02c5279fb7e3949c08e51202ada1caf5e408fa /noncore/settings/networksettings2/opietooth2 | |
parent | ba9ce5a0fcd66031ade038f7e6a7ac26908225a5 (diff) | |
download | opie-0baf6b4c6862738d712f479cb7e99a5f2534d74d.zip opie-0baf6b4c6862738d712f479cb7e99a5f2534d74d.tar.gz opie-0baf6b4c6862738d712f479cb7e99a5f2534d74d.tar.bz2 |
added support for HCI Sniffing (still not tested)
changed GPRS plugin name (no support for capital letters)
Diffstat (limited to 'noncore/settings/networksettings2/opietooth2') (more/less context) (ignore whitespace changes)
4 files changed, 148 insertions, 17 deletions
diff --git a/noncore/settings/networksettings2/opietooth2/Opietooth.cpp b/noncore/settings/networksettings2/opietooth2/Opietooth.cpp index 2d4885c..5a890da 100644 --- a/noncore/settings/networksettings2/opietooth2/Opietooth.cpp +++ b/noncore/settings/networksettings2/opietooth2/Opietooth.cpp @@ -1,24 +1,28 @@ #include <opie2/odebug.h> #include <opie2/oledbox.h> +#include <opie2/ofiledialog.h> + using namespace Opie::Core; using namespace Opie::Ui; #include <qpe/resource.h> +#include <qapplication.h> #include <qcheckbox.h> +#include <qcombobox.h> +#include <qdialog.h> +#include <qdir.h> +#include <qfile.h> #include <qgroupbox.h> -#include <qlabel.h> -#include <qprogressbar.h> #include <qheader.h> -#include <qmessagebox.h> -#include <qapplication.h> -#include <qlistbox.h> -#include <qdialog.h> -#include <qlayout.h> -#include <qcombobox.h> #include <qlabel.h> +#include <qlayout.h> +#include <qlistbox.h> #include <qlistview.h> +#include <qmessagebox.h> +#include <qprogressbar.h> #include <qpushbutton.h> +#include <qtextstream.h> #include <Opietooth.h> #include <OTDriver.h> #include <OTPeer.h> @@ -26,8 +30,10 @@ using namespace Opie::Ui; #include <OTSDPAttribute.h> #include <OTSDPService.h> #include <OTInquiry.h> +#include <system.h> + using namespace Opietooth2; namespace Opietooth2 { @@ -112,18 +118,123 @@ private : OTSniffing::OTSniffing( QWidget * parent ) : OTSniffGUI( parent ) { OT = OTGateway::getOTGateway(); - + HciDump = 0; + Sys = new System(); } OTSniffing::~OTSniffing() { + printf( "CLOSE \n" ); + if ( HciDump ) { + HciDump->process().kill(); + delete HciDump; + } + delete Sys; } -void OTSniffing::SLOT_Trace( void ) { +void OTSniffing::SLOT_Trace( bool ) { + HciDump = new MyProcess(); + QStringList SL; + + SL << "hcidump"; + switch( DataFormat_CB->currentItem() ) { + case 0 : // Hex + SL << "-x"; + break; + case 1 : // Ascii + SL << "-a"; + break; + case 2 : // both + SL << "-X"; + break; + } + + SL << "-i"; + SL << OT->scanWith()->devname(); + + connect( HciDump, + SIGNAL( stdoutLine( const QString & ) ), + this, + SLOT( SLOT_Show( const QString & ) ) ); + + connect( HciDump, + SIGNAL(processExited(MyProcess*) ), + this, + SLOT( SLOT_ProcessExited(MyProcess*) ) ); + + if( ! Sys->runAsRoot( SL, HciDump ) ) { + QMessageBox::warning(0, + tr("Run hcidump"), + tr("Cannot start %1").arg(SL.join(" ")) + ); + delete HciDump; + HciDump = 0; + } + +} + +void OTSniffing::SLOT_Show( const QString & S ) { + printf( "%s\n", S.latin1() ); + Output_LB->insertItem( S ); + Output_LB->setCurrentItem( Output_LB->count()-1 ); + Output_LB->ensureCurrentVisible(); +} + +void OTSniffing::SLOT_ProcessExited( MyProcess * ) { + printf( "Exited\n" ); + delete HciDump; + HciDump = 0; +} + +void OTSniffing::SLOT_Save( void ) { + QString S = OFileDialog::getSaveFileName( + OFileSelector::Extended, + QDir::home().path(), + QString::null, + MimeTypes(), + this ); + + if( ! S.isEmpty() ) { + QFile F( S ); + if( ! F.open( IO_WriteOnly ) ) { + QMessageBox::warning(0, + tr("Save log"), + tr("Cannot open %1").arg(S) + ); + return; + } + QTextStream TS( &F ); + TS << S << endl; + } +} + +void OTSniffing::SLOT_Load( void ) { + QString S = OFileDialog::getOpenFileName( + OFileSelector::Extended, + QDir::home().path(), + QString::null, + MimeTypes(), + this ); + + if( ! S.isEmpty() ) { + QFile F( S ); + if( ! F.open( IO_ReadOnly ) ) { + QMessageBox::warning(0, + tr("Save log"), + tr("Cannot open %1").arg(S) + ); + return; + } + QTextStream TS ( &F ); + SLOT_ClearLog(); + S = TS.read(); + Output_LB->insertStringList( QStringList::split( "\n", S ) ); + } } void OTSniffing::SLOT_ClearLog( void ) { + Output_LB->clear(); } // // @@ -1028,9 +1139,12 @@ void OTMain::SLOT_Pairing( void ) { void OTMain::SLOT_Sniffing( void ) { if( SnifWindow == 0 ) { - SnifWindow = new OTSniffing( this ); + SnifWindow = new QDialog( this, 0, FALSE ); + QVBoxLayout * V = new QVBoxLayout( SnifWindow ); + OTSniffing * SN = new OTSniffing( SnifWindow ); + V->addWidget( SN ); } SnifWindow->showMaximized(); SnifWindow->show(); diff --git a/noncore/settings/networksettings2/opietooth2/Opietooth.h b/noncore/settings/networksettings2/opietooth2/Opietooth.h index 211ae65..2b20975 100644 --- a/noncore/settings/networksettings2/opietooth2/Opietooth.h +++ b/noncore/settings/networksettings2/opietooth2/Opietooth.h @@ -2,9 +2,20 @@ #define OPIETOOTH_H #include <OTIcons.h> -namespace Opie { namespace Ui { class OLedBox; }; }; +class MyProcess; +class System; + +namespace Opie { + + namespace Ui { + + class OLedBox; + + }; + +}; #include <OTSniffGUI.h> namespace Opietooth2 { @@ -24,18 +35,24 @@ public : ~OTSniffing(); private slots : - void SLOT_Trace( void ); + void SLOT_Trace( bool ); void SLOT_ClearLog( void ); + void SLOT_Load( void ); + void SLOT_Save( void ); + void SLOT_ProcessExited( MyProcess * ); + void SLOT_Show( const QString & ); signals : protected : private : OTGateway * OT; + MyProcess * HciDump; + System * Sys; }; }; #include <OTPairingGUI.h> @@ -216,8 +233,8 @@ private : // load scanned devices OTIcons * Icons; OTGateway * OT; - OTSniffing * SnifWindow; + QDialog * SnifWindow; }; }; #endif diff --git a/noncore/settings/networksettings2/opietooth2/libopietooth2.control b/noncore/settings/networksettings2/opietooth2/libopietooth2.control index fd01fb5..c2c8eb8 100644 --- a/noncore/settings/networksettings2/opietooth2/libopietooth2.control +++ b/noncore/settings/networksettings2/opietooth2/libopietooth2.control @@ -4,6 +4,6 @@ Priority: optional Section: opie/system Maintainer: wim delvaux <wim.delvaux@handhelds.org> Architecture: arm Version: $QPE_VERSION$EXTRAVERSION -Depends: task-opie-minimal, libbluetooth1, opie-bluepin | opie-multiauth-bluepingplugin, bluez-utils-nodbus +Depends: task-opie-minimal, opie-networksettings2, libbluetooth1, opie-bluepin | opie-multiauth-bluepingplugin, bluez-utils-nodbus Description: Opie bluetooth support library version 2 diff --git a/noncore/settings/networksettings2/opietooth2/opietooth2.pro b/noncore/settings/networksettings2/opietooth2/opietooth2.pro index cfb527d..e0057a9 100644 --- a/noncore/settings/networksettings2/opietooth2/opietooth2.pro +++ b/noncore/settings/networksettings2/opietooth2/opietooth2.pro @@ -26,11 +26,11 @@ SOURCES = OTDevice.cpp \ OTIcons.cpp \ OTPeer.cpp \ OTGateway.cpp \ Opietooth.cpp -INCLUDEPATH += $(OPIEDIR)/include +INCLUDEPATH += $(OPIEDIR)/include ../networksettings2 DEPENDPATH += $(OPIEDIR)/include -LIBS += -lqpe -lopiecore2 -lbluetooth +LIBS += -lqpe -lopiecore2 -lbluetooth -lnetworksettings2 INTERFACES = OTMainGUI.ui OTSniffGUI.ui OTScanGUI.ui OTManageGUI.ui OTPairingGUI.ui TARGET = opietooth2 VERSION = 1.0.0 |