xml erweitern



  • Hallo zusammen, ich hab da ein kleines Problem mit ner XML Datei.
    Bisher mache ich es so:

    for (int k=0; k<30; k++){
    
    					usleep(15000);
    
    mport10->LinkEndChild( addElement1(Klemme1, 0) );
    mport11->LinkEndChild( addElement2(Klemme1, 1) );
    mport12->LinkEndChild( addElement3(Klemme1, 2) );
    mport20->LinkEndChild( addElement4(Klemme2, 0) );
    mport21->LinkEndChild( addElement5(Klemme2, 1) );
    mport22->LinkEndChild( addElement6(Klemme2, 2) );
    }
    
    	doc.SaveFile( "/tmp/Messungtmp.xml" );
    	rename("/tmp/Messungtmp.xml", "/srv/Messung.xml");}
    

    Das funktioniert auch soweit ganz gut. Ich messe meine 30 Werte, erzeuge daraus neue Attribute, und wenn die Messung fertig ist, dann schreib ich meine Datei. Nun müssen die Messwerte aber möglichst realtime zur verfügung gestellt werden. Dazu habe ich die letzen beide Zeilen mit in die Schleife gesetzt, sodass in jedem durchlauf die Datei erweitert wird. Klappt auch. In jedem durchlauf kommt ein neues Element dazu. Mein Problem an der Geschichte ist der Zeitrahmen. bei der ersten Variante bekomme ich ca alle 200ms +/- 10ms einen Wert. Wenn ich jedoch jedesmal die Datei schreibe, dann bricht mir die Zeit total ein und ich bekomme ganz unregelmäßige Zeitabstände von 100 - 800ms.
    Hat da jemand ne Idee dazu?
    Der ganze Code läuft auf nem kleinen Controller mit Ethernetschnittstelle. Kann man da was mit sockets machen dass ich die Daten einfach direkt auf nen Client lade wo sie verarbeitet werden?(Sorry falls das ne Schwachsinnige idee ist, ich hatte nur was im Hinterkopf dass es sowas gibt, aber kein Plan wies geht)

    Danke schonmal für eure Hilfe!!!



  • Dieser Thread wurde von Moderator/in pumuckl aus dem Forum C++ in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • die ursache für die zeitverzögerung ist ja der festplattenzugriff, der die meiste zeit braucht. wenn du die daten immer gleich per socket rausschießt entfällt das also und die daten kommen so schnell wie möglich beim client an. wenn das also geht, würde ich diese möglichkeit nutzen.



  • ich dachte mir sowas in der Art schon. Ich werde die Sache mit den Sockets mal weiterverfolgen und schaun ob mein Controller das mit macht.

    Das eigentliche ziel ist es auf einem Rechner welcher am Controller hängt die Daten für Matlab zur Verfügung zustellen. Es müssten einfach nur 3 variablen an Matlab übergeben werden, xml muss als o nicht zwingendermaßen sein wenn es irgendwie die Möglichkeit gibt die Daten per socket an den Rechner zu Übertragen und dort die variablen Matlab zugänglich zu machen. Weiß jemand ob es da für Matlab eine möglichkeit gibt?

    Danke für eure Hilfe!


Anmelden zum Antworten