Operate on BlueZ fornecido descritor de arquivo em C

0

Estou tentando trabalhar com o org.bluez.Profile1 in BlueZ 5.44 . Ao conectar-se a um novo dispositivo por meio do método NewConnection DBus, obtemos um descritor de arquivo para trabalhar. Eu estou bastante confuso sobre o estado em que este descritor de arquivo está, e o que eu preciso fazer para ler / escrever dele. Simplesmente chamar read / write não se comporta como esperado para mim.

No arquivo teste / perfil de teste , vejo esta linha de código python:

self.fd = fd.take()

Eu estou lutando para encontrar o Linux C equivalente ao método take . Qualquer conselho sobre como configurar este fd no código C para que eu possa ler / escrever com o fd seria muito útil!

Obrigado

    
por zeus_masta_funk 10.08.2017 / 00:02

1 resposta

1

Meu problema acabou ficando com a ferramenta gdbus-codegen que eu estava usando. Ao usar essa ferramenta, cada parâmetro fd é na verdade um índice para um GUnixFDList (documentação sobre esse objeto aqui ). Para ter o GUnixFDList passado com o método NewConnection , tive que anotar o método em xml como org.gtk.GDBus.C.UnixFD . A documentação de anotações pode ser encontrada aqui .

    
por 11.08.2017 / 22:39