mirror of
https://github.com/betaflight/betaflight.git
synced 2025-07-17 21:35:44 +03:00
internal serial output buffer
This commit is contained in:
parent
cbf4db1efe
commit
e907531114
1 changed files with 27 additions and 1 deletions
28
js/serial.js
28
js/serial.js
|
@ -1,9 +1,15 @@
|
||||||
var serial = {
|
var serial = {
|
||||||
connectionId: -1,
|
connectionId: -1,
|
||||||
|
|
||||||
|
transmitting: false,
|
||||||
|
output_buffer: [],
|
||||||
|
|
||||||
connect: function(path, options, callback) {
|
connect: function(path, options, callback) {
|
||||||
var self = this;
|
var self = this;
|
||||||
|
|
||||||
|
// force buffer size
|
||||||
|
options.bufferSize = 8192;
|
||||||
|
|
||||||
chrome.serial.connect(path, options, function(connectionInfo) {
|
chrome.serial.connect(path, options, function(connectionInfo) {
|
||||||
self.connectionId = connectionInfo.connectionId;
|
self.connectionId = connectionInfo.connectionId;
|
||||||
|
|
||||||
|
@ -43,7 +49,27 @@ var serial = {
|
||||||
chrome.serial.setControlSignals(this.connectionId, signals, callback);
|
chrome.serial.setControlSignals(this.connectionId, signals, callback);
|
||||||
},
|
},
|
||||||
send: function(data, callback) {
|
send: function(data, callback) {
|
||||||
chrome.serial.send(this.connectionId, data, callback);
|
var self = this;
|
||||||
|
self.output_buffer.push({'data': data, 'callback': callback});
|
||||||
|
|
||||||
|
if (!self.transmitting) {
|
||||||
|
self.transmitting = true;
|
||||||
|
|
||||||
|
var sending = function() {
|
||||||
|
chrome.serial.send(self.connectionId, self.output_buffer[0].data, function(sendInfo) {
|
||||||
|
self.output_buffer[0].callback(sendInfo);
|
||||||
|
self.output_buffer.shift();
|
||||||
|
|
||||||
|
if (self.output_buffer.length != 0) {
|
||||||
|
sending();
|
||||||
|
} else {
|
||||||
|
self.transmitting = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
sending();
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onReceive: {
|
onReceive: {
|
||||||
listeners_: chrome.serial.onReceive.listeners_,
|
listeners_: chrome.serial.onReceive.listeners_,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue