Gast
#3925267
Hallo, ich habe eine Frage wie man grundsätzlich die Architektur für folgende Aufgabe angehen würde: Über die RS232 kommen mit 115kBaud Daten rein, z.Z. schreibe ich die mit einem Terminalprogramm auf Platte und später läuft ein Python-Programm zur Datenauswertung drüber. Jetzt will ich dass das "live" statt findet. Wie würdet ihr ein Programm aufbauen das folgendes können soll (Linux oder Windows): * Daten kommen über die RS232 rein * diese werden optional auf Platte geschrieben * 2-5x pro Sekunde wird ein Datensatz genommen (es kommen wesentlich mehr rein) und angezeigt um live die Qualität der Eingangsdaten zu prüfen. Z.z. wird dazu numpy und gnuplot verwendet (unabhängig vom Rest der Verarbeitung). * Die Daten gehen zusätzlich in einen großen FIFO, der soll durchaus ein paar MByte aufnehmen können. Geht das mit einer normalen Pipe unter Linux? Pluspunkt wäre wenn man anzeigen lassen kann wie viele Daten im FIFO stecken. * Dann gehen die Daten in die eigentliche Datenverarbeitung, die was mit den Daten tut, möglicherweise nicht schnell genug um die reinkommenden Daten in Echtzeit zu verarbeiten, weswegen der große FIFO wichtig ist. Optional soll der Dateneingang auch eine aufgezeichnete Datei sein. Muss/sollte man das in verschiedene Threads aufteilen? Wenn ja, wie am besten? Geht das sinnvollerweise in Python? Oder besser C? Schreibe ich vielleicht die verschiedenen Teile als einzelne Programme in kopple sie als Pipe? Habt ihr Vorschläge wie man sowas professionell angehen würde?