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: 26/02/2011
- '''
- import serial
- import sys
- import time
- ucontr = 'Arduino'
- base_porta = '/dev/ttyUSB'
- taxa = 115200
- tempo = 5 #Timeout da conexao
- #########################################################################
- def procura_serial(porta, taxa, tempo):
- s = None
- for i in range(32):
- try:
- s = serial.Serial(porta + str(i), taxa, timeout=tempo)
- except serial.SerialException:
- continue
- else:
- break
- return s
- #########################################################################
- def sair(obj_serial):
- obj_serial.close()
- exit()
- #########################################################################
- def _data():
- return time.strftime('%d/%m/%Y %H:%M:%S')
- #########################################################################
- def amostragem(obj_serial, num):
- amostras = []
- try:
- for i in range(num):
- amostras.append(str(obj_serial.readline().rstrip(), 'utf8'))
- except KeyboardInterrupt:
- pass
- return amostras
- #########################################################################
- if __name__ == '__main__':
- s = procura_serial(base_porta, taxa, tempo)
- if not s:
- print('Impossível encontrar %s...' % ucontr)
- exit()
- else:
- print(ucontr + 'na porta' + str(s.port))
- arg = sys.argv[1:]
- arquivo = ''
- if len(arg) == 2:
- arquivo = arg[-1]
- if arg:
- arg = arg[0]
- else:
- print('Colocar número de amostras como argumento...')
- sair(s)
- try:
- leituras = int(arg)
- if leituras == 0:
- leituras = 2**64 #leitura 'infinita'
- except ValueError:
- print('Colocar número válido como argumento...')
- sair(s)
- print('Amostragem iniciada em ' + _data())
- amostras = amostragem(s, leituras)
- print('Amostragem terminada em ' + _data())
- if arquivo:
- open(arquivo, 'w').write(str(amostras))
- print(str(len(amostras)) + ' pontos salvos em ' + arquivo)
- sair(s)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement