Найти - Пользователи
Полная версия: Питон и БЛЮТУЗ - помогите новичку
Начало » Mobile Python » Питон и БЛЮТУЗ - помогите новичку
1
AlexSSX1
Доброго времени суток.
Я в Питоне начинающий, до этого работал в Яве микроэдишн, вот пытаюсь освоить, помогите пожалуйста проблема следующая:
Есть необходимость написать Блютуз-радар как на mShell - то есть происходит поиск по БТ доступных к обнаружению устройств, как только устройство найдено мы проверяем есть ли оно в списке который заранее задан, если устройство есть в списке - показываем на экране, если нет - продолжаем поиск.
В Яве при вызове процедуры поиска и при нахождении устройства (не по окончании поиска, а во время поиска при обнаружении доступного устройства) в радиусе доступа сразу вызывается процедура deviceDiscovered - и вот в ней можно делать проверку и т.д. Как подобное реализовано в Питоне? Почитал по этому поводу мануалы, делаю вот так
 import socket  
address, services = socket.bt_discover()  
print "Discovered: %s, %s" % (address, services) 
Кстати в коде в скобках стоит (address, services) а мне нужны только имена как это сделать? Я ещё слышал что в версии Питона 1.9.х и 2.х вместо socket нужно ставить btsocket - это где в import? Спасибо заранее. З.Ы. Работаю с Pithon for S60 для Symbian^3
AlexSSX1
Народ ну помогите кто нибудь!
Взял вот такой исходник (доработал до версии 2.0.х) но вот как сделать проверку найденных имён (только имён без поиска сервисов, без подключений и т.д.)
import btsocket
import appuifw
import e32
class BTReader:
    def connect(self):
        self.sock=btsocket.socket(btsocket.AF_BT,btsocket.SOCK_STREAM)
        addr,services=btsocket.bt_discover()
        print "Discovered: %s, %s"%(addr,services)
        if len(services)>0:
            import appuifw
            choices=services.keys()
            choices.sort()
            choice=appuifw.popup_menu([unicode(services[x])+": "+x
                                       for x in choices],u'Choose port:')
            port=services[choices[choice]]
        else:
            port=services[services.keys()[0]]
        address=(addr,port)
        print "Connecting to "+str(address)+"...",
        self.sock.connect(address)
        print "OK." 
    def readline(self):
        line=[]
        while 1:
            ch=self.sock.recv(1)
            if(ch=='\n'):
                break
            line.append(ch)
        return ''.join(line)
    def close(self):
        self.sock.close()
bt=BTReader()
bt.connect()
print "Received: "+bt.readline()
bt.close()
Понятно что создаём сначала класс а после обращаемся к его процедурам, но как проверять имена и где их перечислить?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB