From c98bdd9f5490584f0e2b3c2aa5faddfacf593449 Mon Sep 17 00:00:00 2001 From: cTn Date: Mon, 27 Jan 2014 01:48:34 +0100 Subject: [PATCH] traffic tracking inside serial backend --- js/serial.js | 26 ++++++++++++++++---------- js/serial_backend.js | 5 ----- js/stm32.js | 5 ----- 3 files changed, 16 insertions(+), 20 deletions(-) diff --git a/js/serial.js b/js/serial.js index 06fdfaa9..92beba18 100644 --- a/js/serial.js +++ b/js/serial.js @@ -1,5 +1,7 @@ var serial = { connectionId: -1, + bytes_received: 0, + bytes_sent: 0, transmitting: false, output_buffer: [], @@ -12,6 +14,12 @@ var serial = { chrome.serial.connect(path, options, function(connectionInfo) { self.connectionId = connectionInfo.connectionId; + self.bytes_received = 0; + self.bytes_sent = 0; + + self.onReceive.addListener(function(info) { + self.bytes_received += info.data.byteLength; + }); if (connectionInfo.connectionId > 0) { console.log('SERIAL: Connection opened with ID: ' + connectionInfo.connectionId + ', Baud: ' + connectionInfo.bitrate); @@ -24,6 +32,11 @@ var serial = { var self = this; self.empty_output_buffer(); + + // remove listeners + for (var i = (self.onReceive.listeners_.length - 1); i >= 0; i--) { + self.onReceive.removeListener(self.onReceive.listeners_[i].callback); + } chrome.serial.disconnect(this.connectionId, function(result) { if (result) { @@ -66,6 +79,8 @@ var serial = { callback(sendInfo); self.output_buffer.shift(); + self.bytes_sent += sendInfo.bytesSent; + if (self.output_buffer.length) { // keep the buffer withing reasonable limits while (self.output_buffer.length > 500) { @@ -82,16 +97,7 @@ var serial = { sending(); } }, - onReceive: { - listeners_: chrome.serial.onReceive.listeners_, - - addListener: function(function_reference) { - chrome.serial.onReceive.addListener(function_reference); - }, - removeListener: function(function_reference) { - chrome.serial.onReceive.removeListener(function_reference); - } - }, + onReceive: chrome.serial.onReceive, empty_output_buffer: function() { this.output_buffer = []; this.transmitting = false; diff --git a/js/serial_backend.js b/js/serial_backend.js index 37b370b2..7ff2c2fe 100644 --- a/js/serial_backend.js +++ b/js/serial_backend.js @@ -129,11 +129,6 @@ $(document).ready(function() { GUI.tab_switch_cleanup(); GUI.timeout_remove('connecting'); - // remove listeners - serial.onReceive.listeners_.forEach(function(listener) { - serial.onReceive.removeListener(listener.callback); - }); - serial.disconnect(onClosed); GUI.connected_to = false; diff --git a/js/stm32.js b/js/stm32.js index 258bed49..7b95b8b0 100644 --- a/js/stm32.js +++ b/js/stm32.js @@ -569,11 +569,6 @@ STM32_protocol.prototype.upload_procedure = function(step) { case 99: // disconnect - // remove listeners - serial.onReceive.listeners_.forEach(function(listener) { - serial.onReceive.removeListener(listener.callback); - }); - GUI.interval_remove('STM32_timeout'); // stop STM32 timeout timer (everything is finished now) console.log('Transfered: ' + self.serial_bytes_send + ' bytes, Received: ' + self.serial_bytes_received + ' bytes');