Hallo zusammen
Ich hänge mal anfolgendem Problem:
Eine Datenübertragung von einem Pic zum PC über "einfache 433 MHZ" Funkmodule.
Wäre alles nicht so schwer wenn die Funktermometer usw nicht auch noch alles verseuchen würden.
Die Funkverbindung steht problemlos, aber wie finde ich im eingehenden String den Anfang ?
Com String empfangen übernimmt nach "CR LF" den String und erkennt meinen "test" Startstring und zerlegt alles problemlos-
wenn icht durch die "Störungen" am Anfang noch Zeichen wären .
Bisher sende ich "CR LF" vorher - ist aber auf Dauer nicht möglich.
ein eingehender String könnt z.B. so ausschauen "h36hkhjgbqtest123 13 10 " - oder "3&§test123 13 10" - also vor dem Test irgendwelche Zeichen
in beliebiger Anzahl.
Anbei die Grundschaltung
Bin mal auf die Antworten gespannt
Gruß Gerhard
String Anfang finden bei Funkübertragung
String Anfang finden bei Funkübertragung
- Dateianhänge
-
- funk.zip
- (1.45 KiB) 328-mal heruntergeladen
Re: String Anfang finden bei Funkübertragung
Hallo Gerhard,
wenn du mit einer festen Stringlänge arbeiten kannst mit $Length und $Delete die Störzeichen löschen.
Mike
wenn du mit einer festen Stringlänge arbeiten kannst mit $Length und $Delete die Störzeichen löschen.
Mike
Re: String Anfang finden bei Funkübertragung
Hi Gerhard,
ich denke, dass Du hier mit der Stringoperation "pos" zum Ziel kommst. Als Referenz-String s$ definierst Du "test" und den verseuchten String speist Du in m$ ein. Die Operation liefert die Anfangsposition von test
Bpl: in m$ = "xxyyyf,fgtestnutzdaten" liefert 10
Nun kannst Du mit den Stringoperationen gezielt vorgehen, z.B. die nutzlose Preambel mit delete wegschneiden oä.
Mit freundlichen Grüssen:
Thomas
ich denke, dass Du hier mit der Stringoperation "pos" zum Ziel kommst. Als Referenz-String s$ definierst Du "test" und den verseuchten String speist Du in m$ ein. Die Operation liefert die Anfangsposition von test
Bpl: in m$ = "xxyyyf,fgtestnutzdaten" liefert 10
Nun kannst Du mit den Stringoperationen gezielt vorgehen, z.B. die nutzlose Preambel mit delete wegschneiden oä.
Mit freundlichen Grüssen:
Thomas
Curiousity makes us progress !
Re: String Anfang finden bei Funkübertragung
Hallo Mike und Tom
Danke für die schnellen Antworten
So habe ich mirs ungefähr vorgestellt , hab heute noch den Versuch gemacht mit dem ersten Comstring einzulesen bis
"test" und dann mit dem 2. Comstring den rest bis "13 10" einlesen .
Geht Problemlos auch nach einem Intervall von 5 minuten - wo der "Störnebel schon lang war .
Allerdings werde ich doch auf die Methode gehen und mit dem PIC erst " 13 10" senden und dann die Nutzdaten .
ist der geringste Aufwand .
Vielen Dank nochmals
Gerhard
PS an Compander : damit schicke ich vom Quatrocopter die Batteriespannung und Strom an mich zurück.
Danke für die schnellen Antworten
So habe ich mirs ungefähr vorgestellt , hab heute noch den Versuch gemacht mit dem ersten Comstring einzulesen bis
"test" und dann mit dem 2. Comstring den rest bis "13 10" einlesen .
Geht Problemlos auch nach einem Intervall von 5 minuten - wo der "Störnebel schon lang war .
Allerdings werde ich doch auf die Methode gehen und mit dem PIC erst " 13 10" senden und dann die Nutzdaten .
ist der geringste Aufwand .
Vielen Dank nochmals
Gerhard
PS an Compander : damit schicke ich vom Quatrocopter die Batteriespannung und Strom an mich zurück.
Re: String Anfang finden bei Funkübertragung
Ach hier noch die geänderte Schaltung - Abfrage des Start und Ende Zeichens .
"Überbrückt" problemlos auch mal einige Aussetzer
Fehlt noch der Watchdog für den Empfang
Gruß Gerhard
"Überbrückt" problemlos auch mal einige Aussetzer
Fehlt noch der Watchdog für den Empfang
Gruß Gerhard
- Dateianhänge
-
- funk.zip
- (1.59 KiB) 365-mal heruntergeladen