Fixes writing, removes broken functions, adds services
This commit is contained in:
@@ -211,7 +211,7 @@ def main():
|
|||||||
now = time.time()
|
now = time.time()
|
||||||
if (now - handshake_list[h]['last_store_time']) > handshake_list[h]['guarantee_sec']:
|
if (now - handshake_list[h]['last_store_time']) > handshake_list[h]['guarantee_sec']:
|
||||||
try:
|
try:
|
||||||
write_to_plc(handshake_list[h]['ip_address'], handshake_list[h]['tag'], 1)
|
write_to_plc(str(handshake_list[h]['ip_address']), str(handshake_list[h]['tag']), 1)
|
||||||
handshake_list[h]['last_store_time'] = now
|
handshake_list[h]['last_store_time'] = now
|
||||||
print("Handshake with {} - {} at {}".format(handshake_list[h]['ip_address'],
|
print("Handshake with {} - {} at {}".format(handshake_list[h]['ip_address'],
|
||||||
handshake_list[h]['tag'], now))
|
handshake_list[h]['tag'], now))
|
||||||
|
|||||||
17
docker-compose.service
Normal file
17
docker-compose.service
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
[Unit]
|
||||||
|
Description=Docker Compose for Henry Pump Logger
|
||||||
|
Requires=docker.service
|
||||||
|
After=docker.service
|
||||||
|
|
||||||
|
[Service]
|
||||||
|
# Remove old containers, images and volumes
|
||||||
|
ExecStartPre=/usr/local/bin/docker-compose -f /root/DataLogger-Generic/docker-compose-rpi.yml down -v
|
||||||
|
|
||||||
|
# Compose up
|
||||||
|
ExecStart=/usr/local/bin/docker-compose -f /root/DataLogger-Generic/docker-compose-rpi.yml up
|
||||||
|
|
||||||
|
# Compose down, remove containers and volumes
|
||||||
|
ExecStop=/usr/local/bin/docker-compose -f /root/DataLogger-Generic/docker-compose-rpi.yml down -v
|
||||||
|
|
||||||
|
[Install]
|
||||||
|
WantedBy=multi-user.target
|
||||||
48
docker-compose.sh
Normal file
48
docker-compose.sh
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
### BEGIN INIT INFO
|
||||||
|
# Provides: dockercompose
|
||||||
|
# Required-Start: $docker
|
||||||
|
# Required-Stop: $docker
|
||||||
|
# Default-Start: 2 3 4 5
|
||||||
|
# Default-Stop: 0 1 6
|
||||||
|
# Short-Description: Docker Services
|
||||||
|
### END INIT INFO
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
PROJECT_NAME=hplogger
|
||||||
|
YAMLFILE=/root/DataLogger-Generic/docker-compose.yml
|
||||||
|
OPTS="-f $YAMLFILE -p $PROJECT_NAME"
|
||||||
|
UPOPTS="-d --no-recreate --no-build --no-deps"
|
||||||
|
|
||||||
|
. /lib/lsb/init-functions
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
start)
|
||||||
|
log_daemon_msg "Starting Docker Compose" "dockercompose" || true
|
||||||
|
docker-compose $OPTS up $UPOPTS
|
||||||
|
;;
|
||||||
|
|
||||||
|
stop)
|
||||||
|
log_daemon_msg "Stopping Docker Compose" "dockercompose" || true
|
||||||
|
docker-compose $OPTS stop
|
||||||
|
;;
|
||||||
|
|
||||||
|
reload)
|
||||||
|
log_daemon_msg "Reloading Docker Compose" "dockercompose" || true
|
||||||
|
docker-compose $OPTS up $UPOPTS
|
||||||
|
;;
|
||||||
|
|
||||||
|
restart)
|
||||||
|
docker-compose $OPTS stop
|
||||||
|
docker-compose $OPTS up $UPOPTS
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
log_action_msg "Usage: /etc/init.d/dockercompose {start|stop|restart|reload}" || true
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
exit 0
|
||||||
@@ -3,7 +3,7 @@ FROM resin/rpi-raspbian:jessie
|
|||||||
RUN apt-get -y update
|
RUN apt-get -y update
|
||||||
COPY mysql-install.sh /tmp/mysql-install.sh
|
COPY mysql-install.sh /tmp/mysql-install.sh
|
||||||
RUN chmod +x /tmp/mysql-install.sh && /tmp/mysql-install.sh
|
RUN chmod +x /tmp/mysql-install.sh && /tmp/mysql-install.sh
|
||||||
RUN apt-get install -y python python-dev python-pip git libffi-dev libssl-dev gcc
|
RUN apt-get install -y python python-dev python-pip git libffi-dev libssl-dev gcc iputils-ping
|
||||||
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
RUN apt-get clean && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
RUN mkdir /root/tag-logger
|
RUN mkdir /root/tag-logger
|
||||||
|
|||||||
@@ -44,23 +44,23 @@ poconsole.controller('tagsCtrl', function($scope, $route, $http, $routeParams, P
|
|||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
$scope.openClearTagData = function(id){
|
// $scope.openClearTagData = function(id){
|
||||||
var getTag = tags.getTag(id);
|
// var getTag = tags.getTag(id);
|
||||||
getTag.then(function(data){
|
// getTag.then(function(data){
|
||||||
$scope.error = false;
|
// $scope.error = false;
|
||||||
$scope.dTagValues = data.tag;
|
// $scope.dTagValues = data.tag;
|
||||||
$log.info("Thinking about deleting tag data with parameters: "+ JSON.stringify($scope.dTagValues));
|
// $log.info("Thinking about deleting tag data with parameters: "+ JSON.stringify($scope.dTagValues));
|
||||||
});
|
// });
|
||||||
};
|
// };
|
||||||
|
|
||||||
$scope.deleteTagValues = function(id){
|
// $scope.deleteTagValues = function(id){
|
||||||
var clearSingleTagData = tags.clearSingleTagData(id);
|
// var clearSingleTagData = tags.clearSingleTagData(id);
|
||||||
clearSingleTagData.then(function(data){
|
// clearSingleTagData.then(function(data){
|
||||||
$log.info("deleting tag "+ id + " status: " + data.status);
|
// $log.info("deleting tag "+ id + " status: " + data.status);
|
||||||
$scope.error = false;
|
// $scope.error = false;
|
||||||
$scope.loadTagList();
|
// $scope.loadTagList();
|
||||||
});
|
// });
|
||||||
};
|
// };
|
||||||
|
|
||||||
$scope.openEditTag = function(id){
|
$scope.openEditTag = function(id){
|
||||||
var getTag = tags.getTag(id);
|
var getTag = tags.getTag(id);
|
||||||
|
|||||||
@@ -120,19 +120,19 @@ poconsole.factory('tags',function($q, $http, $log, dateConversion){
|
|||||||
return deferred.promise;
|
return deferred.promise;
|
||||||
};
|
};
|
||||||
|
|
||||||
var clearSingleTagData = function(id){
|
// var clearSingleTagData = function(id){
|
||||||
var deferred = $q.defer();
|
// var deferred = $q.defer();
|
||||||
var url = '/api/tag_vals';
|
// var url = '/api/tag_vals';
|
||||||
var filters = [{"name": "id", "op": "==", "val": "%" + id.toString() + "%"}];
|
// var filters = [{"name": "id", "op": "==", "val": "%" + id.toString() + "%"}];
|
||||||
var req_data = {"q": JSON.stringify({"filters": filters})};
|
// var req_data = {"q": JSON.stringify({"filters": filters})};
|
||||||
console.log(req_data);
|
// console.log(req_data);
|
||||||
$http.delete(url, data=req_data).success(function(data) {
|
// $http.delete(url, data=req_data).success(function(data) {
|
||||||
deferred.resolve({
|
// deferred.resolve({
|
||||||
status: data.status
|
// status: data.status
|
||||||
});
|
// });
|
||||||
});
|
// });
|
||||||
return deferred.promise;
|
// return deferred.promise;
|
||||||
};
|
// };
|
||||||
|
|
||||||
var clearAllTagData = function(){
|
var clearAllTagData = function(){
|
||||||
var deferred = $q.defer();
|
var deferred = $q.defer();
|
||||||
@@ -155,7 +155,7 @@ poconsole.factory('tags',function($q, $http, $log, dateConversion){
|
|||||||
createTag: createTag,
|
createTag: createTag,
|
||||||
updateTag: updateTag,
|
updateTag: updateTag,
|
||||||
deleteTag: deleteTag,
|
deleteTag: deleteTag,
|
||||||
clearSingleTagData: clearSingleTagData,
|
// clearSingleTagData: clearSingleTagData,
|
||||||
clearAllTagData: clearAllTagData
|
clearAllTagData: clearAllTagData
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -231,7 +231,7 @@
|
|||||||
<td>Max Expected Value</td>
|
<td>Max Expected Value</td>
|
||||||
<td>Units</td>
|
<td>Units</td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<!--<td></td>-->
|
||||||
<td></td>
|
<td></td>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
@@ -244,7 +244,7 @@
|
|||||||
<td>{{tag.max_expected}}</td>
|
<td>{{tag.max_expected}}</td>
|
||||||
<td>{{tag.units}}</td>
|
<td>{{tag.units}}</td>
|
||||||
<td><button data-toggle="modal" data-target="#editModal" ng-click="openEditTag(tag.id)" class="btn btn-primary">Edit</button></td>
|
<td><button data-toggle="modal" data-target="#editModal" ng-click="openEditTag(tag.id)" class="btn btn-primary">Edit</button></td>
|
||||||
<td><button data-toggle="modal" data-target="#clearTagDataModal" ng-click="openClearTagData(tag.id)" class="btn btn-primary">Clear Data</button></td>
|
<!--<td><button data-toggle="modal" data-target="#clearTagDataModal" ng-click="openClearTagData(tag.id)" class="btn btn-primary">Clear Data</button></td>-->
|
||||||
<td><button data-toggle="modal" data-target="#deleteModal" ng-click="openDeleteTag(tag.id)" class="btn btn-danger">Delete</button></td>
|
<td><button data-toggle="modal" data-target="#deleteModal" ng-click="openDeleteTag(tag.id)" class="btn btn-danger">Delete</button></td>
|
||||||
<script>
|
<script>
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
|||||||
Reference in New Issue
Block a user