56 lines
1.7 KiB
JavaScript
56 lines
1.7 KiB
JavaScript
angular.module("robware").controller('temperature', ["$scope", "temperatureService", "$interval", function($scope, temperatureService, $interval) {
|
|
$scope.readings = [];
|
|
$scope.temperatureData = {};
|
|
|
|
$scope.$watch("readings", function() {
|
|
for (var i = 0; i < $scope.readings.length; i++) {
|
|
$scope.readings[i].Timestamp = new Date($scope.readings[i].Timestamp * 1000);
|
|
}
|
|
});
|
|
|
|
function getData() {
|
|
temperatureService.getReadings().then(function(data) {
|
|
$scope.readings = data;
|
|
});
|
|
}
|
|
$interval(getData, 60000);
|
|
|
|
function updateCurrentTemperature() {
|
|
temperatureService.getCurrentTemperatureData().then(function(data) {
|
|
$scope.temperatureData = data;
|
|
});
|
|
}
|
|
$interval(updateCurrentTemperature, 5000);
|
|
|
|
var graphAdjustment = 10;
|
|
|
|
$scope.getGraphPercentage = function() {
|
|
var graphTarget = ($scope.temperatureData.target * 1.2) - graphAdjustment;
|
|
var graphTemperature = $scope.temperatureData.temperature - graphAdjustment;
|
|
return Math.min((graphTemperature / graphTarget) * 100, 100);
|
|
};
|
|
|
|
function getPercentage() {
|
|
return (($scope.temperatureData.target - graphAdjustment) / (($scope.temperatureData.temperature * 1.5) - graphAdjustment)) * 100;
|
|
}
|
|
|
|
$scope.getRed = function() {
|
|
var percentage = getPercentage();
|
|
return 255 * (1 - (Math.min(50, percentage) / 50));
|
|
};
|
|
|
|
$scope.getBlue = function() {
|
|
var percentage = Math.max(getPercentage() - 50, 0);
|
|
return 255 * (Math.min(50, percentage) / 50);
|
|
};
|
|
|
|
$scope.getGreen = function() {
|
|
var percentage = getPercentage();
|
|
percentage = Math.min(percentage, 75);
|
|
percentage = Math.max(percentage, 25);
|
|
percentage = Math.abs(50 - percentage);
|
|
percentage /= 25;
|
|
return 255 * (1 - Math.max(percentage, 0));
|
|
};
|
|
}]);
|
|
|