RSSI nuskaitymas mobiliajame telefone

S
  • 22 Vas '10

Sveiki. kuriu programa Bluetooth adapteriui Python kalba ir meginu gauti RSSI reiksme is mobilioju telefonu, kuri parodo apie priimto signalo stipruma. Viso to esme yra aptikti irenginius kurie yra arciausiai siustuvo (panasiu principu veikia Blue proximity programa). Taigi naudoju skripta is cia:

http://technical.net-fb.de/python_bluetooth.html

Jis lyg ir sukasi taciau visad grazina nulines vertes. Jis buvo ismegintas su Nokia N95, Nokia E65, Asus P535 irenginiais, taciau visais atvejais grazina 0, nepriklausomai nuo to kaip toli ar arti irenginys. gal kam yra teke susidurti su panasia problema arba galbut kas zino kitu skriptu?

Kita problema yra su skripto is bluez paleidimu:

http://wiki.bluez.org/wiki/HOWTO/DiscoveringDevices

Leidziant si skripta visuomet metama tokia klaida todel nepavyksta jo paleisti:

File "./Signal.py", line 30, in <module>
adapter.DiscoverDevices()
File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 68, in call
return self.proxymethod(args, *keywords)
File "/usr/lib/pymodules/python2.6/dbus/proxies.py", line 140, in __call

**keywords)
File "/usr/lib/pymodules/python2.6/dbus/connection.py", line 620, in call_blocking
message, timeout)
dbus.exceptions.DBusException: org.freedesktop.DBus.Error.UnknownMethod: Method "DiscoverDevices" with signature "" on interface "org.bluez.Adapter" doesn't exist

Pavykus susitvarkyti su sita klaida galbut iseitu iveikti ir RSSI reiksmes nuskaitymo problema. Aciu uz pagalba.

S
  • 22 Vas '10

Apie RSSI signalus ir panašius dalykus nieko neišmanau, bet apie klaidą galiu pakomentuoti.

Kaip matyti iš klaidos, bandoma kreiptis į neegzistuojantį DBus interfeisą:

org.bluez.Adapter

Kad šis interfeisas būtų pasiekiamas, turi būti paleistas BlueZ demonas, kuris Ubuntu'uose saugomas šiame pakete:
*http://packages.ubuntu.com/karmic/bluez

Sprendžiant iš paketo failų turinio, reikia, kad būtų konkrečiai paleistas šis demonas (tikriausiai):

/usr/sbin/bluetoothd
S
  • 23 Vas '10

Aciu uz atsakyma. Turiu dar viena klausima del darbo su failais, tai kad nekurt naujos temos paklausiu cia. Tarkim turiu kintamaji address kurio reiksme yra 00:21:FE:C5:82:A3. kaip padaryti, kad galeciau susikurti nauja kintamaji, kuriame butu tik pirmi 8 kintamojo address simboliai. na kaip pvz address1 kuris butu lygus 00:21:FE
kitas klausimas susijes su skaitymu is failo. sakykim turiu tokia eilute:
00:22:03 Glensound Electronics Ltd

kokiu budu skaitant is failo man nuskaityti tik 00:22:03? ir kokiu budu norint isvest i ekrana isvesti tik Glensound Electronics Ltd.

Uzdavinys kuri realizuoju is pirmo zvilgsnio paprastas. pradzioj is kintamojo address man reik issiskirti pirmus 8 simbolius kad galeciau juos palyginti su kiekvienoje failo eiluteje esanciais pirmais 8 skaitmenimis. Jeigu jie sutaps noriu i ekrana isvesti teksta esanti uz tu skaiciu t.y. pvz Glensound Electronics Ltd. Aciu uz pagalba.

S
  • 23 Vas '10

Dėl pirmo klausimo:

>>> a = '00:21:FE:C5:82:A3'

>>> ':'.join(a.split(':')[:3])
    '00:21:FE'

Dėl antro klausimo:

>>> a = '00:22:03 Glensound Electronics Ltd'

>>> a.split(' ', 1)[1]
    'Glensound Electronics Ltd'