Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python3
- #-*- coding:utf-8 -*-
- '''
- Autor: Joao Bernardo Vianna
- Data: 12/03/2011
- '''
- from tkinter import Tk, Frame, Button, Label, Entry, LEFT, TOP, RIGHT
- import serial
- MAX_NUM = 255
- INCREMENTO = 10
- porta_serial = '/dev/ttyUSB0'
- tempo = 5
- taxa = 115200
- class Programa:
- def __init__(self, serial_dic):
- self.janela = Tk()
- self.janela.title('Controle de Volume')
- self.janela['padx'] = 60
- self.janela['pady'] = 20
- self.serial_dic = serial_dic
- try:
- self.serial = serial.Serial(**serial_dic)
- except serial.SerialException:
- self.serial = None
- self.fr = Frame(self.janela)
- self.fr.pack()
- if self.serial:
- txt = 'Conectado a '
- else:
- txt = 'Impossivel conectar a '
- txt += self.serial_dic['port']
- Label(self.fr, text=txt+'\n').pack(side=TOP)
- Label(self.fr, text='Volume\n\n').pack(side=TOP)
- fr_caixa = Frame(self.fr)
- fr_caixa.pack(side=TOP)
- self.caixa = Entry(fr_caixa, width=5)
- self.caixa.insert(0, '0')
- self.caixa.pack(side=LEFT)
- Label(fr_caixa, text=' ', font='sans').pack(side=LEFT)
- Button(fr_caixa, text='Enviar', command=self.enviar).pack(side=RIGHT)
- fr_btn = Frame(self.fr)
- fr_btn.pack(side=TOP)
- Label(fr_btn, text='\n').pack(side=TOP)
- Button(fr_btn, text='+', command=self.aumentar, font='sans').pack(side=LEFT)
- Button(fr_btn, text='-', command=self.diminuir, font='sans').pack(side=LEFT)
- def verifica_num(self, valor):
- try:
- num = int(self.caixa.get())
- if num < 0:
- raise ValueError
- return num
- except ValueError:
- return -1
- def enviar(self):
- num = self.verifica_num(self.caixa.get())
- if num > MAX_NUM:
- num = MAX_NUM
- if num < 0:
- num = 0
- self.caixa.delete(0, 1000)
- self.caixa.insert(0, str(num))
- self.envia_serial(num)
- def aumentar(self, direcao=True):
- num = self.verifica_num(self.caixa.get())
- if num >= 0:
- if direcao:
- num += INCREMENTO
- else:
- num -= INCREMENTO
- else:
- num = 0
- if num > MAX_NUM:
- num = MAX_NUM
- if num < 0:
- num = 0
- self.caixa.delete(0, 1000)
- self.caixa.insert(0, str(num))
- self.envia_serial(num)
- def diminuir(self):
- self.aumentar(False)
- def envia_serial(self, valor):
- if self.serial:
- self.serial.write(bytes(str(valor), 'utf8'))
- def executar(self):
- self.janela.mainloop()
- if __name__ == '__main__':
- s = {'port': porta_serial, 'baudrate': taxa, 'timeout': tempo}
- Programa(s).executar()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement