Skip to content

Instantly share code, notes, and snippets.

@aaronfranco
Last active April 5, 2016 18:11
Show Gist options
  • Save aaronfranco/22e1df1a89c8b0aed348cc510b4feb28 to your computer and use it in GitHub Desktop.
Save aaronfranco/22e1df1a89c8b0aed348cc510b4feb28 to your computer and use it in GitHub Desktop.
Structured-Hack
// JavaScript Code
var connected = false;
var doorOpen = false;
var timer = false;
// assume these are real things - NOT REAL! :)
var door = new DoggyDoor();
var collar = new CollarListener();
var app = {
init:function(){
collar.onConnect = app.handleCollarConnect;
collar.onDisconnect = app.handleCollarDisconnect;
},
handleCollarConnect:function(data){
connected = true;
manageTimer();
},
handleCollarDisconnect:function() {
connected = false;
openCloseDoor();
clearInterval(timer); // manually clear timer
timer = false;
},
onTimerTick:function(evt) {
openCloseDoor();
manageTimer();
},
manageTimer:function() {
if(!timer){
timer = setInterval(onTimerTick, 30000);
}else{
clearInterval(timer);
}
},
openCloseDoor:function(){
if(connected && !doorOpen){
door.open();
doorOpen = true;
}else{
door.close();
doorOpen = false;
}
}
}
// start the program
app.init();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment