More work on POCONSOLE-75. Should be able to backup and restore from PLC

This commit is contained in:
Patrick McDonagh
2016-12-02 17:35:52 -06:00
parent 0dfde36eff
commit 7272d0bbf9
4 changed files with 111 additions and 31 deletions

View File

@@ -211,11 +211,12 @@ def backup_all():
all_br = [i.serialize for i in BackupRestore.query.all()]
for i in range(0, len(all_br)):
try:
# read_value = readTag(all_br[i]['device']['address'], all_br[i]['tag'])
read_value = (random() * 100.0, 'REAL')
read_value = readTag(all_br[i]['device']['address'], all_br[i]['tag'])
# read_value = (random() * 100.0, 'REAL')
all_br[i]['value'] = read_value[0]
all_br[i]['tag_type'] = read_value[1]
BackupRestore.query.filter_by(_id=all_br[i]['_id']).update({"value": str(all_br[i]['value']), "tag_type": all_br[i]['tag_type']})
db.session.commit()
except:
print("Error backing up tag value for tag {}".format(all_br[i]['tag']))
continue
@@ -230,11 +231,12 @@ def backup_single(id):
single_br = BackupRestore.query.filter_by(_id=id).one().serialize
try:
# read_value = readTag(single_br['device']['address'], single_br['tag'])
read_value = (random() * 100.0, 'REAL')
read_value = readTag(single_br['device']['address'], single_br['tag'])
# read_value = (random() * 100.0, 'REAL')
single_br['value'] = read_value[0]
single_br['tag_type'] = read_value[1]
BackupRestore.query.filter_by(_id=single_br['_id']).update({"value": str(single_br['value']), "tag_type": single_br['tag_type']})
db.session.commit()
except:
print("Error backing up tag value for tag {}".format(single_br['tag']))
return jsonify(single_br)

View File

@@ -9,7 +9,15 @@ poconsole.controller('backupRestoreCtrl', function($scope, $route, $http, $route
var getBRTagList = BackupRestore.getBRTags();
getBRTagList.then(function(data) {
$scope.loading = false;
$scope.brTags = data.objects;
$scope.brTags = data.objects.map(function(t){
if (t.tag_type == "REAL"){
t.value = parseFloat(t.value);
} else {
t.value = parseInt(t.value);
}
return t;
});
});
};
$scope.loadBRTagList(); //Run this function on controller startup to load list
@@ -20,8 +28,8 @@ poconsole.controller('backupRestoreCtrl', function($scope, $route, $http, $route
});
$scope.submitAddBRTag = function(){
var createStatus = BackupRestore.createBRTag($scope.newTag);
$scope.createStatus.then(function(data){
var createStatus = BackupRestore.createBRTag($scope.newBRTag);
createStatus.then(function(data){
$scope.loadBRTagList();
});
};
@@ -30,6 +38,11 @@ poconsole.controller('backupRestoreCtrl', function($scope, $route, $http, $route
var getBRTag = BackupRestore.getBRTag(id);
getBRTag.then(function(data){
$scope.error = false;
if (data.tag_type == "REAL"){
data.value = parseFloat(data.value);
} else {
data.value = parseInt(data.value);
}
$scope.dBRTag = data;
});
};
@@ -45,15 +58,53 @@ poconsole.controller('backupRestoreCtrl', function($scope, $route, $http, $route
$scope.openEditBRTag = function(id){
var getBRTag = BackupRestore.getBRTag(id);
getBRTag.then(function(data){
console.log(data);
$scope.error = false;
if (data.tag_type == "REAL"){
data.value = parseFloat(data.value);
} else {
data.value = parseInt(data.value);
}
$scope.editBRTag = data;
});
};
$scope.submitEditBRTag = function(){
var updateBRTag = BackupRestore.updateBRTag($scope.editTag);
var updateBRTag = BackupRestore.updateBRTag($scope.editBRTag);
updateBRTag.then(function(data){
$scope.loadBRTagList();
});
};
$scope.backupBRTag = function(id){
var backupBRTagVal = BackupRestore.backupBRTagValueSingle(id);
backupBRTagVal.then(function(data){
$scope.loadBRTagList();
});
};
$scope.backupBRTagsAll = function(){
var backupBRTagVal = BackupRestore.backupBRTagValuesAll();
backupBRTagVal.then(function(data){
$scope.loadBRTagList();
});
};
$scope.restoreBRTag = function(id){
var restoreBRTagVal = BackupRestore.restoreBRTagValueSingle(id);
restoreBRTagVal.then(function(data){
$scope.loadBRTagList();
});
};
$scope.restoreBRTagsAll = function(){
var restoreBRTagVal = BackupRestore.restoreBRTagValuesAll();
restoreBRTagVal.then(function(data){
$scope.loadBRTagList();
});
};
$scope.device_label = function(data_type_obj){
return data_type_obj.address + " - " + data_type_obj.device_type.device_type;
};
});

View File

@@ -18,18 +18,23 @@ poconsole.factory('BackupRestore', function($q, $http, $log){
};
service.createBRTag = function(brTag){
var deferred = $q.defer();
$http.post('/api/backup_restore', {
tag: brTag.tag,
device_id: brTag.device_id
}).success(function(data){
return data;
deferred.resolve(data);
});
return deferred.promise;
};
service.updateBRTag = function(brTag){
console.log(brTag);
var deferred = $q.defer();
var url = "/api/backup_restore/" + brTag._id;
var put_obj = {
tag: brTag.tag
tag: brTag.tag,
device_id: brTag.device_id
};
if (brTag.data_type){
@@ -50,35 +55,49 @@ poconsole.factory('BackupRestore', function($q, $http, $log){
var deferred = $q.defer();
var url = '/api/backup_restore/' + id;
$http.delete(url).success(function(data) {
deferred.resolve({
data: data
});
deferred.resolve(data);
});
return deferred.promise;
};
service.updateBRTagValuesAll = function(){
service.backupBRTagValuesAll = function(){
var deferred = $q.defer();
var url = '/api/backup_restore_update_all/';
var url = '/api/backup_all';
$http.get(url).success(function(data) {
deferred.resolve({
data: data
});
deferred.resolve(data);
});
return deferred.promise;
};
service.updateBRTagValuesSingle = function(id){
service.backupBRTagValueSingle = function(id){
var deferred = $q.defer();
var url = '/api/backup_restore_update/' + id.toString();
var url = '/api/backup/' + id.toString();
$http.get(url).success(function(data) {
deferred.resolve({
data: data
});
deferred.resolve(data);
});
return deferred.promise;
};
service.restoreBRTagValuesAll = function(){
var deferred = $q.defer();
var url = '/api/restore_all';
$http.get(url).success(function(data) {
deferred.resolve(data);
});
return deferred.promise;
};
service.restoreBRTagValueSingle = function(id){
var deferred = $q.defer();
var url = '/api/restore/' + id.toString();
$http.get(url).success(function(data) {
deferred.resolve(data);
});
return deferred.promise;
};
return service;
});

View File

@@ -18,7 +18,7 @@
<input type="text" ng-model="newBRTag.tag" class="form-control" id="tag" placeholder="Tag Name Here">
</div>
<div class="form-group">
<!-- <div class="form-group">
<label for="tag_type">Data Type</label>
<select ng-model="newBRTag.tag_type" ng-options="t for t in data_types" class="form-control" id="tag_type"></select>
</div>
@@ -26,8 +26,8 @@
<div class="form-group">
<label for="value">Value</label>
<input type="number" ng-model="newBRTag.value" class="form-control" id="value" placeholder="0">
</div>
</div> -->
</form>
</div>
<div class="modal-footer">
@@ -85,7 +85,7 @@
</div>
<div class="modal-body">
<div class="well" ng-if="message"><h3 class="text-danger">{{message}}</h3></div>
<h3>Are you sure you want to delete the tag {{dTag.name}} ({{dTag.tag}})?</h3>
<h3>Are you sure you want to delete the tag {{dBRTag.name}} ({{dBRTag.tag}})?</h3>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-primary" data-dismiss="modal">NO!!!!!!</button>
@@ -120,9 +120,16 @@
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#addModal">
Add Tag
</button>
<button type="button" class="btn btn-warning" ng-click="backupBRTagsAll()">
Backup All Tags
</button>
<button type="button" class="btn btn-warning" ng-click="restoreBRTagsAll()">
Restore All Tags
</button>
<table class="table">
<thead>
<tr>
<td>ID</td>
<td>Tag</td>
<td>Tag Type</td>
<td>Value</td>
@@ -134,13 +141,14 @@
</thead>
<tbody>
<tr ng-repeat="tag in brTags">
<td>{{tag._id}}</td>
<td>{{tag.tag}}</td>
<td>{{tag.tag_type}}</td>
<td>{{tag.max_expvalueected}}</td>
<td>{{tag.value}}</td>
<td><button data-toggle="modal" data-target="#editModal" ng-click="openEditBRTag(tag._id)" class="btn btn-primary">Edit</button></td>
<td><button data-toggle="modal" data-target="#deleteModal" ng-click="openDeleteTag(tag._id)" class="btn btn-danger">Delete</button></td>
<td><button ng-click="backupBRTag(tag._id)" class="btn btn-danger">Back Up</button></td>
<td><button ng-click="restoreBRTag(tag._id)" class="btn btn-danger">Restore</button></td>
<td><button data-toggle="modal" data-target="#deleteModal" ng-click="openDeleteBRTag(tag._id)" class="btn btn-danger">Delete</button></td>
<td><button ng-click="backupBRTag(tag._id)" class="btn btn-warning">Back Up</button></td>
<td><button ng-click="restoreBRTag(tag._id)" class="btn btn-warning">Restore</button></td>
</tr>
</tbody>
</table>