summaryrefslogtreecommitdiff
path: root/boot/boot.py
diff options
context:
space:
mode:
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()