2017-03-26 38 views
10

Szukamy możliwości komunikacji z urządzeniem Bluetooth podłączonym do tabletu z Androidem. Używamy Termux i zainstalowaliśmy NodeJS. Czy ktoś wie, czy możliwe jest nawet komunikowanie się z urządzeniem bluetooth? Czy będziemy musieli próbować komunikować się z urządzeniem bezpośrednio przez folder/dev?Komunikuj się z urządzeniem z systemem Android przez urządzenia NodeJS i Termux

Rozumiem, że Android jest zbudowany na jądrze systemu Linux, jednak zaimplementował na nim konkretne rzeczy do interakcji w innych dziedzinach, takich jak łączność. Czy urządzenie byłoby dostępne za pośrednictwem folderu/dev przez NodejS "port szeregowy" lub inne narzędzie?

W ostateczności, jeśli nie jest to możliwe, możemy spróbować zbudować NodeJS w systemie operacyjnym Android poprzez zrootowany terminal. Słyszałem, że to nie jest tak proste, jak mogłoby się wydawać. Poprzez Termux mogę uzyskać dostęp do folderu/dev i zobaczyć wszystkie urządzenia. Nie wiem, jak pozwoliłoby to jednak działać. Dzięki.

enter image description here

Odpowiedz

1

można komunikować się za pośrednictwem portu szeregowego za pomocą tego narzędzia. Nigdy nie korzystałem z tego narzędzia, ale podałem to tylko jako odniesienie, ponieważ android jest zbudowany na jądrze Linuxa, to może działać. Zwróć uwagę, że przykłady są takie same jak w dokumentacji.

https://github.com/eelcocramer/node-bluetooth-serial-port

Podstawy używania klient

var btSerial = new (require('bluetooth-serial-port')).BluetoothSerialPort(); 

btSerial.on('found', function(address, name) { 
    btSerial.findSerialPortChannel(address, function(channel) { 
     btSerial.connect(address, channel, function() { 
      console.log('connected'); 

      btSerial.write(new Buffer('my data', 'utf-8'), function(err, bytesWritten) { 
       if (err) console.log(err); 
      }); 

      btSerial.on('data', function(buffer) { 
       console.log(buffer.toString('utf-8')); 
      }); 
     }, function() { 
      console.log('cannot connect'); 
     }); 

     // close the connection when you're ready 
     btSerial.close(); 
    }, function() { 
     console.log('found nothing'); 
    }); 
}); 

btSerial.inquire(); 

wykorzystanie serwera Basic (tylko Linux)

var server = new(require('bluetooth-serial-port')).BluetoothSerialPortServer(); 

var CHANNEL = 10; // My service channel. Defaults to 1 if omitted. 
var UUID = '38e851bc-7144-44b4-9cd8-80549c6f2912'; // My own service UUID. Defaults to '1101' if omitted 

server.listen(function (clientAddress) { 
    console.log('Client: ' + clientAddress + ' connected!'); 
    server.on('data', function(buffer) { 
     console.log('Received data from client: ' + buffer); 

     // ... 

     console.log('Sending data to the client'); 
     server.write(new Buffer('...'), function (err, bytesWritten) { 
      if (err) { 
       console.log('Error!'); 
      } else { 
       console.log('Send ' + bytesWritten + ' to the client!'); 
      } 
     }); 
    }); 
}, function(error){ 
    console.error("Something wrong happened!:" + error); 
}, {uuid: UUID, channel: CHANNEL}); 
+1

Proszę nie wystarczy umieścić link do jakiegoś narzędzia lub biblioteki jako odpowiedź. Przynajmniej zademonstruj [jak rozwiązuje problem] (http://meta.stackoverflow.com/a/251605) w samej odpowiedzi. –