Sziasztok.
Raspberryn szeretnék olvashatóan olvasni soros portról, a /dev/ttyAMA0-ról.
Néha idióta karakterek jelennek meg, nem tudom miért, de sejtem, hogy összefüggésben van azzal, hogyan állítom be az stty paramétereit.
Jelenleg ez megy:
#!/bin/bash
stty -F /dev/ttyAMA0 4800 8N1 -cstopb -parenb -icanon min 1 time 1
#stty -F /dev/ttyAMA0 115200 8N1 -cstopb -parenb -icanon min 1 time 1
while true; do
cat -v < /dev/ttyAMA0
done
# igen am, de hogy iranyitom fajlba oly módon, hogy azert a terminalban is lassam, mit fogad a cat?
exit 0
Egyelőre hibátlanul pörög. Kérdés az, számíthatok-e anomáliára, azaz értelmezhetetlen karakterek megjelenésére, amitől a cat is kiakad, azaz leáll?
(Négyzetek, téglalapok, cirádás karakterek, cirádás négyzetek, egyebek. Meg sok-sok space jelenik meg anomália esetén)
- 1320 megtekintés
Hozzászólások
ha a while-done szakaszt kicserélem erre:
while true; do
read LINE < /dev/ttyAMA0
echo $LINE
done
...akkor jönnek a hüjekarakterek:
��w��rSɊ �ʂ�Ή�ªb*����ѱ���'�b������bbbé
é�I��I�r��b��bj����ѱ9����ձ[��� 5)�$GPGGA,144041.000,4730.4902,N,01901.4685,E,1,4,3.03,128.9,M,41.1,M,,*53
éGPGSA,30,05,09,07,,,,,,,,,5.10,3.03,4.11*0A
éC,144041.000,A,4730.4902,N,01901.4685,E,0.28,20.21,261216,,,A*58
éGPVTG&����
Nem értem, miért.
Ha sima
cat /dev/ttyAMA0
fut le, akkor is jönnek a hieroglifák
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
Aszem ez is hibátlanul hozza le a mondatokat:
while read line; do
if [ "$line" != "EOF" ]; then
echo "$line"
echo "$line" | grep "RMC" >> /log.nmea
else
break
fi
done < /dev/ttyAMA0
# es ez mar ki is irja fajlba.
exit 0
Kérdés:
Miért kell a read-ra ráengedni a folyamot? valami szűrést csinál a read?
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
> igen am, de hogy iranyitom fajlba oly módon, hogy azert a terminalban is lassam, mit fogad a cat?
man 1 tee
- A hozzászóláshoz be kell jelentkezni
tee, igen, de megoldottam ezt feljebb. Most már csak az a kérdés, a read miért kell, anélkül miért nem megy. És ha már megy, az végleges-e...
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
A probléma még mindig fennáll, úgy látszik a "read" lényegtelen itt.
Rapszodikusan jelentkezik a hiba.
$GPRMC,173026.000,A,47xx.4193,N,01855.1222,E,0.32,138.75,261216,,,A*63
$GPRMC,173025.000,A,47xx.4193,N,01855.1221,E,0.45,137.97,261216,,,A*60
$GPRMC,173023.000,A,47xx.4194,N,01855.1215,E,0.52,139.61,261216,,,A*67
$GPRMC,173028.000,A,47xx.4195,N,01855.1224,E,0.40,138.75,261216,,,A*68
�������
$GPRMC,173022.000,A,47xx.4192,N,01855.1211,E,0.56,139.61,261216,,,A*60
$GPRMC,173024.000,A,47xx.4194,N,01855.1219,E,0.51,139.61,261216,,,A*6F
$GPRMC,173027.000,A,47xx.4194,N,01855.1223,E,0.39,138.75,261216,,,A*6F
$GPRMC,173029.000,A,47xx.4196,N,01855.1226,E,0.43,138.75,261216,,,A*6B
$GPRMC,173026.000,A,47xx.4193,N,01855.1222,E,0.32,138.75,261216,,,A*63
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
A célcucc, ami küldi az adatokat, rendesen működik? Jó a tápja?
A drótozás stabil?
- A hozzászóláshoz be kell jelentkezni
Illetve ugye nem a Pi3 félig szoftveres soros portjával szívsz? :) (A ttyAMA0 névből talán az valószínű, hogy nem, viszont a board típusa eddig mintha nem derült volna ki.)
- A hozzászóláshoz be kell jelentkezni
Most éppen a zero és a b+ volt soron soros porttal. Agyilag kiütött a dolog pár napig.
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni
Inkább kommunikációs problémának néz ki, mint szoftveresnek. Ahogy feljebb is írták, ellenőrizd a tápegységeket, vezetékelést.
- A hozzászóláshoz be kell jelentkezni
Minden kábel és áram rendben.
---
--- A gond akkor van, ha látszólag minden működik. ---
---
- A hozzászóláshoz be kell jelentkezni