Local autonomy test 1

This commit is contained in:
Senad Uka
2016-06-08 08:24:43 +02:00
parent 61bb6d0d4b
commit 7d434625ca
3 changed files with 30 additions and 17 deletions

3
controller/lockdown.py Normal file
View File

@@ -0,0 +1,3 @@
import state
state.safely_panic()

View File

@@ -3,25 +3,31 @@ from state.server import Server
from state.changer import Changer
from state.file import File
def safely_panic():
safe_state = {}
changer = Changer(safe_state,safe_state)
changer.stop_everything
def sync():
server = Server(config.API_BASE_URL, config.CONTROLLER_ID)
local = File(config.STATE_FILE)
server_state = server.get_state()
try:
server = Server(config.API_BASE_URL, config.CONTROLLER_ID)
local = File(config.STATE_FILE)
server_state = server.get_state()
if local.present():
local.load()
print "local present: " + repr(local.data)
else:
local.data = server_state
print "local not present, server: " + repr(local.data)
local.save()
local_state = local.data
if local.present():
local.load()
print "local present: " + repr(local.data)
else:
local.data = server_state
print "local not present, server: " + repr(local.data)
local.save()
changer = Changer(local_state, server_state)
current_state = changer.process_change()
local_state = local.data
changer = Changer(local_state, server_state)
current_state = changer.process_change()
server.post_state(current_state)
server.post_state(current_state)
except:
safely_panic();

View File

@@ -24,6 +24,10 @@ class Changer(object):
'closed': self.close_in_valve
}
def stop_everything:
self.close_in_valve
self.close_out_valve
def safe_remote_state(self, key):
if key in ['out_valve', 'in_valve']:
return self.remote_state.get(key, 'closed')