[Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Welche Distribution verwendest du noch gleich? Bei eigentlich allen Distributionen gibt es ein Paket, welches die benötigten Tools (u.A. make) installiert. Bei Debian(-derivaten) heißt das z.B. build-essential.

Pfade musst du unter Linux generell nicht einstellen, wenn die Tools richtig installiert sind, dann werden sie i.d.R. auch gefunden ;)

Aja, Qt ist übrigens eine C++-Bibliothek, d.h. mit C kommst du da nicht weit. Aber vllt. wäre es vorher erstmal wichtiger das Auslesen und Anzeigen richtig zu implementieren. Ein GUI kann man dann ja immer noch dazu bauen. Wobei ein CLI eigentlich ausreicht ;)
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Qt läuft derzeit unter Windows.

Aber pyro539 hat recht, dass erst einmal die Grundfunktionen laufen müssen. Wobei so ein graphisches Interface auch nicht schlecht wäre. Dass Qt Creator mit C++ arbeitet, ist klar, wobei es sich ja auch nicht wirklich von C unterscheidet, zumindest in Bezug auf die Funktionen, die wir benötigen.

Forenuser BaSH hat mir eben ein gutes Program für das Auslesen des Speicherberichs der HM Software empfohlen. :daumen: Es nennt sich Cheatengine (Cheat Engine - Download - CHIP Online). D.h. die Auslesefunktion könnte man doch über Shared Memory realisieren. Nur weiß ich da wieder nicht, wie das funktionieren soll.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Hast du MinGW installiert? Das brauchst du für Qt unter Windows. Evtl. stimmen auch einfach nur die Pfade nicht (ich glaube MinGWs make heißt nicht "make" sonder "mingw-make" oder so)

Zu Shared Memory: Dieser Ansatz hat halt den gravierenden Nachteil, dass jedes SW Update von HM eine neue Analyse des Speichers und dementsprechend eine Anpassung deines Programms notwendig macht. Abgesehen davon gibt es ab Win Vista die Möglichkeit, Shared Memory für eine Anwendung zu blockieren
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Das heraussuchen der Pointer (Werte) würde ich übernehmen. Das Problem dabei ist ,dass das Heatmaster Programm ohne selbigen sich nicht öffnet. Ansonsten würde ich dir ein Schritt für Schritt Tutorial für das Auslesen der Pointer bzw Werte zusammensuchen.

Edit:
Die Grafische Oberfläche in C++ kann ich nach Wünschen gestalten dank VS2010 :D
 
Zuletzt bearbeitet:
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Die HM Software wird aber sowieso nur sehr selten mit Updates versorgt, von daher denke ich, ist das kein Grund, das Auslesen nicht über Shared Memory zu realisieren.

Des Weiteren habe ich endlich den Qt Creator zum Kopilieren bewegen können. Ich hatte nämlich zuerst nur den Creator ohne Compiler, etc. installiert. Mit dem Qt SDK funktioniert es jetzt.

Ich habe natürlich sofort ein bisschen herumprobiert und herausgekommen ist diese Oberfläche. Natürlich sind die Signalslots noch nicht bearbeitet, allerdings weiß ich ungefähr wie das geht. ein simples Programm, das den Text aus einer Eingabe nach dem Drücken eines Buttons in ein Label schreibt, habe ich auf jeden Fall hinbekommen.


attachment.php


attachment.php


attachment.php



Soweit ich das verstanden habe, kann man später einfach die MainWindow.cpp, Main.cpp, MainWindow.h und MainWindow.ui in sein Programm (Windows Programm) einbinden und über die Funktionen ansprechen. Das heißt natürlich, dass wir auf C++ umsteigen müssen, da die Dateien in C++ geschrieben sind. Eventuell dürfte das aber auch das Ausesen der Werte und Ansprechen des Plugins für LCD Smartie aufgrund der vielfältigeren Möglichkeiten vereinfachen.

Ich werde jetzt mal die Slots bearbeiten.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Für die Checkboxen bei Log beziehungsweise Display kannst du eine einfache while Schleife bauen. Und in Label schreiben ist in C++ wirklich einfach.

Edit: Du hast autoart anstelle von autostart im OptionsFenster geschrieben.
 
Zuletzt bearbeitet:
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Würde die Schleife ungefähr so aufbauen ( Verschachtelungen möglich):
Code:
void _abfrage()
{
    int lcd_checked = 0;
    int log_checked = 0;
    int autostart_checked = 0;
    int startminimized_checked = 0;
    //int setzen_von_boxen = 0;        Variable zum Testen

    /* diese For-Schleife dient nur zum Testen ob die Ausgabe mit der Whileschleife funktioniert
    for(int i=0; i<3; i++)
    {
        setzen_von_boxen++;
        if(setzen_von_boxen = 1)            
        {
            lcd_checked = 1;
        }
        else if (setzen_von_boxen = 2)
        {
            log_checked = 1;
        }
        else if (setzen_von_boxen = 3)
        {
            autostart_checked = 1;
        }
        else if (setzen_von_boxen = 4)
        {
            startminimized_checked = 1;
        }
    }

    */
    if(autostart_checked == 1)
    {
        //Funktion wenn Autostart gechecked ist
        printf("Autostart aktiviert");
        break;
    }
    while(lcd_checked == 1)
    {
        //Funktion wenn LCD gechecked ist
        printf("LCD checked");
        break;
    }
    if(startminimized_checked == 1)
    {
        //Funktion wenn minimiert gestartet werden soll
        printf("Minimiert starten");
        break;
    }
    while(log_checked == 1 )
    {
        //Funktion wenn Log aktiviert ist
        printf("Logdateien aktiviert");
        break;
    }
    
    

}
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Hi ich wollte den Heatmaster auch mal auf meinem LCD Display haben, deswegen hab ich log Datei vom Heatmaster ausgelesen.

Das sah in den Anfängen so aus
Code:
/ T1 =26
  T2 =31
  T3 =36
  T4 =41
  T5 =46/
   'System Time:     ' %System.GetDateTime('hh:nn:ss')                                                  %Common.CreateNewLine()
    'Heatmaster Zeit: ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),12,8)       %Common.CreateNewLine()
    'Temp Internal:   ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),21,4)  'C'   %Common.CreateNewLine()
    'Temp H2O RadIn:  ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),26,4)  'C'   %Common.CreateNewLine() 
    /'Temp H2O RadOUT: ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),26,4)  'C'   %Common.CreateNewLine()/
    'Temp Air In:     ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),41,4)  'C'   %Common.CreateNewLine()
    'Temp Air Out:    ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),46,4)  'C'   %Common.CreateNewLine()
    'Temp Spawas:     ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),31,4)  'C'   %Common.CreateNewLine()
    'Pumpspeed:       ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),96,4) 'RPM'   %Common.CreateNewLine()
    'Fanspeed:  MoRa  ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),101,4)  'RPM'   %Common.CreateNewLine() 
    /'Fanspeed:  T-Rad ' %String.Copy(%System.ReadFile('E:\Programme\Alphacool\Heatmaster 2009\output.csv'),101,4) 'RPM'   %Common.CreateNewLine() /
#EndGfxMode

Die oberen angaben T=.... war die Stelle im String vom Temeratursensor (Die Ausgegebene CSV Datei wurde vorher noch mit einen Programm mit Nullen aufgefüllt, das der String imer gleichlang war, deswegen output.csv)

Leider hat mir win7 meine alte Festpallte zerschossen :(, auf der das script war mit schöner hintergrundgrafik usw... evtl finde ich die auch wieder....
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Ich wuste gar nicht, dass das mit LCD Hype so einfach ist. :schief: Zwar ist diese Möglichkeit eher weniger professionell, aber erfüllt ihren Zweck. Ich werde mir das später mal ansehen.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Bezüglich des Programms gibt es nichts Neues, aber ich habe mich ein bisschen in den Qt Creator eingearbeitet und ein halbwegs vernünftiges Programm hinbekommen. Allerdings kann ich seit Kurzem nicht mehr Kompilieren. :( Es wird folgende Fehlermeldung unabhängig vom geladenen Projekt ausgegeben: "collect2: Id Returned 1 exit status" An den Verzeichnissen wurde nichts geändert.

Eine Frage habe ich auch noch, und zwar kann ich die kompilierte exe Datei nicht einfach ausführen, denn hier fehlen angeblich entsprechende dll Dateien. Woran liegt das?
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

ld ist der Linker. Scheint mir so, als würde der ne Lib/Funktion nicht finden. Leider sind diese Fehlermeldung meist wenig hilfreich :(

Das DLL-Problem hängt mit Qt zusammen. Du benötigst für Qt eine Runtime (z. B. DLLs im selben VZ), sofern du dein Programm nicht statisch bindest.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Bin gerade mal wieder am durchschauen und dabei ist mir aufgefallen das man doch alle diese Zeilen:
PHP:
char Zehner_Internal;
char Einer_Internal;
char Komma_Internal;
char Dezimale_Internal;
in ein array schreiben könnte um einfach viel schreibarbeit und vorallem Fehlerquellen zu sparen.
Kann zum Thema Arrays diese Seite nur empfehlen:
Link hier
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Wenn ich mich richtig erinnere sind die Werte auch in char-Arrays gespeichert, denn in C gibt es ja keinen separten Datentyp für Strings.

Ich muss ganz ehrlich sagen, dass ich mich nicht mehr wirklich mit dem Programm beschäftigt habe, da wir derzeit schulisch an einem sehr aufwendigen Projekt arbeiten, welches ebenfalls in C programmiert ist. Dort sammeln wir natürlich sehr viele Erfahrungen, die auch dem Ausleseprogramm zugute kommen werden.
 
Die Werte werden noch in einzelnen Variablen gespeichert. In einem Array könnten zum Beispiel alle ausgelesenen Daten der Temperatur 0 in einer anstelle von 4 Variablen gespeichert werden.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Also werde mir bald einen Heatmaster gönnen und mich dann nocheinmal weiter mit dem Problemen hier beschäftigen, alias Speicher auslesen etc.....
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Hey, das hört sich doch gut an. Ich habe mich leider nicht mehr mit dem Projekt beschäftigen können, da ich in letzter Zeit Probleme mit meinem Rechner hatte (zweimal NT abgeraucht, momentan außer Betrieb). :(
Natürlich werde ich weiterhin dranbleiben. ;)
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Wie ich darauf kam?

Habe das hier gefunden.

Lese mich gerade über das auslesen des Com-Ports schlau...
Vielleicht wäre das ja eine Alternative. Ende des Monats sollte der Heatmaster bei mir liegen :ugly:

Edit:
Hier mal das was ich mir gerade anschaue o_O

Edit2:
Noch etwas schönes gefunden
 
Zuletzt bearbeitet:
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Da man auch einfach die log Datei auslesen kann, werde ich mal innerhalb der nächsten 5Wochen mal schreiben wie man das (brauchbar) machen kann. ;)

Grüße
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Aber für die Logdateien musste die Software aufhaben für das auslesen der Daten vom Port nicht :P
 
Zurück