+++ /dev/null
-# -*- 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 <http://www.gnu.org/licenses/>.
-#
-# ============================================================================
-# Project Name : PC Remote
-# Author : André Portela
-# Email : andre_portela_@hotmail.com
-# Reviewer : Jônatas Isvi
-# Email : jonatas.nona@gmail.com
-# Version : 1.0
-# Package : connection
-# Description : Iconnection Interface Class
-# ============================================================================
-
-from wirelessconnectionmanager import *
-from bluetoothconnectionmanager import *
-from exceptions import *
-
-# connections aliases
-_btconst = ['bluetooth', 'BLUETOOTH', 'blue']
-_wificonst = ['wireless', 'WIRELESS', 'wifi']
-
-class Iconnection:
-
- """ Iconnection
- Interface for wireless and bluetooth connections.
- Manages all commonalities operations between entities.
- """
- def __init__(self, string):
- self.string = string
- if(self.string in _btconst):
- self.obj = BluetoothConnectionManager()
- elif(self.string in _wificonst):
- self.obj = WirelessConnectionManager()
- else:
- raise IconnectionError, "Undefined type."
-
-
- # +---------------------------------------------+
- # | Generic methods -> Wireless and Bluetooth |
- # +---------------------------------------------+
-
- # create a socket with defined protocol
- def create_socket(self, protocol=None):
- self.obj.create_socket(protocol)
-
- # connect device
- def connect(self):
- self.obj.connect()
-
- # accept the connection
- def accept(self):
- return self.obj.accept()
-
- # send a message to device
- def send_message(self, msg=None):
- self.obj.send_message(msg)
-
- # received a message
- def received_message(self):
- return self.obj.received_message()
-
- # bind the connection
- def bind(self):
- self.obj.bind()
-
- # listen the connection
- def listen(self):
- self.obj.listen()
-
- # close connection
- def close(self):
- self.obj.close()
-
- # set the port to communicate
- def set_port(self, port):
- self.obj.set_port(port)
-
- # get the port to communicate
- def get_port(self):
- return self.obj.get_port()
-
- # set the device address
- def set_address(self, address):
- self.obj.set_address(address)
-
- # get the device address
- def get_address(self):
- return self.obj.get_address()
-
- # get the client address
- def get_client_address(self):
- return self.obj.get_client_address()
-
- # +------------------------------------------+
- # | Bluetooth: particular behaviors |
- # +------------------------------------------+
-
- # fast way to create a simple server
- def bluetooth_create_server(self, protocol, port):
- if self.string in _btconst:
- return self.obj.create_server(protocol, port)
- else:
- raise IconnectionError, "Only method used by Bluetooth connections."
-
- # fast way to create a simple client
- def bluetooth_create_client(self, protocol, address, port):
- if self.string in _btconst:
- return self.obj.create_client(protocol, address, port)
- else:
- raise IconnectionError, "Only method used by Bluetooth connections."
-
- # search for all devices
- def bluetooth_find_devices(self, time=8):
- if self.string in _btconst:
- return self.obj.find_devices(time)
- else:
- raise IconnectionError, "Only method used by Bluetooth connections."
-
- # search only devices names
- def bluetooth_find_devices_only_names(self):
- if self.string in _btconst:
- return self.obj.find_devices_only_names()
- else:
- raise IconnectionError, "Only method used by Bluetooth connections."
-
- # search the device port
- def bluetooth_find_port(self, addr):
- if self.string in _btconst:
- return self.obj.find_port(addr)
- else:
- raise IconnectionError, "Only method used by Bluetooth connections."
-
- # search device services
- def bluetooth_find_services(self, service=None, addr=None):
- if self.string in _btconst:
- return self.obj.find_services(service, addr)
- else:
- raise IconnectionError, "Only method used by Bluetooth connections."
-
-
- # search the device indicated by name
- def bluetooth_find_device_address_by_name(self, device_name=None):
- if self.string in _btconst:
- return self.obj.find_device_address_by_name(device_name)
- else:
- raise IconnectionError, "Only method used by Bluetooth connections."
-
-
-
- # +---------------------------------+
- # | Wireless: particular behaviors |
- # +---------------------------------+