-
Notifications
You must be signed in to change notification settings - Fork 0
/
LaserChatter.py
73 lines (61 loc) · 1.96 KB
/
LaserChatter.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
import serial
from threading import Thread
import tkinter
import os
import picamera
a=picamera.PiCamera()
a.resolution=(640,480)
a.start_preview()
ser=serial.Serial("/dev/serial0",baudrate=9600,timeout=1.0)
if (ser.isOpen()==False):
ser.Open()
print("Port acildi.")
ser.flushInput()
readline = lambda : iter(lambda:ser.read(1),"\n")
def send_foto():
a.capture("a.jpg")
ser.write("<<SENDFILE>>\n")
ser.write(open("a.jpg","rb").read())
ser.write("\n<<EOF>>\n")
def send_message():
x=my_msg.get()
my_msg.set("")
if x!='':
ser.write(x+"\n")
def receive_message():
while 1:
data="".join(readline())
if data=="<<SENDFILE>>":
with open("b.jpg","wb") as outfile:
while True:
line = "".join(readline())
if line == "<<EOF>>":
break
print >> outfile,line
os.system("pcmanfm b.jpg")
else:
if data:
msg_list.insert(tkinter.END,data)
top=tkinter.Tk()
top.title("LaserChatter")
messages_frame = tkinter.Frame(top)
my_msg = tkinter.StringVar()
my_msg.set("Type your messages here.")
scrollbar = tkinter.Scrollbar(messages_frame)
msg_list = tkinter.Listbox(messages_frame, height=15, width=50, yscrollcommand=scrollbar.set)
scrollbar.pack(side=tkinter.RIGHT, fill=tkinter.Y)
msg_list.pack(side=tkinter.LEFT, fill=tkinter.BOTH)
msg_list.pack()
messages_frame.pack()
entry_field = tkinter.Entry(top, textvariable=my_msg)
entry_field.bind("<Return>", send_message)
entry_field.pack()
send_button = tkinter.Button(top, text="Send Messgage",command=send_message)
send_button.pack()
photo_button=tkinter.Button(top, text="Send Photo", command=send_foto)
photo_button.pack()
#top.protocol("WM_DELETE_WINDOW", on_closing)
if __name__=='__main__':
r=Thread(target=receive_message)
r.start()
tkinter.mainloop()