X-Git-Url: http://git.maemo.org/git/?p=remotepc;a=blobdiff_plain;f=pcremote-client-n8x0%2Fdebian%2Fpcremote-client%2Fusr%2Fshare%2Fpcremote-client%2Fconnection%2Fbluetoothconnectionmanager.py;fp=pcremote-client-n8x0%2Fdebian%2Fpcremote-client%2Fusr%2Fshare%2Fpcremote-client%2Fconnection%2Fbluetoothconnectionmanager.py;h=0000000000000000000000000000000000000000;hp=dc23b727bda856f9842051cdb80b008106ce08a4;hb=e164265008086869be2d718f635900a9bf38b7dd;hpb=3885148cece97c7cd7e9e4aaa1cb51f341e53f6c diff --git a/pcremote-client-n8x0/debian/pcremote-client/usr/share/pcremote-client/connection/bluetoothconnectionmanager.py b/pcremote-client-n8x0/debian/pcremote-client/usr/share/pcremote-client/connection/bluetoothconnectionmanager.py deleted file mode 100755 index dc23b72..0000000 --- a/pcremote-client-n8x0/debian/pcremote-client/usr/share/pcremote-client/connection/bluetoothconnectionmanager.py +++ /dev/null @@ -1,216 +0,0 @@ -# -*- coding: utf-8 -*- - -# **************************************************************************** -# Copyright (c) 2008 INdT/Fucapi. -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Lesser General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. - -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Lesser General Public License for more details. - -# You should have received a copy of the GNU Lesser General Public License -# along with this program. If not, see . - -# ============================================================================ -# Project Name : PC Remote -# Author : Jônatas Isvi -# Email : jonatas.nona@gmail.com -# Version : 1.0 -# Description : BluetoothConnectionManager -# ============================================================================ - - -import bluetooth -from exceptions import * -from genericconnectionmanager import * - -class BluetoothConnectionError(Exception): - pass - -class BluetoothConnectionManager(GenericConnectionManager): - - def __init__(self): - GenericConnectionManager.__init__(self) - print "BluetoothConnectionManager iniciado." - # globals data variables - self.sock = None - self.port = None - self.address = None - self.client_sock = None - self.client_address = None - - # fast way to create a simple server - def create_server(self, protocol, port): - self.create_socket(protocol) - self.set_port(port) - self.bind() - self.listen() - self.accept() - - # fast way to create a simple client - def create_client(self, protocol, address, port): - self.create_socket(protocol) - self.set_address(address) - self.set_port(port) - self.connect() - - # search for all devices - def find_devices(self, time=8): - list_devices = bluetooth.discover_devices(lookup_names = True, duration=time) - if list_devices: - return list_devices - else: - raise BluetoothConnectionError, "Device were not found." - - # search the device port - def find_port(self, addr): - port = None - aux = addr.split(":") - if len(aux) == 6: - services = bluetooth.find_service(address=addr) - for i in range(len(services)): - port = services[i]['port'] - - if port != None: - return port - else: - raise BluetoothConnectionError, "Port not found." - - else: - raise BluetoothConnectionError, "Invalid address." - - # search device services - def find_services(self, service=None, addr=None): - if service == None and addr == None: - list = bluetooth.find_service() - # returns all services - return list - elif service != None and addr == None: - list = bluetooth.find_service(name=service) - # returns only the device services indicated by name - if list != []: - return list - else: - raise BluetoothConnectionError, "Name of the service does not exist." - elif service == None and addr != None: - number = addr.split(":") - # returns only the device services indicated by address - if(len(number) == 6): - list = bluetooth.find_service(address=addr) - if list != []: - return list - else: - raise BluetoothConnectionError, "Services not found." - else: - raise BluetoothConnectionError, "Invalid address." - elif service != None and addr != None: - number = addr.split(":") - # returns only the device service indicated by address - if(len(number) == 6): - list = bluetooth.find_service(name=service, address=addr) - if list != []: - return list - else: - raise BluetoothConnectionError, "Services not found." - else: - raise BluetoothConnectionError, "Invalid address." - - - # search the device indicated by name - def find_device_address_by_name(self, device_name): - list = bluetooth.discover_devices() - addr = None - - for address in list: - if device_name == bluetooth.lookup_name(address): - addr = address - break - if addr: - return addr - else: - raise BluetoothConnectionError, "Device name not found." - - - def find_devices_only_names(self): - list = self.find_devices() - list_names = [] - for address, names in list: - list_names += [names] - - if list_names: - return list_names - else: - raise BluetoothConnectionError, "Devices were not found." - - # get the client address - def get_client_address(self): - return self.client_address - - # set the port to communicate - def set_port(self, port): - self.port = port - - # get the port to communicate - def get_port(self): - return self.port - - # set the device address - def set_address(self, address): - aux = address.split(":") - if len(aux) == 6: - self.address = address - else: - raise BluetoothConnectionError, "Invalid address." - - # get the device address - def get_address(self): - return self.address - - # create a socket with a determinated protocol - def create_socket(self, protocol=None): - if protocol == 'rfcomm' or protocol == 'RFCOMM': - self.sock = bluetooth.BluetoothSocket(bluetooth.RFCOMM) - elif protocol == 'l2cap' or protocol == 'L2CAP': - self.sock = bluetooth.BluetoothSocket(bluetooth.L2CAP) - else: - raise BluetoothConnectionError, "Undefined Protocol." - - # bind the communication - def bind(self): - self.sock.bind(("", self.get_port())) - - # just listen the tube, only to server - def listen(self): - self.sock.listen(1) - - # accept the client communication - # returns an object - def accept(self): - self.client_sock, self.client_address = self.sock.accept() - - # connect devices - def connect(self): - self.sock.connect((self.get_address(), self.get_port())) - - # send string message - def send_message(self, msg=None): - self.sock.send(msg) - - # receive string message - def received_message(self): - return self.client_sock.recv(1024) - - # close connection - def close(self): - if self.sock != None and self.client_sock != None: - self.client_sock.close() - self.sock.close() - elif self.sock != None and self.client_sock == None: - self.sock.close() - else: - self.client_sock.close() -