From b0dd5503b38baf20680a37251f2251adb0d8cebd Mon Sep 17 00:00:00 2001 From: 1ton Date: Sun, 26 May 2013 02:18:30 +0400 Subject: [PATCH 1/7] latest fixes --- NodejsServer/ardrone.js | 8 +++++--- NodejsServer/drone/index.js | 10 +++++----- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/NodejsServer/ardrone.js b/NodejsServer/ardrone.js index 1be6f76..a52ad6b 100644 --- a/NodejsServer/ardrone.js +++ b/NodejsServer/ardrone.js @@ -65,10 +65,12 @@ app.get('/dron/events', function(request, response){ var prevState = null; droneClient.listener.on('state', function(_DroneObject) { - if (prevState != _DroneObject.navdata.droneState.flying) { - sendState(response, _DroneObject); + if (_DroneObject.navdata.droneState) { + if (prevState != _DroneObject.navdata.droneState.flying) { + sendState(response, _DroneObject); + } + prevState = _DroneObject.navdata.droneState.flying } - prevState = _DroneObject.navdata.droneState.flying }); droneClient.listener.on('image', function(_DroneObject) { diff --git a/NodejsServer/drone/index.js b/NodejsServer/drone/index.js index b56b2a1..fb98876 100644 --- a/NodejsServer/drone/index.js +++ b/NodejsServer/drone/index.js @@ -147,33 +147,33 @@ drone.prototype.land = function () { drone.prototype.move = function (_commands) { var self = this; - console.log('move: ' + _commands) + console.log('move: %j', _commands) if ('forwardbackward' in _commands) { if (_commands['forwardbackward'] > 0) { self.client.front(_commands['forwardbackward']); } else { - self.client.back(_commands['forwardbackward']); + self.client.back(-_commands['forwardbackward']); } } if ('leftright' in _commands) { if (_commands['leftright'] > 0) { self.client.right(_commands['leftright']); } else { - self.client.left(_commands['leftright']); + self.client.left(-_commands['leftright']); } } if ('updown' in _commands) { if (_commands['updown'] > 0) { self.client.up(_commands['updown']); } else { - self.client.down(_commands['updown']); + self.client.down(-_commands['updown']); } } if ('rotate' in _commands) { if (_commands['rotate'] > 0) { self.client.clockwise(_commands['rotate']); } else { - self.client.counterClockwise(_commands['rotate']); + self.client.counterClockwise(-_commands['rotate']); } } } From 0b1c7d41c0667d5e09a719e0115aee721f17be9e Mon Sep 17 00:00:00 2001 From: 1ton Date: Sun, 26 May 2013 02:51:27 +0400 Subject: [PATCH 2/7] fix --- NodejsServer/ardrone.js | 1 - 1 file changed, 1 deletion(-) diff --git a/NodejsServer/ardrone.js b/NodejsServer/ardrone.js index a52ad6b..75fb515 100644 --- a/NodejsServer/ardrone.js +++ b/NodejsServer/ardrone.js @@ -43,7 +43,6 @@ function sendState(_stream, _drone) { app.get('/dron/events', function(request, response){ var droneClient = getDrone(response, true); if (!droneClient) { - sendState(response, {'lastImage':''}); return; } // Push data through socket From 048f58acf142e45d8e83ae731d94bac0ec11f976 Mon Sep 17 00:00:00 2001 From: 1ton Date: Sun, 26 May 2013 09:34:15 +0400 Subject: [PATCH 3/7] added render after background is set --- HTML5Application/public_html/js/application.js | 1 + 1 file changed, 1 insertion(+) diff --git a/HTML5Application/public_html/js/application.js b/HTML5Application/public_html/js/application.js index c5f1c01..6cef8ba 100644 --- a/HTML5Application/public_html/js/application.js +++ b/HTML5Application/public_html/js/application.js @@ -569,6 +569,7 @@ _onImgChanged: function (_sImage) { if (this._canvas) { this._canvas.setBackgroundImage(_sImage); + this._canvas.renderAll(); } }, From 1c2e83004c04b3245c089e4729479c2a30d37b85 Mon Sep 17 00:00:00 2001 From: 1ton Date: Sun, 26 May 2013 09:38:08 +0400 Subject: [PATCH 4/7] fixed charset --- HTML5Application/public_html/index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/HTML5Application/public_html/index.html b/HTML5Application/public_html/index.html index 68b4760..0633f30 100644 --- a/HTML5Application/public_html/index.html +++ b/HTML5Application/public_html/index.html @@ -7,8 +7,8 @@ - Droid - + Droid + From 1ea1d9db8c6c351973e9f9ae0849bbbf8977e9d5 Mon Sep 17 00:00:00 2001 From: 1ton Date: Sun, 26 May 2013 09:38:42 +0400 Subject: [PATCH 5/7] recognition process is async now --- NodejsServer/qrcode/index.js | 50 +++++++++++++++++++++++++++++++++--- 1 file changed, 47 insertions(+), 3 deletions(-) diff --git a/NodejsServer/qrcode/index.js b/NodejsServer/qrcode/index.js index b2ffdfd..0fdb220 100644 --- a/NodejsServer/qrcode/index.js +++ b/NodejsServer/qrcode/index.js @@ -1,14 +1,58 @@ -var zxing = require('node-zxing')({ZXingLocation: __dirname + "/lib/zxing-2.2"}); var fs = require('fs'); var path = require('path'); +var exec = require('child_process').exec; + + +function makeZxing(options) { + var defaults = options || {}; + + if(defaults.ZXingLocation == null) { + defaults.ZXingLocation = ""; + } + + var commandLineOptions = " "; + if(defaults.try_harder) { + commandLineOptions += "--try_harder "; + } + return { + decode: function(_path, _cb) { + var cmdline = 'java -cp '+defaults.ZXingLocation+path.sep+'javase.jar'+path.delimiter+defaults.ZXingLocation+path.sep+'core.jar com.google.zxing.client.j2se.CommandLineRunner'+commandLineOptions+''+_path; + //console.log(cmdline); + exec(cmdline, + function(err, stdout, stderr){ + var qrcode = ""; + var errorCache = null; + //console.log(err, stdout, stderr); + if(err !== null) { + //console.log(err, stdout, stderr); + errorCache = err; + } else { + var lines = stdout.split("\n"); + + for(var i in lines) { + if(lines[i] == 'Raw result:') { + qrcode = lines[parseInt(i)+1]; + break; + } + } + + } + _cb(errorCache, qrcode); + } + ); + } + }; +} + var tempIndex = 0; +var zxing = makeZxing({ZXingLocation: __dirname + "/lib/zxing-2.2"}); exports.recognize = function (_image, _callback, _ext) { tempIndex++; - var fname = 'image' + tempIndex.toString() + "." + _ext || '.svg'; + var fname = 'image' + tempIndex.toString() + "." + (_ext || 'png'); var tpath = path.join(__dirname, 'temp'); var fpath = path.join(tpath, fname); @@ -16,7 +60,7 @@ exports.recognize = function (_image, _callback, _ext) { if (fs.existsSync()) fs.unlinkSync(fpath); fs.writeFileSync(fpath, _image); - + zxing.decode(fpath, function (_error, _text) { fs.unlinkSync(fpath); From 728155a9b7ef58819d072b8dcbccf0ad43f80d39 Mon Sep 17 00:00:00 2001 From: 1ton Date: Sun, 26 May 2013 09:39:41 +0400 Subject: [PATCH 6/7] valya changes applied --- HTML5Application/public_html/admin/index.html | 41 +-- NodejsServer/ardrone.js | 204 +++++++-------- NodejsServer/drone/index.js | 245 +++++++++++------- 3 files changed, 275 insertions(+), 215 deletions(-) diff --git a/HTML5Application/public_html/admin/index.html b/HTML5Application/public_html/admin/index.html index 5f21486..de5af71 100644 --- a/HTML5Application/public_html/admin/index.html +++ b/HTML5Application/public_html/admin/index.html @@ -2,34 +2,43 @@ Droid admin - + + - - -