2017-03-26 13 views
10

Chúng tôi đang tìm cách liên lạc với thiết bị bluetooth được kết nối với máy tính bảng Android. Chúng tôi đang sử dụng Termux và đã cài đặt NodeJS. Có ai biết nếu nó thậm chí có thể giao tiếp với một thiết bị bluetooth? Chúng ta có phải cố gắng liên lạc trực tiếp với thiết bị thông qua thư mục/dev không? Đó là sự hiểu biết của tôi rằng Android được xây dựng trên đầu trang của hạt nhân Linux, tuy nhiên, nó đã thực hiện những điều cụ thể trên đầu trang của nó để tương tác cho những thứ khác như kết nối. Các tính năng chính Liệu thiết bị có thể truy cập được thông qua thư mục/dev qua cổng nối tiếp "NodejS" hay một công cụ khác không?Giao tiếp với thiết bị bluetooth Android qua NodeJS và Termux

Như một phương sách cuối cùng, nếu điều này là không thể, tôi đoán chúng tôi có thể cố gắng xây dựng NodeJS trong hệ điều hành Android thông qua một thiết bị đầu cuối bắt nguồn từ. Tôi đã nghe điều này không dễ dàng như người ta nghĩ. Thông qua Termux tôi có thể truy cập thư mục/dev và xem tất cả các thiết bị. Bạn không chắc chắn cách thức hoạt động của sự cho phép. Cảm ơn.

enter image description here

Trả lời

1

Bạn có thể giao tiếp thông qua các cổng nối tiếp sử dụng công cụ này. Tôi chưa bao giờ sử dụng công cụ này nhưng chỉ cung cấp thông tin này làm tài liệu tham khảo, vì Android được xây dựng trên hạt nhân Linux, điều này có thể hoạt động. Xin lưu ý rằng các ví dụ giống như tài liệu.

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

sử dụng client cơ bản

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(); 

sử dụng máy chủ cơ bản (chỉ có trên 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

Xin đừng chỉ gửi một liên kết đến một số công cụ hoặc thư viện như một câu trả lời. Ít nhất là chứng minh [cách giải quyết vấn đề] (http://meta.stackoverflow.com/a/251605) trong chính câu trả lời. –

Các vấn đề liên quan