Trwałe połączenie Bluetooth HIDD

0

Udało mi się połączyć klawiaturę i mysz Bluetooth za pomocą:

hcitool scan
sudo hidd --connect AA:BB:CC:DD:EE:FF

Ale jeśli zrestartuję się, a nawet włączę / wyłączę urządzenie, muszę połączyć się ponownie za pomocą wiersza poleceń. Jakiś sposób to zrobić automatycznie?

Uwaga: Próbowałem połączyć się za pomocą bluez-simple-agent, ale nigdy nie udało się. Połączenie HIDD było jedyną metodą, którą mogłem wykonać. Używam Ubuntu 14.04

ryandlf
źródło

Odpowiedzi:

0

Polecam albo utworzenie skryptu startowego init, albo dodanie go za pomocą wbudowanego programu „Startup Applications”. Ponieważ używasz polecenia sudo, uważam, że będziesz musiał edytować sudoers, aby zezwolić na to polecenie bez pytania o hasło. Ten link zawiera dodatkowe informacje.

Możemy zrobić program, aby zrobić to łatwo, aby można go było uruchomić jako aplikację?

    //resetbt.c
    #include <stdio.h>
    #include <stdlib.h>
    int main(void)
    {
      int x;
      int attempts = 0;
      while(attempts < 20)
      {
        x = system("hcitool scan");
        usleep("500000"); //added a little wait state
        printf("%d", x);    
        if(x != -1 && x == THE_CORRECT_VALUE_OF_X_FOR_SUCCESS_OF_FIRST_COMMAND) //the printf echos a number, check for when its working and when its not. Change the value to be the one it returns when its working
        {
          system("sudo hidd --connect AA:BB:CC:DD:EE:FF");
          exit(EXIT_SUCCESS);
        }
        attempts++;
      }
    }

Kompilowany z gcc:

    gcc resetbt.c -o reset.bin
Aedazan
źródło
Zajrzałem do tej opcji, ale to nie pomaga, gdy ręcznie wyłączam urządzenie za pomocą przełącznika on / off. Tylko przy ponownym uruchomieniu. Powód, który jest dla mnie ważny, to fakt, że mój bluetooth czasami się popsuwa i robi dziwne rzeczy. Jedynym rozwiązaniem jest wyłączenie i ponowne włączenie urządzenia ...
ryandlf
Dodałem trochę kodu do wypróbowania. Nie mam myszy Bluetooth, więc nie mogę jej samodzielnie przetestować :(
Aedazan
0

Rozwiązałem problem, próbując ponownie bluez. Okazuje się, że początkowo nie zadziałało to dlatego, że uruchamiałem polecenia w niewłaściwej kolejności. Na Ubuntu 14.04 działam w terminalu:

hcitool dev //Get HCI number
//Press Connect on Device
hcitool scan //Get MAC Address
bluez-simple-agent hci0 MAC_ADDRESS
bluez-test-input connect MAC_ADDRESS
bluez-test-device trusted MAC_ADDRESS yes

Wydaje mi się, że działałem jako zaufany, zanim podłączyłem się i z jakiegokolwiek powodu jestem moją maszyną, musiałem połączyć się najpierw, zanim zaufałem.

ryandlf
źródło
0

Stary post, ale przeszukałem całą sieć w poszukiwaniu akceptowalnego rozwiązania. Oto jest ... szybki i prosty

Utwórz plik konfiguracji urządzenia (/etc/bluetooth/hcid.conf lub /etc/bluetooth/input.conf)

# nano /etc/bluetooth/hcid.conf
device XX:XX:XX:XX:XX:XX {
  name "Wireless Keyboard";
  auth enable;
  encrypt enable;
}

uruchom i dodaj tę linię do swojego /etc/rc.local

# hidd --server

Teraz hidd akceptuje połączenia z urządzenia podrzędnego.

Hannibal
źródło