Hello Guys. I have a problem about canvas. I work for lift program. When the lift move up or down, program should show number and arrow. I create program. But I can't direction arrow. My program shows to me "updateError" text(I establish this text. ) If lift is move up(travel_up) I should see upArrow2, If lift move down(travel_down) I should see downArrow2. Number is work good. Just I can't see arrow. How can I fix this?
#! /usr/bin/python
# -*-coding: utf-8 -*-
#-Library setting-#
import RPi.GPIO as gpio
import time
import serial
from Tkinter import *
from ttk import Frame, Style, Button
from PIL import ImageTk, Image
#from PIL import Image as PilImage
import binascii
gpio.setmode(gpio.BCM)
gpio.setup(33, gpio.IN)
#-Buffer definition-#
dataarray=''
data=''
uartData=''
dstflg=False
dspflg=False
dataflg=False
#-Serial port config-#
try:
stmSer=serial.Serial(port='/dev/ttyAMA0', baudrate=115200,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=0.00001
)
except serial.SerialException:
print "Stmser except error"
#-GUI update according to data of 'CARSTAT'-#
def updateGUI(data):
global left_character
global right_character
global call_up
global call_down
global travel_up
global travel_down
left_character=(data[10:12]).decode("hex")
print "left_character:"+left_character
right_character=(data[12:14]).decode("hex")
print"right_character:"+right_character
petra_status_1=format(ord(data[14:16].decode("hex")),'08b')
print "status:"+petra_status_1
travel_down=petra_status_1[4]
travel_up=petra_status_1[3]
print "UP:"+travel_up
print "DOWN:"+travel_down
katno.config(text=left_character+right_character, font=('Arial 300'))
if travel_up=="1":
canvas=Canvas(root, width=200, height=320, highlightthickness=0, bg='#2080FF')
canvas.place(x=10, y=30)
image=PhotoImage(file='/home/pi/Dekstop/upArrow2.png')
#canvas.create_image(90,170, image='')
canvas.update()
#time.sleep(0.001)
katno.config(text=left_character+right_character, font=('Arial 300'))
elif travel_down=="1":
canvas=Canvas(root, width=200, height=320, highlightthickness=0, bg='#2080FF')
canvas.place(x=10, y=30)
image=PhotoImage(file='home/pi/Dekstop/downArrow2.png')
#canvas.create_image(90,170, image='')
canvas.update()
#time.sleep(0.001)
katno.config(text=left_character+right_character, font=('Arial 300'))
elif travel_up=="0" and travel_down=="0":
#canvas=Canvas(root, width=200, height=320, highlightthickness=0, bg='#2080FF')
#canvas.place(x=10, y=30)
image=PhotoImage(file='')
#canvas.create_image(90,170, image='')
canvas.update()
#time.sleep(0.001)
katno.config(text=left_character+right_character, font=('Arial 300'))
else:
print "travel conditions ERROR"
root.after(5,loop)
###-Data Read -#
def readuart():
global dataread
global datalist
global dataarray
global dstflg
global dspflg
while True:
if stmSer.inWaiting()>0:
dataread=stmSer.read(1)
if dataread=='@' and dstflg==False:
dstflg=True
dspflg=False
dataarray=''
elif dataread=='$' and dspflg==False:
dspflg=True
dstflg=False
#stmSer.write(dataarray)
print "dataarray: "+dataarray
return dataarray
dataarray=''
else:
if dstflg==True and dspflg==False:
dataarray=dataarray+''.join(dataread)
elif dstflg==True and dspflg==True:
print "Reset loop"
root.after(5,loop)
else:
print "ERROR!!"
input_value = gpio.input(33) ##Button Pgm_DW
if input_value == True:
dstflg==True
dspflg==True
print('The button has been pressed...')
else:
print "Data wait."
def prgloop():
root.after(5,loop)
#-Furcation to update function -#
def loop():
global dataread
global datalist
global dataarray
global dstflg
global uartData
global dspflg
global data
try:
uartData=readuart()
if uartData[:8]=='CARSTAT,':
updateGUI(uartData)
print "data: "+uartData
else:
print "İnvalid Data"
root.after(5,loop)
except:
print "Update ERROR"
prgloop()
dspflg=False
#-Graphical Design-#
try:
root=Tk()
root.title('New Program')
root.overrideredirect(0)
katno=Label(root, text='1', font=('Arial 300'), width=2, fg='white', bg='#2080FF')
katno.place(x=-90, y=-40)
katno.config(padx=170)
canvas=Canvas(root, width=200, height=320, highlightthickness=0, bg='#2080FF')
canvas.place(x=10, y=30)
image=PhotoImage(file='/home/pi/Desktop/downArrow2.png')
canvas.create_image(90,170, image=image)
root.configure(background='#2080FF')
root.geometry('480x440+0+0')
loop()
root.mainloop()
except:
print "errorGUI"Thanks
