Estendendo o módulo lightblue do Python para usar vários dongles bluetooth

0

Estou usando o módulo lightblue e pybluez para enviar arquivos via bluetooth para obex protocol push object. Mas eu preciso usar vários dongles bluetooth (3 e mais) para enviar arquivos para vários dispositivos (20 e mais) ao mesmo tempo.

Eu preciso dizer ao lightblue para usar um hcix específico e usá-lo para conectar e enviar. Posso editar o módulo lightblue para que ele possa suportar esse recurso?

este é o arquivo de origem

No final da fonte ( _lightblue.py )

# Gets HCI socket thru PyBluez. Remember to close the returned socket.
def _gethcisock(devid=-1):
    try:
        sock = bluetooth.bluez._gethcisock(devid)
    except Exception, e:
        raise _lightbluecommon.BluetoothError(
            "Cannot access local device: " + str(e))
    return sock

Eu posso enviar um ID específico para esse método, mas o lightblue não usará essa meia para conectar e enviar.

    
por user3585139 10.12.2014 / 08:32

1 resposta

1

No Linux, o lightblue usa internamente a biblioteca PyBluez, que atualmente não permite que um soquete seja aberto em um dispositivo HCI específico. O PyBluez usa internamente a funcionalidade de sockets de bluetooth do Linux, por isso depende se isso permite que sejam criados sockets para um dispositivo HCI específico. Meu palpite é que não, senão essa funcionalidade teria sido exposta na API PyBluez, mas valeria a pena verificar. Se for possível, então obviamente PyBluez e lightblue podem ser alterados para permitir também.

    
por Bea Lam 10.12.2014 / 23:54