-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Daten aus LOG-File visualisieren

  1. #1
    Benutzer Stammmitglied
    Registriert seit
    21.03.2013
    Beiträge
    86

    Daten aus LOG-File visualisieren [erledigt]

    Anzeige

    Ich wir möchte Daten aus einem (mit einem µC erzeugten und auf SD-Karte geschrieben) Log-File visualisieren.
    Es werden pro Jahr ca. 250.000 Zeilen erzeugt: Das LogFile ist so aufgebaut, alle Einträge im ASCII hex:
    0000000;0F07150F33003C362C30330000FF
    0000001;0F07150F34003C3A2D30330000FF
    0000002;0F07150F35003C3A2F2F320000FF
    ....
    Fortlaufende Nummer, Zeitstempel (yyMMddhhmm), dazu 4x 8Bit-Int-Werte und Statusinformationen.
    Wir haben begonnen, das Thema in Visual C# 2010 Express zu bearbeiten, haben jedoch erhebliche Performance Probleme...
    Letztendlich möchten wir aus diesen regelmäßig ausgelesenen Daten, einen Zeitraum (aus den gewonnenen Zeitstempeln) auswählen und diesen dann mit Charting darstellen.
    Da ich kein (Windows= Programmierer bin und ich mit diesen Datenmengen keinerlei Erfahrung habe, Suche ich Unterstützung.
    Ich bin bereit, den Aufwand den man noch genauer abstimmen müsste zu vergüten.
    Wer kann mir helfen?
    Geändert von indeas (11.08.2015 um 13:40 Uhr) Grund: erledigt

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    599
    Hallo,

    was ist den das Ziel ? Diagramme zu erhalten oder ein Programm zu schreiben ?

    Wenn es darum geht Diagramme aus sehr großen Datensätzen zu extrahieren, ist eine spezielle Diagrammsoftware besser geeignet. Weit verbreitet ist z.B. Origin
    http://www.originlab.com/
    Das hat selber eine Makrosprache eingebaut, kann aber auch aus C# gesteuert werden.

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    21.03.2013
    Beiträge
    86
    Die vorhandenen Daten sollen visualisiert werden. Das funtioniert auch schon, aber eben nur sehr stockend bzw. nur bei kleinen Datenmengen vernünftig.
    Habe eine Version die mit 100 Einträgen =(Zeilen) noch fertig wird, bei 500000 wird es dann zäh....
    Zum Beispiel ist es problematisch (für mich) den Zeitstempel aus dem String zu erzeugen. Mit DateTimeParse dauert es bei den 500000 Zeilen ewig....
    Den nächste Schritt, die Daten aus dem DataTable in eine Graph mit Zoom und dem genzen Krempel zu bringen, habe ich vor diesem Hintergrund noch gar nicht weiter verfolgt.

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    599
    Zitat Zitat von indeas Beitrag anzeigen
    Die vorhandenen Daten sollen visualisiert werden.
    Eine wirkliche Antwort auf meine Frage ist das nicht.

    Wenn man ein Programm haben will, muss man wohl erstmal ordentliche Grafikkomponenten kaufen. Mit den Bordmitteln von Visual Studio wird das sicher schwer.

    Will man nur Diagramme, z.B. als PDF sollte das mit dem genannten Programm kein Problem sein. Origin kann Tabellen mit 90 Millionen Zeilen und 65000 Spalten bearbeiten. Die Programmierung ist auch auf solche Datenmengen ausgelegt und basiert auf C.
    http://www.originlab.com/index.aspx?...amming/OriginC
    Man kann dort auch mit Visual C++ geschriebene DLLs einbinden.

  5. #5
    Unregistriert
    Gast
    Hallo,

    willst du es auf PC oder einem Display direkt am µC anzeigen
    Das kann man ,mit dem für privaten Gebrauch kostenlosen Qlikview, machen. Uneingeschränkte Funktionalität, bis auf die Dokumentenweitergabe.
    Kann ich nur empfehlen steile Lernkurve und schnelle Umsetzung solcher kleinen Auswertungen.
    BIRT ginge vermutlich auch damit kenne ich mich aber nicht aus.


    gruß
    Macros

  6. #6
    Benutzer Stammmitglied
    Registriert seit
    21.03.2013
    Beiträge
    86
    Mir ist klar, dass dies mit den C# eigenen "Bordmitteln" nur schlecht geht; habe mir mal Nevron und ZedGraph angesehen.
    Jetzt Suche ich aber auch noch jemanden, der die Aufgabe in Verbindung mit C# löst (gerne mit Origin, Nevron, ZedGraph,....)
    Dass dieses Add-On auch Geld kostet, ist mir klar
    Das ganze soll auf dem PC passieren.
    Geändert von indeas (10.08.2015 um 13:18 Uhr)

  7. #7
    Erfahrener Benutzer Roboter Genie Avatar von BMS
    Registriert seit
    21.06.2006
    Ort
    TT,KA
    Alter
    26
    Beiträge
    1.192
    Hallo,
    würde es etwas helfen, die Daten zunächst in ein anderes Format zu konvertieren (csv, xml ... ?), wo Datum und Messwerte in einem lesbaren Format drin stünden?
    Man könnte auch bestimmte Zeiträume auf mehrere Dateien aufteilen, z.B. pro Tag/Woche/Monat eine Datei, um beim Suchen nach einem Zeitraum schneller fündig zu werden.
    Grüße, Bernhard
    "Im Leben geht es nicht darum, gute Karten zu haben, sondern auch mit einem schlechten Blatt gut zu spielen." R.L. Stevenson

  8. #8
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    04.09.2011
    Ort
    Hessen
    Beiträge
    599
    Einer der Gründe für die Verlangsamung bei großen Datenmengen dürfte ineffizienter Umgang mit Strings sein. In .net sind Strings unveränderlich, wenn man das Zerlegen der Zeilen falsch macht, entstehen sehr viele Stringobjekte, die der Garbage Collector dann wieder aufräumen mus.

    Ob es hier Freiberufler gibt, die solche Aufträge annehmen, bezweifle ich etwas. Aber vielleicht schaut mal jemand vorbei. Wenn das jemand macht, der sein Geld damit verdient, wird das aber nicht ganz billig.

  9. #9
    Benutzer Stammmitglied
    Registriert seit
    21.03.2013
    Beiträge
    86
    Der Umgang mit Strings bremst mich gar nicht so sehr aus.
    Ich kann alle Integers aus jeder der 500.000 Zeilen innerhalb <1s auslesen.
    Ich kann auch die strings im Zeitstempel-Format erzeugen, auch das geht noch flott (<2s):
    timestring = (year + 2000).ToString("0000") + month.ToString("00") + day.ToString("00") + hour.ToString("00") + minute.ToString("00") + "00";
    Das ist nicht das zentrale Problem. Das wäre absolut OK.

    Wenn ich dann aber die Zeitstempel im DateTime-Format jeder Zeile erzeugen möchte, dann wird alles langsam:
    Egal ob so: TimeStamp = new DateTime(year, month, day, hour, minute, 0);
    Oder aus einem aus den einzelnen Variablen zusammengesetzen string den ich dann parse, es ist dann super-langsam.

    Würde gerne das DateTime Format nehmen, damit ich über eine TimeSpan nachher alles sauber selektieren kann.
    Zur Visualisierung kommen wir dann erst später...Die sollte dann alle Werte zwischen zwei Zeitstempeln liefern.

    Im Grunde genommen möchte ich das alles nicht unbedingt selber machen, sondern lieber jemand dafür bezahlen der so etwas kann und schon öfters gemacht hat.

  10. #10
    Erfahrener Benutzer Fleißiges Mitglied Avatar von Mcgrizzly123
    Registriert seit
    15.06.2012
    Beiträge
    142
    Du könntest auch dem Einlesen der Daten die Umwandung in TimeStamps in mehrer Threads auslagen.

    Einlesen -> (0-50.000 -> Thread 1 ) (50.000-100.000 -> Thread 2) ,...
    So könnten man bei 10 Threads die Zeit auf ein Zehntel reduzieren.
    | Mfg |
    | McGrizzly123 |

Seite 1 von 2 12 LetzteLetzte

Ähnliche Themen

  1. Antworten: 5
    Letzter Beitrag: 29.04.2012, 01:08
  2. dependency file dep/***.o.d: No such file or directory
    Von SvLG im Forum Vorstellung+Bilder+Ideen zu geplanten eigenen Projekten/Bots
    Antworten: 1
    Letzter Beitrag: 20.04.2010, 00:31
  3. RS232 Daten in Echtzeit visualisieren
    Von samm_2006 im Forum PC-, Pocket PC, Tablet PC, Smartphone oder Notebook
    Antworten: 6
    Letzter Beitrag: 19.09.2009, 23:08
  4. RS232 Daten Visualisieren
    Von Che Guevara im Forum Software, Algorithmen und KI
    Antworten: 3
    Letzter Beitrag: 12.05.2009, 05:51
  5. MATLAB Simulink-Stateflow: dll File aus mdl File erstellen
    Von danionbike im Forum Software, Algorithmen und KI
    Antworten: 0
    Letzter Beitrag: 11.01.2008, 18:24

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •