import time
import json, socket, camera, appuifw

PHOTO_FILE  = u"e:\\Images\\temp.jpg"
appid_fname = 'e:\\python\\apid.txt'

imageSizesDisplay = [u'1600,1200', u'1280,960', u'800,600', u'640,480']
imageSizes = [(1600,1200), (1280,960), (800,600), (640,480)]
flashModes = [u'auto', u'none', u'red_eye_reduce', u'forced']
exposureModes = [u'auto', u'center', u'backlight', u'night']
whiteBalance = [u'daylight', u'fluorescent', u'tungsten', u'auto', u'cloudy']
#Img=camera.take_photo(size=imageSizes[imageSizeSelect],flash=flashModes[flashModeSelect],exposure=exposureModes[exposureModeSelect],white_balance=whiteBalance[whiteBalanceSelect])

def viewfinder(img):
	canvas.blit(img)

def set_accesspoint():
  apid = socket.select_access_point()
  if appuifw.query(u"Set as default access point","query") == True:
    f = open(appid_fname,'w')
    f.write(repr(apid))
    f.close()
    appuifw.note(u"Saved default access point ", "info")
    apo = socket.access_point(apid)
    socket.set_default_access_point(apo)

def send_photo(jpeg):
	name = time.strftime('%Y%m%d%H%M%S.jpg')
	print 'Sending picture %s' % name
	msg = {"name": name, "jpeg": jpeg}
	sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
	sock.connect(("xxx.xxx.xxx.xxx", 9000))
	out = sock.makefile("w")
	out.write(json.write(msg))
	out.write('\r\n')
	out.close()

try:
	f=open(appid_fname,'rb')
	setting = f.read()
	apid = eval(setting)
	f.close()
	if not apid == None :
		apo = socket.access_point(apid)
		socket.set_default_access_point(apo)
	else:
		set_accesspoint()
except:
	set_accesspoint()

while True:
	time.sleep(20)
	print "Taking photo.."
	img = camera.take_photo(mode=u'RGB', size = (1600, 1200), white_balance=u'auto', exposure=u'auto')
	img.save(PHOTO_FILE)
	jpeg = file(PHOTO_FILE).read()
	send_photo(jpeg)
	print "Photo sent ok"
print "Bye!"

