Hallo Forum!
Vorneweg, ich habe hier schon zu dem Thema gelesen, aber keine Lösung gefunden. Ich suche eine Lösung in Shellscript, falls es die gibt.
Folgdendes Problem:
Ich will mit dem Raspi über UART (Serielle Schnittstelle) einen Konfigurationsdatensatz an ein GPS Modul schicken. Es ist ein NEO-6M Modul. Dazu gibt es eine Origiunalsoftware mit der man das Teil konfigurieren kann. Wenn ich in der Software die gewünschten Änderungen einstelle und sie dann hochlade funktioniert das Teil wie gewünscht. Die Übertragung erfolgt über eine UART Schnittstelle. Ich habe mit einer zweiten RX-Leitung gelauscht, welche Zeichen die Software an das Modul schickt, die Nachricht abgefangen und extrahiert .
Wenn ich diesen Datensatz, es sind 49 Bytes, mit einem LabView-Programm zu dem Modul schicke gelingt die Konfiguration auch. Es sind viele Sonderzeichen die man in einer erweiterten ASCII-Tabelle finden kann. Also kann ich mir die Originalsoftware sparen und den Datensatz in einem Skript auf dem Raspi speichern und mit einer reinen TxD-Leitung (Pin8 an der 40poligen GPIO-Schnittstelle) verbunden mit dem RX-Pin am Modul hochladen. Das ist der Plan.
Jetzt habe ich den Datensatz mal in eine Textdatei gespeichert und diese auf den Raspi hochgeladen. Den Datensatz kann ich hier nicht als Text reinkopieren, schräges Zeug!
Wenn ich jetzt den Datensatz mit
pi@raspberrypi ~/script $ cat GPSconfig
#!/bin/bash
Code=$(cat NMEA200msdelay.txt)
echo $Code > /dev/ttyAMA0
exit 0
pi@raspberrypi ~/script $
Alles anzeigen
auf der seriellen Schnittstelle ausgebe und die Ausgabe zur Kontrolle mit meinem LabViewprogramm einlese, dann stelle ich fest dass sie vom ursprünglich ermittelten Datensatz abweicht. Die Textdatei scheint also Probleme mit einigen Sonderzeichen zu haben!
Habe dann in LabView den Text in ein Byte-Array gewandelt und sehe für jedes Byte (von 0 bis Byte 48) eine Zahl zwischen 0 und 255. Unter z.B. http://www.torsten-horn.de/techdocs/ascii.htm kann ich dann tatsächlich das zugehörige Zeichen finden.
Ich muss die Zeichen aus der Textdatei also z.B. als Hex-Zeichen oder sonst irgendwie über die Schnittstelle bringen.
Meine Frage dazu:
Wie kann ich die ASCII-Zeichen in eine Datei schreiben und in Shellscript (bitte kein python!!) an der seriellen Schnittstelle ausgeben? :s
Ich stehe quasi kurz vorm Ziel, dieser Schritt fehlt noch...
PS: Die Kommunikation funktioniert natürlich grundsätzlich, hello world und so, ihr wisst schon :thumbs1: