#coding=gb2312
'''
'''
import sys
import ttk
import time
import socket
import tkFont
import threading
import Tkinter as tk
root = tk.Tk()
root.title("uIP TCP Demo")
font = tkFont.Font(family=u"宋體",size=11)
tk.Label(root,text=u'下面這些LED燈的亮滅由單片機按鍵控制',fg='red',font=font).pack(side='top',pady=5)
cnv1 = tk.Canvas(root,height=50,width=280)
cnv1.pack(side='top',padx=5,pady=3)
cnv1.create_oval(30,5,70,45,fill='black',tag='led1')
cnv1.create_oval(90,5,130,45,fill='black',tag='led2')
cnv1.create_oval(150,5,190,45,fill='black',tag='led3')
cnv1.create_oval(210,5,250,45,fill='black',tag='led4')
tk.Label(root,text=u'下面這些按鍵可以控制單片機上的LED燈',fg='red',font=font).pack(side='top',pady=5)
cnv2 = tk.Canvas(root,height=50,width=280)
cnv2.pack(side='top',padx=5,pady=3)
cnv2.create_rectangle(20,5,60,35,fill='#FFAA55',tag='key1')
cnv2.create_rectangle(80,5,120,35,fill='#FFAA55',tag='key2')
cnv2.create_rectangle(140,5,180,35,fill='#FFAA55',tag='key3')
cnv2.create_rectangle(200,5,240,35,fill='#FFAA55',tag='key4')
cnv3 = tk.Canvas(root,height=30,width=280)
cnv3.pack(side='top',padx=1,pady=1)
cnv3.create_window(120,15,window=tk.Entry(root,width=8))
cnv3.create_window(30,15,window=tk.Button(root,text=u'連接',command=sockConn))
cnv3.create_oval(160,5,170,15,fill='black',tag='led0')
cnv3.create_text(200,10,text=u'連接中...',tag='txt0')
cnv2.tag_bind('key1',"<Button>",lambda e:conn.send('1'))
cnv2.tag_bind('key2',"<Button>",lambda e:conn.send('2'))
cnv2.tag_bind('key3',"<Button>",lambda e:conn.send('4'))
cnv2.tag_bind('key4',"<Button>",lambda e:conn.send('8'))
com_thread = threading.Thread(target=sockRecv)
com_thread.setDaemon(True)
com_thread.start()
root.mainloop()
def sockConn():
global cnv3
try:
sock1 = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
sock1.bind(('localhost',1038)) #不得大於1023
sock1.listen(5)
conn,addr = sock1.accept()
cnv3.itemconfig('led0',fill='red')
cnv3.itemconfig('txt0',text=u'已連接上')
except Exception:
cnv3.itemconfig('txt0',text="HOST or PORT error!")
def sockRecv():
global cnv1
conn.settimeout(2)
while True:
buf = conn.recv(1500)
if len(buf)==0:
pass
time.sleep(0.1)
if (buf[0] & 0x01) != 0:
cnv1.itemconfig('led1',fill='red')
else:
cnv1.itemconfig('led1',fill='black')
if (buf[0] & 0x01) != 0:
cnv1.itemconfig('led2',fill='red')
else:
cnv1.itemconfig('led2',fill='black')
if (buf[0] & 0x01) != 0:
cnv1.itemconfig('led3',fill='red')
else:
cnv1.itemconfig('led3',fill='black')
if (buf[0] & 0x01) != 0:
cnv1.itemconfig('led4',fill='red')
else:
cnv1.itemconfig('led4',fill='black')
本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。