Wetterdaten per Funk aus einer aprs.txt datei versenden leider falsches format

#1
Hallo liebe Programmierer, hier ist mal wieder Weatherman aus derEifel mit einem neuen Problem!

Ihr hattet mir ja schon mal geholfen bei derProgrammierung der Warnscripte in Python mit dem Hinzthriller.
Das alles läuft immer noch prima auch unter 64Bit mit Win7....will sagen Python ist also noch auf meinem jetzigen Rechner vorhanden.

Diesmal geht es aber um folgendes.:

Ich möchte ein Textfile mit Wetterdaten alsInhalt per Funk versenden, dazu habe ich mehrere Möglichkeiten das File mitunterschiedlichsten Wetterprogrammen erzeugen zu lassen.

Früher habe ich das unter WinXp im 32 bit Formatmit einer selbstprogrammierten Batch und einer
EinAus2.Exe erledigen lassen.

Zwischenzeitlich musste ich jedoch WinXpeinstampfen und habe das System wieder neu aufgesetzt.

Auf dem Wetterserver kommt jetzt Win 7 64 bitzum Einsatz, so dass die EinAus2.Exe leider angemeckert wird und nicht mehrausführbar ist da diese unter win32 bit mittels Pascal oder C++ programmiert wurde.

Ich habe auf meinem Apache einen Ordner für die Personen eigerichtet die sich dem Problem annehmen möchtenerstellt mit dem Namen CDW.
Wenn Ihr also folgenden Link aufsucht findet ihralle Dateien zum ausprobieren.

Index of /linuxhd/CDW

Die eigentliche neue Wetterseiten url lautet: Amateurfunk und Wetterstation DH3PAE in 53902 Bad Munstereifel-Eichen auf google chrom Browser angepasst.

Und nun zu meinem Problem:

Das Funkprogramm Uiview benötigt zum Versenden meiner Wetterdaten per Funk ein File mit der Endung .txt

Also lasse ich von meiner 1. Wettersoftware namens Weatherlink ein File Namens aprs.txt erzeugen.
Leider schreibt die Software in dem Aprs.txt file die gewünschten Wetterdaten nur untereinander
also quasi so:

03.03.1816:08748.09.72.981997.00.4


Diese Daten müssen aber zwingend hintereinander und nebeneinader geschrieben sein da die Funksoftware das File sonst nicht absendet, also kann ich das erzeugt aprs.txt file, so leider nicht gebrauchen.

Früher habe ich mir dann auf Grund der EinAus2.exe ein File im Format aprs.htm erzeugen lassen dieses sah dann so aus:

03.03.18 13:41 129 6.4 6.4 2.9 84 996.8 0.4

Nachdem dann die EinAus2.Exe über diese aprs.htm lief, wurde ein aprs.txt erzeugt und wurde von dem
Funkprogramm zur Aussendung akzeptiert. Leider geht diese Möglichkeit aber jetzt auch nicht mehr da sie unter win 7 64 bit nicht mehr ausgeführt wird.

Eine weitere Wettersoftware die von mir eingesetzt wird heißt Wswin von Werner Krenn, diese Datei erzeugt auch eine Aprs.txt leider aber auch so, dass das Funkprogramm damit nicht klar kommt weil Datum und Uhrzeit als Erstzeile über den Daten stehen, das ist auch richtig so für eine Versendung über Tcpip direkt ins Internet zu finden unter diesem Link , leider jedoch unbrauchbar für eine Funkaussendung.

Google Maps APRS

Der Inhalt der Datei sieht dann so aus:

Mar 03 2018 13:41135/001g004t037L614P002p002r000b09968h84

Leider ist das Format so garnicht für das Funkprogramm nutzbar, da dort noch andere Parameter enthalten sind wie 24 Std. regenmengen etc.

Ich benötige also ein File als aprs.txt mit folgenden Parametern:


03.03.18 13:41 129 6.4 4.4 2.9 84 996.8 0.4

Dieses aprs.txt file wird durch die Wettersoftware Weatherlink erzeugt und zwar durch eine aprs.htx , in dieser htx stehen die benötigten Parameter für die einzelnen Ausgabewerte.
Das sieht so aus.:

<!--date-->
<!--time-->
<!--windDir-->
<!--windSpeed-->
<!--windHigh10-->
<!--outsideTemp-->
<!--outsideHumidity-->
<!--barometer-->
<!--dailyRain-->

Genau diese Reihenfolge muss nebeneinander in der Ausgabe stehen wie in der aprs.htm gezeigt nur eben nicht als htm sondern als aprs.txt....ok habt ihr das soweit verstanden...ich weiß es ist komplex.

Meine Frage nun an euch:

Würdest Ihr oder konnt ihr euch dem Problem annehmen?
Wenn ja habt ihr die Möglichkeit eine neue EinAus2.Exe lauffähig unter Win 7 64 bit zu schreiben.
Oder seht ihr diedie Möglichkeit aus den vorhandenen txt oder htm dateien via Python eine neue aprs.txt zu erstellen die ich dann mittels batchfiles weiter an die Stelle kopieren lasse wo sie dann durch das Funkprogramm weiter verarbeitet werden kann und gefunden wird.
In der Regel befindet sich diese aprs.txt im Ordner APRSWX auf der Root in C:\

Bei Rückfrage einfach melden:

Vielen lieben Dank für alles ...das ihr ja ..ich bin dir sehr dankbar für Eure Mühe!


LG Stefan



 

CDW

Moderator
Mitarbeiter
#2
Pro-forma hänge ich das Script hier samt Kurzbeschreibung an, falls es noch für irgendjemanden für irgendetwas zu gebrauchen ist.

Es sollte Dateien mit beliebig vielen Elementen konvertieren können:
Code:
python input_datei output_datei anzahl_der_zeilen_zum_zusammenfuegen
python convert.py in.txt out.txt 9 <- 9 elemente, falls ich mich nicht verzählt habe
konkret mit den Daten aus dem Beispiel:
Code:
% more aprs.txt # inhalt der aprs.txt vor der Konvertierung
03.03.18
13:41
129
6.4
6.4
2.9
84
996.8
0.4

% python convert.py aprs.txt aprs.txt 9    # konvertierung
% more aprs.txt                 # inhalt nach der konvertierung
03.03.18 13:41 129 6.4 6.4 2.9 84 996.8 0.4
Mit mehr Elementen:
Code:
% more aprs.txt          
03.03.18
13:41
129
6.4
6.4
2.9
84
996.8
0.4
03.03.18
13:45
129
6.4
6.4
2.9
84
996.8
0.4
03.03.18
13:49
129
6.4
6.4
2.9
84
996.8
0.4

% python convert.py aprs.txt aprs.txt 9
% more aprs.txt
03.03.18 13:41 129 6.4 6.4 2.9 84 996.8 0.4 
03.03.18 13:45 129 6.4 6.4 2.9 84 996.8 0.4 
03.03.18 13:49 129 6.4 6.4 2.9 84 996.8 0.4

Btw, außerhalb von Windows wäre die Lösung auch mit üblichen Boardmitteln möglich:
Code:
% tr -d '\r' < aprs.txt|paste -d ' '  - - - - - - - - -
03.03.18 13:41 129 6.4 6.4 2.9 84 996.8 0.4
tr -d '\r' < aprs.txt| awk 'NR%9 {printf "%s ",$0;next} {print;}'     
03.03.18 13:41 129 6.4 6.4 2.9 84 996.8 0.4
 
Oben