Boa noite!

Preciso de uma ajuda, para pegar os dados do arduino num microSD, sendo eles usuário e senha, e passar para meu GUI em python vinculado ao banco de dados sqlite. Fiz um inicio, acredito que seja mais ou menos nesse caminho, porém nao sei como continuar, alguém sabe ler linha por linha em arquivo extensão .TXT?


def arduino(self):

    lines=b''

    with serial.Serial('COM5',9600,timeout=2) as ser:
    line = ser.readline()
    lines+=line


Fico no aguardo!

Exibições: 117

Responder esta

Respostas a este tópico

Olá.

  A serial precisa de cuidado. Quando (ou se houver) um comando que le até um "\n" ele vai parar o processamento até chegar tal caracter. Assim vc rebaixa seu processamento a velocidade dos dados e ainda trava se eles pararem de fluir.

  O ideal é o caminho longo. Ainda que exista uma lib pra isso ele vai ser sempre o caminho longo, que é ir acumulando num buffer os dados recebidos e apenas processando quando chegar o "\n".

   Como não sou "python native epeach" uso meus velhos métodos de 8051 aplicados nele. Faço a rotina assim:

while 1:
    j=ser.readline()
    for c in j:  #necessário pq as vezes pega mais de um caracter
        if (chr(c) == '\r'):  #se vier \r ignora. Esse type cast é paranóia minha. Não acredito em linguagens não tipadas.
            c=''
        elif (chr(c) == '\n'):
            print(linha) #processa a linha pq ela finalmente chegou.
            linha = ""
        else:
            linha+=chr(c) #vai guardado os dados pq a linha não veio toda ainda.

Esse é um método tipico raiz e de quem pouco conhece da linguagem. Um nativo diria que tem jeito mais fácil, certamente.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço