• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Odczyt protokołu UART

Cloud VPS
0 głosów
858 wizyt
pytanie zadane 22 października 2019 w Python przez ditro_ Nowicjusz (120 p.)

Cześć, 

Mam w pracy do odczytu prędkość kompresora, który jest sterowany poprzez protokół UART. Program, który posiadam pozwala mi niestety zapisać ramki tylko w formie ciągu (bez rozróżnienia kolejnych ramek) do pliku .txt. Mnie interesuje wartość tylko dwóch bajtów, które są bo 'FF'. Następnie muszę połączyć te dwa bajty (np. 10 i 50 w 1050) i przekonwertować na z hex na dec. Do wygodnego odczytu zrobiłem sobie taki skrypt w pythonie:

import os
path=r'c:\temp\speed'
file=input('Podaj nazwe pliku: ')
file_path=open(os.path.join(path,file),'r')
zapis=os.path.join(path,'zapis.txt')
zapis_file=open(zapis,'w+')
for line in file_path.readlines():
    words=line.split(' ')
    for i in words:
        if i=='FF': 
            n=words.index(i)
            speed=(words[n+1])+(words[n+2])
            speed_dec=int(speed,16)
            speed_str=str(speed_dec)
            zapis_file.write(speed_str)
            zapis_file.write('\n')
print('Zapisywanie zakończone')
zapis_file.close()
file_path.close()

Zastanawia mnie jednak ta część ze zmiennymi speed_dec i speed_str  - otóż nie mogłem zapisać wyniku do pliku kiedy wartość speed_dec była zmienną int (stąd konwersja na str). Czy ktoś mógłby wyjaśnić co zrobiłem nie tak?

 

btw. uczę się programowania do ok. miesiąca więc prosze o łopatologiczne wyjaśnienia;-)

1 odpowiedź

0 głosów
odpowiedź 22 października 2019 przez reaktywny Nałogowiec (46,230 p.)
edycja 22 października 2019 przez reaktywny

Możesz użyć:

zapis_file.write('{}\n'.format( speed_dec ))

zamiast:

 speed_str=str(speed_dec)
 zapis_file.write(speed_str)
 zapis_file.write('\n')

write przyjmuje tylko stringi.

 

 

Podobne pytania

0 głosów
1 odpowiedź 799 wizyt
pytanie zadane 9 sierpnia 2018 w Nasze projekty przez Kamil110501 Bywalec (2,490 p.)
0 głosów
1 odpowiedź 646 wizyt
pytanie zadane 5 sierpnia 2018 w Mikrokontrolery przez Kamil110501 Bywalec (2,490 p.)
0 głosów
0 odpowiedzi 591 wizyt

93,468 zapytań

142,403 odpowiedzi

322,705 komentarzy

62,848 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Kursy INF.02 i INF.03
...