author | zecke <zecke> | 2002-06-28 21:22:46 (UTC) |
---|---|---|
committer | zecke <zecke> | 2002-06-28 21:22:46 (UTC) |
commit | 26be5facf38c25f2b22b18a19ea7fa710f5e2236 (patch) (unidiff) | |
tree | dc78f9e3b27968675f25f8613e23d9d08499d0e8 | |
parent | 63c022af051f205c8080040bf60a9221e691304b (diff) | |
download | opie-26be5facf38c25f2b22b18a19ea7fa710f5e2236.zip opie-26be5facf38c25f2b22b18a19ea7fa710f5e2236.tar.gz opie-26be5facf38c25f2b22b18a19ea7fa710f5e2236.tar.bz2 |
update the parser
-rw-r--r-- | noncore/net/opietooth/lib/manager.cc | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/noncore/net/opietooth/lib/manager.cc b/noncore/net/opietooth/lib/manager.cc index 2234333..e07f9da 100644 --- a/noncore/net/opietooth/lib/manager.cc +++ b/noncore/net/opietooth/lib/manager.cc | |||
@@ -215,77 +215,85 @@ RemoteDevice::ValueList Manager::parseHCIOutput(const QString& output ) { | |||
215 | int pos = str.findRev(':' ); | 215 | int pos = str.findRev(':' ); |
216 | if ( pos > 0 ) { | 216 | if ( pos > 0 ) { |
217 | QString mac = str.left(17 ); | 217 | QString mac = str.left(17 ); |
218 | str.remove( 0, 17 ); | 218 | str.remove( 0, 17 ); |
219 | qWarning("mac %s", mac.latin1() ); | 219 | qWarning("mac %s", mac.latin1() ); |
220 | qWarning("rest:%s", str.latin1() ); | 220 | qWarning("rest:%s", str.latin1() ); |
221 | RemoteDevice rem( mac , str.stripWhiteSpace() ); | 221 | RemoteDevice rem( mac , str.stripWhiteSpace() ); |
222 | list.append( rem ); | 222 | list.append( rem ); |
223 | } | 223 | } |
224 | } | 224 | } |
225 | return list; | 225 | return list; |
226 | } | 226 | } |
227 | 227 | ||
228 | ////// hcitool cc and hcitool con | 228 | ////// hcitool cc and hcitool con |
229 | 229 | ||
230 | /** | 230 | /** |
231 | * Create it on the stack as don't care | 231 | * Create it on the stack as don't care |
232 | * so we don't need to care for it | 232 | * so we don't need to care for it |
233 | * cause hcitool gets reparented | 233 | * cause hcitool gets reparented |
234 | */ | 234 | */ |
235 | void Manager::connectTo( const QString& mac) { | 235 | void Manager::connectTo( const QString& mac) { |
236 | OProcess proc; | 236 | OProcess proc; |
237 | proc << "hcitool"; | 237 | proc << "hcitool"; |
238 | proc << "cc"; | 238 | proc << "cc"; |
239 | proc << "mac"; | 239 | proc << mac; |
240 | proc.start(OProcess::DontCare); // the lib does not care at this point | 240 | proc.start(OProcess::DontCare); // the lib does not care at this point |
241 | } | 241 | } |
242 | 242 | ||
243 | 243 | ||
244 | void Manager::searchConnections() { | 244 | void Manager::searchConnections() { |
245 | qWarning("searching connections?"); | 245 | qWarning("searching connections?"); |
246 | OProcess* proc = new OProcess(); | 246 | OProcess* proc = new OProcess(); |
247 | m_hcitoolCon = QString::null; | 247 | m_hcitoolCon = QString::null; |
248 | 248 | ||
249 | connect(proc, SIGNAL(processExited(OProcess*) ), | 249 | connect(proc, SIGNAL(processExited(OProcess*) ), |
250 | this, SLOT(slotConnectionExited( OProcess*) ) ); | 250 | this, SLOT(slotConnectionExited( OProcess*) ) ); |
251 | connect(proc, SIGNAL(receivedStdout(OProcess*, char*, int) ), | 251 | connect(proc, SIGNAL(receivedStdout(OProcess*, char*, int) ), |
252 | this, SLOT(slotConnectionOutput(OProcess*, char*, int) ) ); | 252 | this, SLOT(slotConnectionOutput(OProcess*, char*, int) ) ); |
253 | *proc << "hcitool"; | 253 | *proc << "hcitool"; |
254 | *proc << "con"; | 254 | *proc << "con"; |
255 | 255 | ||
256 | if (!proc->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { | 256 | if (!proc->start(OProcess::NotifyOnExit, OProcess::AllOutput) ) { |
257 | Connection::ValueList list; | 257 | Connection::ValueList list; |
258 | emit connections( list ); | 258 | emit connections( list ); |
259 | delete proc; | 259 | delete proc; |
260 | } | 260 | } |
261 | } | 261 | } |
262 | void Manager::slotConnectionExited( OProcess* proc ) { | 262 | void Manager::slotConnectionExited( OProcess* /*proc*/ ) { |
263 | qWarning("exited"); | 263 | qWarning("exited"); |
264 | Connection::ValueList list; | 264 | Connection::ValueList list; |
265 | list = parseConnections( m_hcitoolCon ); | 265 | list = parseConnections( m_hcitoolCon ); |
266 | emit connections(list ); | 266 | emit connections(list ); |
267 | } | 267 | } |
268 | void Manager::slotConnectionOutput(OProcess* proc, char* cha, int len) { | 268 | void Manager::slotConnectionOutput(OProcess* proc, char* cha, int len) { |
269 | QCString str(cha, len ); | 269 | QCString str(cha, len ); |
270 | m_hcitoolCon.append( str ); | 270 | m_hcitoolCon.append( str ); |
271 | delete proc; | 271 | delete proc; |
272 | } | 272 | } |
273 | Connection::ValueList Manager::parseConnections( const QString& out ) { | 273 | Connection::ValueList Manager::parseConnections( const QString& out ) { |
274 | Connection::ValueList list2; | 274 | Connection::ValueList list2; |
275 | QStringList list = QStringList::split('\n', out ); | 275 | QStringList list = QStringList::split('\n', out ); |
276 | QStringList::Iterator it; | 276 | QStringList::Iterator it; |
277 | for (it = list.begin(); it != list.end(); ++it ) { | 277 | for (it = list.begin(); it != list.end(); ++it ) { |
278 | QString row = (*it).stripWhiteSpace(); | 278 | QString row = (*it).stripWhiteSpace(); |
279 | QStringList value = QStringList::split(' ', row ); | 279 | QStringList value = QStringList::split(' ', row ); |
280 | qWarning("0: %s", value[0].latin1() ); | 280 | qWarning("0: %s", value[0].latin1() ); |
281 | qWarning("1: %s", value[1].latin1() ); | 281 | qWarning("1: %s", value[1].latin1() ); |
282 | qWarning("2: %s", value[2].latin1() ); | 282 | qWarning("2: %s", value[2].latin1() ); |
283 | qWarning("3: %s", value[3].latin1() ); | 283 | qWarning("3: %s", value[3].latin1() ); |
284 | qWarning("4: %s", value[4].latin1() ); | 284 | qWarning("4: %s", value[4].latin1() ); |
285 | qWarning("5: %s", value[5].latin1() ); | 285 | qWarning("5: %s", value[5].latin1() ); |
286 | qWarning("6: %s", value[6].latin1() ); | 286 | qWarning("6: %s", value[6].latin1() ); |
287 | qWarning("7: %s", value[7].latin1() ); | 287 | qWarning("7: %s", value[7].latin1() ); |
288 | qWarning("8: %s", value[8].latin1() ); | 288 | qWarning("8: %s", value[8].latin1() ); |
289 | Connection con; | ||
290 | con.setDirection( value[0] == QString::fromLatin1("<") ? Outgoing : Incoming ); | ||
291 | con.setConnectionMode( value[1] ); | ||
292 | con.setMac( value[2] ); | ||
293 | con.setHandle( value[4].toInt() ); | ||
294 | con.setState( value[6].toInt() ); | ||
295 | con.setLinkMode( value[8] == QString::fromLatin1("MASTER") ? Master : Client ); | ||
296 | list2.append( con ); | ||
289 | } | 297 | } |
290 | return list2; | 298 | return list2; |
291 | } | 299 | } |