[Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

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

Sehr schönes Projekt ;)
nur eben zum Verständniss:
Du willst nen Programm schreiben das die Werte ausm Heatmaster ausliest und diese an ein LCD mit LCDHype weitergibt. Richtig so?
Wenn das so ist dann hätte ich großes Interesse an der Software :D

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

Exakt das soll das Programm später können. Momentan programmiere ich aber nicht,
weil ich erst einmal meinen CaseCon beenden muss. Lange kann es aber nicht mehr
dauern, also geht es auch bald weiter. ;)
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

kannste nen bisschen schneller machen? :D
Ich bin nämlich grad auch an meinem kleine CaseCon dran und überlege grad ob ich noch ne Aussparung für nen LCDisplay machen soll :D

Spaß beiseite:
Lass dir Zeit, mach erst mal dein geiles Projekt :daumen: weiter.
Aussparung kann ich ja später evtl noch machen.

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

Ein LCD kann man immer gebrauchen. Dafür gibt es auch schon zahlreiche gute Programme, mit denen man schon fast alles anzeigen lassen kann. Wenn man einmal ein LCD hatt, kann man in Zukunft nicht mehr darauf verzichten. :D

Die Entwicklung kann aber noch etwas dauern, weil gerade das Plugin für LCD Hype noch richtig kompliziert wird.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Könnte man die Werte nicht auch im Memory auslesen, statt in der Log-Datei ?. Oder kann man das bei C nicht ?
Evtl. muss man dann noch die Basepointer finden (die Offsets hab mich immer genervt :D ), bei manchen Programmen ändert sich immer die Adresse, wenn man es neustartet.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Solange das Tool von der WaKü nicht mit shared memory arbeitet, nein. Sonst gibt es ne Speicherschutzverletzung und das Programm wird von Windows beendet. Früher, zu 16 Bit Zeiten war das kein Thema, aber ab 32 Bit (aka "Protected Mode") hat jedes Programm seinen eigenen Speicherbereich und Zugriffe auf diesen von anderen Programmen aus führen meist zu einem segmentation fault.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Cool, dass ich jetzt auch mal mitreden kann (mein C Buch ist echt klasse). :D Soweit ich weiß, wird jedem Programm Speicherplatz zugewiesen, den es dann auf unterschiedliche Art und Weise nutzt. In C muss für das Programm ja auch Speicher zuweisen, den es falls verfügbar dann erhält.

Man könnte also direkt über den Speicher arbeiten, dazu müsste man dann mit dem C Programm auf den Speicherbereich zugreifen, der der Software (in diesem Falle die Heatmaster Software) zugewiesen ist. Das geht dann (wenn ich alles richtig verstanden habe) nur mit dem Shared Memory, weil es ansonsten zu einer Speicherzugriffsverletzung kommen würde.


Haltet ihr die Verwendung von Shared Memory denn für sinnvoll? Eventuell könnte man damit schnellere Aktualisierungsraten erreichen, denn die Log wird ja nur alle zwei Sekunden aktualisiert, wobei ich denke, dass die Software deutlich schneller arbeitet.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Das mit dem shared memory (oder jede andere Form der Interprozesskommunikation) klappt aber nur mit dem Heatmaster, wenn dieser auch dafür ausgelegt ist, sprich: Die Heatmaster-SW muss das bereits unterstützen, damit du da die Daten abgreifen kannst.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Ok, ich denke das ist eher nicht der Fall. Der Weg über die Log ist also die beste und einfachste Alternative.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Wenn wir die erste funktionstüchtige Version vorliegen haben, kann man eventuell etwas erreichen, vor allem, weil die Aktion ja über Aquatuning läuft.

Vorerst müssen wir aber diese Version ans Laufen kriegen. Das Problem ist nur, dass mein Rechner, auf dem die Software gespeichert ist, auseinandergebaut neben mir liegt. :schief:
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Ich würde auch erstmal übers Log gehen und später (wenn sie es erlauben) kannst du es ja über shared memory laufen lassen ;)
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Okay, ich habe jetzt mal ganz tief in meiner WinAPI-Trickkiste gebuddelt: Es gibt Möglichkeiten an Speicher eines anderen Prozesses zu kommen, da gibt es Funktionen für! Allerdings arbeitet man da vollkommen low-level, d. h. man muss Prozess-ID, Speicheradressen, etc. kennen. Und vorallem muss man die notwendigen Rechte besitzen, um an den Prozessspeicher zu kommen. Ich probier im Moment mal ein wenig mit dem Krempel rum, kann dir aber schon jetzt sagen, dass das ziemlich heftiger Kram ist :ugly:

Edit: Habe es hinbekommen eine Variable aus Programm A im Programm B zu lesen :)
 
Zuletzt bearbeitet:
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Ich habe gerade dieses Review hier entdeckt und dabei gesehen, dass sich der Heatmaster-Treiber u. a. als COM-Port meldet (daher vermute ich jetzt mal stark, es handelt sich um eine USB -> COM Umsetzung. Ich kann leider außer dem Atmel-Chip nichts erkennen, der kleine Chip unterhalb des Relais könnte ein Kandidat sein). Das macht die Sache wesentlich einfacher! Man könnte nämlich jetz mit einem COM-Port-Sniffer das Protokoll untersuchen, welches von der Originalsoftware genutzt wird und damit seine eigene Software entwickeln. Da ich allerdings keinen Heatmaster besitze, kann ich in die Richtung aktuell nicht viel machen machen. Damit könnte man diesen ganzen Firlefanz mit Prozesspeicher lesen etc. geschickt umschiffen :D
 
Zuletzt bearbeitet:
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Bei C++ hätte ich so auf den Speicher zugegriffen.

HWND hwnd;
hwnd = FindWindow(0,L"Solitär");
DWORD Id;
HANDLE ProcessHandle;
GetWindowThreadProcessId(hwnd,&Id);
ProcessHandle = OpenProcess(PROCESS_VM_WRITE |PROCESS_VM_OPERATION ,false,Id);

Ich weiß nur nicht ob das so bzw. so ähnlich auch unter C geht. Ist übrigens ein Hack für Solitär. Die Speicheradressen kann man ganz gut Cheat Engine finden.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Ja, genau. Das ist was ich bei meinem Beispiel auch gemacht hatte. Aber wenn die eine COM-Verbindung zur Datenübertragung nutzen, muss man das nicht so kompliziert machen, zumal der Zugriff auf Prozessspeicher eigentlich nur mit globalen Variablen sicher funktioniert. Lokale Variablen müssen während der Programmlaufzeit nicht immer an derselben Stelle im Speicher liegen, was die Sache ziemlich schwierig macht.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Auf dem Chip, den du meinst, steht Silab CP2102 und der Hauptchip ist ein AtMega32.
Wenn es eine Möglichkeit gäbe, die Heatmaster Software komplett zu ersetzen, wäre das natürlich auch nicht schlecht, hätte aber den Nachteil, dass man sämtliche Funktionen (Steuerungsschleifen, Anzeige, usw.) neu programmieren müsste. Das halte ich nicht für sinnvoll, wenn man schon ein entsprehendes Programm zur Verfügung stehen hat.
Der Weg über den Prozessspeicher gefällt mir da besser und es scheint ja auch zu funktionieren.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Na dann viel Spaß beim Suchen der Adressen :ugly:
Und falls die eine neue Version der Software rausbringen, kannst du auch alle Adressen ersetzen. Und wie gesagt, wenn die Daten innerhalb einer Funktion in lokalen Variablen landen, wird es noch schwieriger. Lokale Variablen müssen nicht zwangsläufig an derselben Adresse landen, da sie zur Laufzeit dynamisch auf dem Stack erzeugt werden und dieser sich zwischen Funktionsaufrufen einfach ändern kann.

Das mit dem Prozessspeicher kann ab Windows Vista übrigens vom Programm gesperrt werden (obwohl ich nicht glaube, dass dies hier gemacht wurde).

Edit: Der Silab CP2102 ist ein USB nach UART Umsetzer, also wie ich bereits vermutet hatte ^^
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Also vergessen wir die Übertragung von Daten über den Prozessspeicher. Wenn wir eine eigene Software programmieren, könnten wir natürlich direkt eine LCD Funktion einbauen, sodass wir uns den Umweg über LCD Hype sparen könnten. Ich stelle mir das allerdings sehr kompliziert vor.
 
AW: [Projekt] Messdatenverarbeitung für den Alphacool Heatmaster

Ich hätte euch helfen können, ich finde die passenden Adressen relativ schnell mit Cheat Engine, aber da ich weder den Heatmaster noch das Programm habe, fällt das Weg. Das Programm alleine bringt nichts es gibt zig Tausend Adressen mit dem Wert 0.
Die passenden Base-Pointer würde ich dann auch versuchen zu finden, wenn es welche gibt.
 
Zurück