summaryrefslogtreecommitdiff
path: root/boot/boot.py
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2014-03-30 16:03:44 -0400
committerschneefux <schneefux+commit@schneefux.xyz>2014-03-30 16:03:44 -0400
commitd31fabf8cff5dae02e3fc759a4203bd374dddc99 (patch)
tree888ec4e6d98154f862a3b9cd17a3394b657bc02e /boot/boot.py
parent4182b5e096e081158dddd4ad5d031af94fcc63de (diff)
downloadjasper-client-d31fabf8cff5dae02e3fc759a4203bd374dddc99.tar.gz
jasper-client-d31fabf8cff5dae02e3fc759a4203bd374dddc99.zip
Initial commit
Diffstat (limited to 'boot/boot.py')
-rwxr-xr-xboot/boot.py89
1 files changed, 89 insertions, 0 deletions
diff --git a/boot/boot.py b/boot/boot.py
new file mode 100755
index 0000000..658748a
--- /dev/null
+++ b/boot/boot.py
@@ -0,0 +1,89 @@
+#!/usr/bin/env python
+
+import os, json
+import urllib2
+import subprocess
+import yaml
+from wifi import *
+
+import vocabcompiler
+
+def say(phrase, OPTIONS = " -vdefault+m3 -p 40 -s 160 --stdout > say.wav"):
+
+ os.system("espeak " + json.dumps(phrase) + OPTIONS)
+ os.system("aplay -D hw:1,0 say.wav")
+
+
+
+# check if there is network connection
+def configure():
+ try:
+
+ urllib2.urlopen("http://www.google.com").getcode()
+
+ print "CONNECTED TO INTERNET"
+ print "COMPILING DICTIONARY"
+ vocabcompiler.compile()
+
+ print "STARTING CLIENT PROGRAM"
+
+ try:
+ os.system("/home/pi/jasper/client/start.sh &")
+ except:
+ os.system("/home/pi/jasper/backup/start.sh &")
+ finally:
+ return
+
+ except:
+
+ networks = yaml.safe_load(open("networks.yml", "r"))
+
+ wifi = Wifi()
+
+ for network in networks:
+ wifi.set_default_wifi(network['SSID'], network['KEY'])
+ say("Attempting to connect to network " + network['SSID'])
+
+ try:
+
+ urllib2.urlopen("http://www.google.com").getcode()
+
+ print "CONNECTED TO INTERNET"
+ print "COMPILING DICTIONARY"
+ vocabcompiler.compile()
+
+ print "STARTING CLIENT PROGRAM"
+
+ try:
+ os.system("/home/pi/jasper/client/start.sh &")
+ except:
+ os.system("/home/pi/jasper/backup/start.sh &")
+ finally:
+ return
+
+ except:
+ pass
+
+ print "NOT CONNECTED TO INTERNET. RUNNING AD HOC NETWORK."
+
+ wifi.setup_adhoc()
+
+ os.system("sudo app/app.sh &")
+ say("Hello.... I could not connect to a wifi network... Please log in with your computer to help me")
+
+ original = open("networks.yml",'r').readlines()
+ while True:
+ list = open("networks.yml",'r').readlines()
+ if list != original:
+ break
+
+ say("Thank you for adding a wifi network. Just give me a few minutes to restart.")
+ os.system("sudo shutdown -r now")
+
+if __name__ == "__main__":
+ print "==========STARTING JASPER CLIENT=========="
+ print "=========================================="
+ print "COPYRIGHT 2013 SHUBHRO SAHA, CHARLIE MARSH"
+ print "=========================================="
+ say("Hello.... I am Jasper... Please wait one moment.")
+ configure()