Onde obter Bluetooth / Bluetooth.h para Raspberry Pi?

Dec 13 2020

Esta é uma pergunta estúpida. Mas não consigo encontrar uma solução para isso. Estou tentando construir um aplicativo BLE com referência a este tutorialhttps://people.csail.mit.edu/albert/bluez-intro/c404.html. Estou fazendo uma compilação cruzada do Raspberry Pi3 do meu Windows pc wsl. Eu baixei o conjunto de ferramentas dehttps://github.com/raspberrypi/tools. E eu verifiquei o conjunto de ferramentas compilando um aplicativo HelloWorld simples e o executei no RaspberryPi. Agora, quando tento compilar o código acima, estou recebendo o erro

/mnt/c/Study/RaspberryPi/main.c:5:33: fatal error: bluetooth/bluetooth.h: No such file or directory
 #include <bluetooth/bluetooth.h>

Eu entendo que Bluetooth.h não é o meu sistema. Minha pergunta é onde posso obtê-lo? Para que eu possa compilar a partir do Windows. Eu tenho que baixar o SDK para isso? se necessário, onde posso obtê-lo?

Respostas

5 DmitryGrigoryev Dec 14 2020 at 18:56

Você pode usar o mecanismo de pesquisa do Debian (que é a distro do Raspberry Pi OS) para localizar qualquer arquivo:

Depois de encontrar o pacote que contém os arquivos necessários, você pode instalar o mesmo pacote em um Pi com apt-getou baixá-lo manualmente em http://archive.raspbian.org/. Você também pode obter o pacote Debian diretamente dos resultados da pesquisa, mas esteja ciente de que alguns pacotes no Pi OS têm diferenças sutis com seus equivalentes Debian.

Se você precisar obter os arquivos de um pacote sem instalá-lo, baixe-o e extraia os arquivos necessários com o arcomando ou 7zip.

5 Seamus Dec 14 2020 at 07:36

Não é uma pergunta idiota. Não consegui encontrar imediatamente uma boa explicação de como instalar pacotes do código-fonte. No entanto, algumas tentativas e erros produziram esta solução:

$ apt-cache search bluez

Produziu uma lista de suspeitos , um dos quais era:

libbluetooth-dev - Arquivos de desenvolvimento para usar a biblioteca BlueZ Linux Bluetooth

O que parecia uma escolha razoável.

$ sudo apt-get install libbluetooth-dev
...
The following additional packages will be installed:
  libbluetooth3
The following NEW packages will be installed:
  libbluetooth-dev libbluetooth3  

Depois disso, o código do tutorial é compilado e executado:

$ gcc -o simplescan simplescan.c -lbluetooth $ ./simplescan
CC:6D:A0:64:36:32  Roku Player. 

Qual é a resposta correta aqui no meu apartamento. No entanto, não é a resposta completa, já que outros dispositivos equipados com BT (por exemplo, meu iPhone ) estão esperando.

NOTAS:

  1. Certifique-se de atualizar e atualizar seu sistema antes de instalar novos pacotes!
  2. A resposta de Dmitry - usando o mecanismo de busca do Debian - é uma resposta melhor para a pergunta do OP . Parece-me que ainda pode haver algumas suposições envolvidas, mas definitivamente ajuda a estreitar o campo.
  3. Para aqueles que desejam construir e instalar pacotes do código-fonte nativamente , parece que existem opções do apt para suportar isso.