summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/net/opietooth/lib/device.cc2
-rw-r--r--noncore/net/opietooth/lib/manager.cc20
2 files changed, 11 insertions, 11 deletions
diff --git a/noncore/net/opietooth/lib/device.cc b/noncore/net/opietooth/lib/device.cc
index f81066e..eea1178 100644
--- a/noncore/net/opietooth/lib/device.cc
+++ b/noncore/net/opietooth/lib/device.cc
@@ -43,65 +43,65 @@ Device::Device(const QString &device, const QString &mode, const QString &speed
}
Device::~Device(){
detach();
}
void Device::attach(){
owarn << "attaching " << m_device.latin1() << " " << m_mode.latin1() << " " << m_speed.latin1() << oendl;
if(m_process == 0 ){
m_output.resize(0);
owarn << "new process to create" << oendl;
m_process = new OProcess();
*m_process << "hciattach";
*m_process << "-p";
*m_process << m_device << m_mode << m_speed;
connect(m_process, SIGNAL( processExited(Opie::Core::OProcess*) ),
this, SLOT( slotExited(Opie::Core::OProcess* ) ) );
connect(m_process, SIGNAL( receivedStdout(Opie::Core::OProcess*, char*, int) ),
this, SLOT(slotStdOut(Opie::Core::OProcess*,char*,int ) ) );
connect(m_process, SIGNAL(receivedStderr(Opie::Core::OProcess*, char*, int ) ),
this, SLOT(slotStdErr(Opie::Core::OProcess*,char*,int) ) );
if(!m_process->start(OProcess::NotifyOnExit, OProcess::AllOutput ) ){
owarn << "Could not start" << oendl;
delete m_process;
m_process = 0;
}
};
}
void Device::detach(){
delete m_hci;
delete m_process;
// kill the pid we got
if(m_attached ){
//kill the pid
- warn << "killing" << oendl;
+ owarn << "killing" << oendl;
kill(pid, 9);
}
owarn << "detached" << oendl;
}
bool Device::isLoaded()const{
return m_attached;
}
QString Device::devName()const {
return QString::fromLatin1("hci0");
};
void Device::slotExited( OProcess* proc)
{
owarn << "prcess exited" << oendl;
if(proc== m_process ){
owarn << "proc == m_process" << oendl;
if( m_process->normalExit() ){ // normal exit
owarn << "normalExit" << oendl;
int ret = m_process->exitStatus();
if( ret == 0 ){ // attached
owarn << "attached" << oendl;
owarn << "Output: " << m_output.data() << oendl;
pid = parsePid( m_output );
owarn << "Pid = " << pid << oendl;
// now hciconfig hci0 up ( determine hciX FIXME)
// and call hciconfig hci0 up
// FIXME hardcoded to hci0 now :(
m_hci = new OProcess( );
*m_hci << "hciconfig";
*m_hci << "hci0 up";
connect(m_hci, SIGNAL( processExited(Opie::Core::OProcess*) ),
this, SLOT( slotExited(Opie::Core::OProcess* ) ) );
if(!m_hci->start() ){
diff --git a/noncore/net/opietooth/lib/manager.cc b/noncore/net/opietooth/lib/manager.cc
index 76d9127..53122c1 100644
--- a/noncore/net/opietooth/lib/manager.cc
+++ b/noncore/net/opietooth/lib/manager.cc
@@ -163,65 +163,65 @@ void Manager::slotSDPExited( OProcess* proc)
list = parseSDPOutput( it.data() );
m_out.remove( it );
}
}
emit foundServices( proc->name(), list );
delete proc;
}
Services::ValueList Manager::parseSDPOutput( const QString& out ) {
Services::ValueList list;
owarn << "parsing output" << oendl;
Parser parser( out );
list = parser.services();
return list;
}
void Manager::slotHCIExited(OProcess* proc ) {
owarn << "process exited" << oendl;
RemoteDevice::ValueList list;
if (proc->normalExit() ) {
owarn << "normalExit " << proc->name() << oendl;
QMap<QString, QString>::Iterator it = m_devices.find(proc->name() );
if (it != m_devices.end() ) {
owarn << "!= end ;)" << oendl;
list = parseHCIOutput( it.data() );
m_devices.remove( it );
}
}
emit foundDevices( proc->name(), list );
delete proc;
}
void Manager::slotHCIOut(OProcess* proc, char* ch, int len) {
QCString str( ch, len+1 );
- owarn << "hci: " << str.data() oendl;
+ owarn << "hci: " << str.data() << oendl;
QMap<QString, QString>::Iterator it;
it = m_devices.find( proc->name() );
owarn << "proc->name " << proc->name() << oendl;
QString string;
if (it != m_devices.end() ) {
owarn << "slotHCIOut " << oendl;
string = it.data();
}
string.append( str );
m_devices.replace( proc->name(), string );
}
RemoteDevice::ValueList Manager::parseHCIOutput(const QString& output ) {
owarn << "parseHCI " << output.latin1() << oendl;
RemoteDevice::ValueList list;
QStringList strList = QStringList::split('\n', output );
QStringList::Iterator it;
QString str;
for ( it = strList.begin(); it != strList.end(); ++it ) {
str = (*it).stripWhiteSpace();
owarn << "OpieTooth " << str.latin1() << oendl;
int pos = str.findRev(':' );
if ( pos > 0 ) {
QString mac = str.left(17 );
str.remove( 0, 17 );
owarn << "mac " << mac.latin1() << oendl;
owarn << "rest: " << str.latin1() << oendl;
RemoteDevice rem( mac , str.stripWhiteSpace() );
list.append( rem );
}
}
return list;
@@ -253,73 +253,73 @@ void Manager::searchConnections() {
connect(proc, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int) ),
this, SLOT(slotConnectionOutput(Opie::Core::OProcess*, char*, int) ) );
*proc << "hcitool";
*proc << "con";
if (!proc->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) {
ConnectionState::ValueList list;
emit connections( list );
delete proc;
}
}
void Manager::slotConnectionExited( OProcess* proc ) {
ConnectionState::ValueList list;
list = parseConnections( m_hcitoolCon );
emit connections(list );
delete proc;
}
void Manager::slotConnectionOutput(OProcess* /*proc*/, char* cha, int len) {
QCString str(cha, len );
m_hcitoolCon.append( str );
//delete proc;
}
ConnectionState::ValueList Manager::parseConnections( const QString& out ) {
ConnectionState::ValueList list2;
QStringList list = QStringList::split('\n', out );
QStringList::Iterator it;
// remove the first line ( "Connections:")
it = list.begin();
it = list.remove( it );
for (; it != list.end(); ++it ) {
QString row = (*it).stripWhiteSpace();
QStringList value = QStringList::split(' ', row );
- owan << "0: %s" << value[0].latin1() << oendl;
- owan << "1: %s" << value[1].latin1() << oendl;
- owan << "2: %s" << value[2].latin1() << oendl;
- owan << "3: %s" << value[3].latin1() << oendl;
- owan << "4: %s" << value[4].latin1() << oendl;
- owan << "5: %s" << value[5].latin1() << oendl;
- owan << "6: %s" << value[6].latin1() << oendl;
- owan << "7: %s" << value[7].latin1() << oendl;
- owan << "8: %s" << value[8].latin1() << oendl;
+ owarn << "0: %s" << value[0].latin1() << oendl;
+ owarn << "1: %s" << value[1].latin1() << oendl;
+ owarn << "2: %s" << value[2].latin1() << oendl;
+ owarn << "3: %s" << value[3].latin1() << oendl;
+ owarn << "4: %s" << value[4].latin1() << oendl;
+ owarn << "5: %s" << value[5].latin1() << oendl;
+ owarn << "6: %s" << value[6].latin1() << oendl;
+ owarn << "7: %s" << value[7].latin1() << oendl;
+ owarn << "8: %s" << value[8].latin1() << oendl;
ConnectionState con;
con.setDirection( value[0] == QString::fromLatin1("<") ? Outgoing : Incoming );
con.setConnectionMode( value[1] );
con.setMac( value[2] );
con.setHandle( value[4].toInt() );
con.setState( value[6].toInt() );
con.setLinkMode( value[8] == QString::fromLatin1("MASTER") ? Master : Client );
list2.append( con );
}
return list2;
}
void Manager::signalStrength( const QString &mac ) {
OProcess* sig_proc = new OProcess();
connect(sig_proc, SIGNAL(processExited(Opie::Core::OProcess*) ),
this, SLOT(slotSignalStrengthExited( Opie::Core::OProcess*) ) );
connect(sig_proc, SIGNAL(receivedStdout(Opie::Core::OProcess*, char*, int) ),
this, SLOT(slotSignalStrengthOutput(Opie::Core::OProcess*, char*, int) ) );
*sig_proc << "hcitool";
*sig_proc << "lq";
*sig_proc << mac;
sig_proc->setName( mac.latin1() );
if (!sig_proc->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) {
emit signalStrength( mac, "-1" );
delete sig_proc;
}
}