Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 6, 2012 10:48:19

AlexSSX1
Зарегистрирован: 2012-09-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон и БЛЮТУЗ - помогите новичку

Доброго времени суток.
Я в Питоне начинающий, до этого работал в Яве микроэдишн, вот пытаюсь освоить, помогите пожалуйста проблема следующая:
Есть необходимость написать Блютуз-радар как на 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 (Сен. 6, 2012 10:50:31)

Офлайн

#2 Сен. 7, 2012 14:11:22

AlexSSX1
Зарегистрирован: 2012-09-05
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Питон и БЛЮТУЗ - помогите новичку

Народ ну помогите кто нибудь!
Взял вот такой исходник (доработал до версии 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()
Понятно что создаём сначала класс а после обращаемся к его процедурам, но как проверять имена и где их перечислить?

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version