Commit : Tentative Release commit

This commit is contained in:
Rafat Hussain 2015-09-27 14:04:43 +05:30
parent 65cbe6e418
commit 5d7d9af435
8 changed files with 156 additions and 81 deletions

27
about.html Normal file
View File

@ -0,0 +1,27 @@
<div data-ng-controller="TabsController">
<tabset justified="true">
<tab heading="About">
<br/>
<p>Wavelib is a web implementation of C/C++ 1D Wavelet Transform codebase using Emscripten and javascript.</p>
<br/>
<p><b>Requirements</b> : HTML5 compliant modern web browser with javascript enabled. This webapp uses asm.js and angularjs that are not compatible with
older browsers.</p>
<br/>
<p><b>Inputs</b> : You can enter the data vector using either the file input interface or data input interface. In either case, the input is just a
one dimensional data vector consisting only of numbers and only including common separators like commas or spaces. </p>
</tab>
<tab heading="Code">
<br/>
<p><b>C/C++ Codebase</b> is available at <a href="http://rafat.github.io/#/sites/wavelib/front" target="_blank">my github page</a></a></p>
<br/>
</tab>
<tab heading="Thanks">
<br/>
<ul>
<li><b>Emscripten</b> : <a href="https://kripken.github.io/emscripten-site/" target="_blank">https://kripken.github.io/emscripten-site/</a></li>
<li><b>Angularjs</b> : <a href="https://angularjs.org" target="_blank">https://angularjs.org</a></a></li>
<li><b>Dygraphs</b> : <a href="http://dygraphs.com/" target="_blank">http://dygraphs.com/</a></a></li>
</ul>
</tab>
</tabset>
</div>

View File

@ -19,25 +19,25 @@
<div class="row marketing"> <div class="row marketing">
<div class="col-md-6"> <div class="col-md-6">
<select class="wide-control form-control default" data-ng-model="selected.family" <select class="wide-control form-control default" data-ng-model="selected.family"
data-ng-options="a.family for a in wavedb"> data-ng-options="a.family for a in wavedb" required>
<option value=""> Wavelet Family </option> <option value=""> Wavelet Family </option>
</select> </select>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<select class="wide-control form-control default" data-ng-model="selected.wavelet" <select class="wide-control form-control default" data-ng-model="selected.wavelet"
data-ng-options="b.wavelet for b in selected.family.wavelets" data-ng-change="getMaxIter()"> data-ng-options="b.wavelet for b in selected.family.wavelets" data-ng-change="getMaxIter()" required>
<option value=""> Wavelet </option> <option value=""> Wavelet </option>
</select> </select>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<select class="wide-control form-control default" data-ng-model="selected.method" <select class="wide-control form-control default" data-ng-model="selected.method"
data-ng-options="c.method for c in methods"> data-ng-options="c.method for c in methods" required>
<option value=""> Wavelet Methods </option> <option value=""> Wavelet Methods </option>
</select> </select>
</div> </div>
<div class="col-md-6"> <div class="col-md-6">
<select class="wide-control form-control default" data-ng-model="selected.level" <select class="wide-control form-control default" data-ng-model="selected.level"
data-ng-options="d for d in levels"> data-ng-options="d for d in levels" required>
<option value=""> Decomposition Levels </option> <option value=""> Decomposition Levels </option>
</select> </select>
</div> </div>
@ -63,12 +63,12 @@
<p>HPR : [<span data-ng-repeat="hp2 in hpr track by $index">{{hp2}} {{$last ? '' : ', '}}</span>]</p> <p>HPR : [<span data-ng-repeat="hp2 in hpr track by $index">{{hp2}} {{$last ? '' : ', '}}</span>]</p>
<p>Decomposition Levels : {{J}}</p> <p>Decomposition Levels : {{J}}</p>
<p>APPX{{J}} : [<span data-ng-repeat="a1 in appx track by $index">{{a1}} {{$last ? '' : ', '}}</span>]</p> <p>APPX{{J}} : [<span data-ng-repeat="a1 in appx track by $index">{{a1}} {{$last ? '' : ', '}}</span>]</p>
<div data-ng-repeat="j in iter"> <div data-ng-repeat="detail in details">
<p>DET{{j}} : [<span data-ng-repeat="a2 in det.slice(0,0)">{{a2}} {{$last ? '' : ', '}}</p> <p>DET : [<span data-ng-repeat="a2 in detail track by $index">{{a2}} {{$last ? '' : ', '}}</span>]</p>
</div> </div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button class="btn btn-primary" type="button" ng-click="ok()" disabled>OK</button> <!--button class="btn btn-primary" type="button" ng-click="ok()" disabled>OK</button-->
<button class="btn btn-warning" type="button" ng-click="cancel()">Cancel</button> <button class="btn btn-warning" type="button" ng-click="cancel()">Cancel</button>
</div> </div>
</script> </script>

View File

@ -4,6 +4,43 @@
<div class="row marketing"> <div class="row marketing">
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h4> Test Signals</h4>
</div>
<div class="panel-body">
<button class="btn btn-primary btn-block"><span class="glyphicon glyphicon-hand-down pull-left" data-position="left">
</span>Select Example</button>
<select class="wide-control form-control default" data-ng-model="tvalue" data-ng-change="testInput()" id="testsig1">
<option value=""> SELECT INPUT </option>
<option>ECG</option>
<option>Heavisine</option>
<option>Piecewise Regular 256</option>
<option>Piecewise Regular 2048</option>
<option>Piecewise Polynomial</option>
<option>Noisy Bumps</option>
<option>Noisy Heavisine</option>
</select>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Data Input</h4>
</div>
<div class="panel-body">
<input class="wide-control form-control default" type="text" data-ng-model="inp1" placeholder="Copy and Paste Data Vector">
<button class="btn btn-primary btn-block" data-ng-click="dataInput()">
<span class="glyphicon glyphicon-share-alt pull-left" data-position="left"></span>GO</button>
</div>
</div>
</div>
<div class="col-md-4"> <div class="col-md-4">
<div class="panel panel-default"> <div class="panel panel-default">
<div class="panel-heading"> <div class="panel-heading">
@ -18,39 +55,7 @@
</div> </div>
</div> </div>
</div> </div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h4>Data Input</h4>
</div>
<div class="panel-body">
<input class="wide-control form-control default" type="text" data-ng-model="inp1" placeholder="Copy and Paste Data Here">
<button class="btn btn-primary btn-block" data-ng-click="dataInput()">
<span class="glyphicon glyphicon-share-alt pull-left" data-position="left"></span>GO</button>
</div>
</div>
</div>
<div class="col-md-4">
<div class="panel panel-default">
<div class="panel-heading">
<h4> Test Signals</h4>
</div>
<div class="panel-body">
<button class="btn btn-primary btn-block"><span class="glyphicon glyphicon-hand-down pull-left" data-position="left">
</span>Select Example</button>
<select class="wide-control form-control default" data-ng-model="tvalue" data-ng-change="testInput()" id="testsig1">
<option></option>
<option>ECG</option>
<option>Heavisine</option>
<option>Piecewise Regular 256</option>
<option>Piecewise Regular 2048</option>
<option>Piecewise Polynomial</option>
<option>Noisy Bumps</option>
<option>Noisy Heavisine</option>
</select>
</div>
</div>
</div>
</div> </div>

View File

@ -3,7 +3,7 @@
<html lang="en"> <html lang="en">
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>Wavelets Demo</title> <title>Wavelets Online</title>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css">
<link rel="stylesheet" href="stylesheets/free.css"> <link rel="stylesheet" href="stylesheets/free.css">
<script src="js/ie-emulation-modes-warning.js"></script> <script src="js/ie-emulation-modes-warning.js"></script>
@ -19,13 +19,13 @@
<span class="icon-bar"></span> <span class="icon-bar"></span>
<span class="icon-bar"></span> <span class="icon-bar"></span>
</button> </button>
<a class="navbar-brand" href="index.html">WaveDemo</a> <a class="navbar-brand" href="index.html">Wavelib</a>
</div> </div>
<!-- Collect the nav links, forms, and other content for toggling --> <!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1"> <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">
<li> <li>
<a href="#/inputs">Inputs</a> <a href="#/">Inputs</a>
</li> </li>
<li> <li>
<a href="#/about">About</a> <a href="#/about">About</a>
@ -53,14 +53,13 @@
<!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> <!-- IE10 viewport hack for Surface/desktop Windows 8 bug -->
<script src="js/ie10-viewport-bug-workaround.js"></script> <script src="js/ie10-viewport-bug-workaround.js"></script>
<script src="js/app.js"></script> <script src="js/wavelib.js"></script>
<script src="js/wavelet.js"></script>
<!--<script src="js/index_user_scripts.js"></script> --> <!--<script src="js/index_user_scripts.js"></script> -->
<script src="js/dygraph-combined-dev.js"></script> <!--<script src="js/dygraph-combined-dev.js"></script>-->
<script src="js/wavewrapper.js"></script> <script src="//cdnjs.cloudflare.com/ajax/libs/dygraph/1.1.1/dygraph-combined.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular-route.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.3.5/angular-route.min.js"></script>
<script src="//angular-ui.github.io/bootstrap/ui-bootstrap-tpls-0.13.0.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/angular-ui-bootstrap/0.13.0/ui-bootstrap-tpls.min.js"></script>
<script src="js/ngfile.js"></script> <script src="js/ngfile.js"></script>
</body> </body>
</html> </html>

6
js/dygraph-combined.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -11,10 +11,6 @@ app.config(function($routeProvider){
templateUrl: 'display.html', templateUrl: 'display.html',
controller: 'displayController' controller: 'displayController'
}) })
.when('/report', {
templateUrl: 'report.html',
controller: 'reportController'
})
.when('/about', { .when('/about', {
templateUrl: 'about.html', templateUrl: 'about.html',
controller: 'mainController' controller: 'mainController'
@ -56,6 +52,12 @@ app.controller('mainController', function ($scope, $http, wave) {
$scope.dataInput = function () { $scope.dataInput = function () {
if (typeof $scope.inp1 == 'undefined') {
alert("Please input a valid Data Vector.");
return;
}
var x = $scope.inp1.valueOf().split(/[\s,;\t\r\n]+/); var x = $scope.inp1.valueOf().split(/[\s,;\t\r\n]+/);
var i; var i;
var j = 0; var j = 0;
@ -84,10 +86,30 @@ app.controller('mainController', function ($scope, $http, wave) {
$scope.fileInput = function () { $scope.fileInput = function () {
var fileinput = document.getElementById('finp1'); var fileinput = document.getElementById('finp1');
var finp1 = fileinput.files[0]; var finp1 = fileinput.files[0];
var reader = new FileReader(); var reader = new FileReader();
var temp = 3.14159; var temp = 3.14159;
if (typeof finp1 == 'undefined') {
alert("Please input a valid Data File. ");
return;
}
reader.onerror = function (e) {
switch (e.target.error.code) {
case e.target.error.NOT_FOUND_ERR:
alert('File Not Found!');
break;
case e.target.error.NOT_READABLE_ERR:
alert('File is not readable');
break;
default:
alert('An error occurred reading this file.');
};
return;
}
reader.onload = function (e) { reader.onload = function (e) {
var x = reader.result.split(/[\s,;\t\r\n]+/); var x = reader.result.split(/[\s,;\t\r\n]+/);
@ -330,6 +352,12 @@ app.controller('displayController', function ($scope, $http, $modal, wave) {
var method; var method;
var ext = "NULL"; var ext = "NULL";
if (typeof $scope.selected.family == 'undefined' || typeof $scope.selected.wavelet == 'undefined' ||
typeof $scope.selected.method == 'undefined' || typeof $scope.selected.level == 'undefined') {
alert("Please Selct All Values : Family, Wavelet, Method and Levels");
return;
}
if ($scope.selected.method.id == "0") { if ($scope.selected.method.id == "0") {
method = "dwt"; method = "dwt";
ext = "sym"; ext = "sym";
@ -549,50 +577,44 @@ app.controller('reportController', function ($scope, $modalInstance, items, wave
//console.log(i + $scope.flength, i); //console.log(i + $scope.flength, i);
} }
//console.log(wave.filter); //console.log(wave.filter);
//console.log(wave.length);
$scope.length = wave.length; $scope.length = wave.length;
$scope.outlength = wave.outLength; $scope.outlength = wave.outLength;
$scope.appx = []; $scope.appx = [];
$scope.det = []; $scope.details = [];
for (var i = 0; i < $scope.length[0]; i++) { for (var i = 0; i < $scope.length[0]; i++) {
$scope.appx[i] = wave.output[i]; $scope.appx[i] = wave.output[i];
} }
var start = $scope.length[0];
var end = start + $scope.length[1];
for (var j = 0; j < J; j++) {
var det = [];
for (var i = $scope.length[0]; i < wave.outLength; i++) { for (i = start; i < end; i++) {
$scope.det[i - parseInt($scope.length[0])] = wave.output[i]; det[i - start] = wave.output[i];
}
$scope.iter = [];
var detlen = wave.outLength - parseInt($scope.length[0]);
$scope.liter = [];
$scope.liter[i] = 0;
var i2 = 0;
for (var i = 0; i < J; i++) {
$scope.iter[i] = i;
i2 += wave.output[i + 1];
$scope.liter[i+1] = i2;
}
function chunk(array,start,end) {
var newarr = [];
for(var i = start; i < end;i++) {
} }
start = end;
end = start + $scope.length[j + 2];
$scope.details.push(det);
} }
//console.log($scope.details);
$scope.items = items; $scope.items = items;
$scope.selected = { $scope.selected = {
item: $scope.items[0] item: $scope.items[0]
}; };
/*
$scope.ok = function () { $scope.ok = function () {
$modalInstance.close($scope.selected.item); $modalInstance.close($scope.selected.item);
}; };
*/
$scope.cancel = function () { $scope.cancel = function () {
$modalInstance.dismiss('cancel'); $modalInstance.dismiss('cancel');
}; };
}); });
app.controller("TabsController", function ($scope, $window) {
});

16
js/wavelib.js Normal file

File diff suppressed because one or more lines are too long

View File

@ -104,8 +104,8 @@ footer {
} }
.large-Modal .modal-dialog{ .large-Modal .modal-dialog{
width:400px; width:640px;
height: 400px; height: 480px;
position: absolute; position: absolute;
top:0; bottom: 0; left: 0; right: 0; top:0; bottom: 0; left: 0; right: 0;
margin: auto; margin: auto;