Sie sind nicht angemeldet.
Lieber Besucher, herzlich willkommen bei: Aqua Computer Forum. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.
Zitat von »GeminiServer«
@0x6c333337
ich denke das eine dll der eine verbindung zum aquaero herstellt perfect wäre. So könnte mann ohne probleme verschiedene app. erstellen und alles schön abkapseln. Ich denke da an samurize, VISTA gadget. Leider ist die SDK von ac nur mit c# und die usb.dll scheint auch kein export der funktionen zu bieten! Sonst hätte ich längst ne kleine app. erstellt...
Hatte mich mal an deine src rangewagt ... oh mann.. da muss echt alles mal gereinigt werden ...
Wenn du schon dabei bist.. dan erstellt doch mal ne seperate dll, welches nur auf die HID schnittstelle zugreift.. oder der reine win32 src, der halbweg durch den VC 7 compiler läuft würde mir auch ausreichen.. der rest ist easy....
Laut AC C# sourcen, schreiben die wohl in die registry rein.. ? Was soll den das... ein directer zugriff auf die USB schnittstelle wäre um ein viel facher besser. die Samurize dll holt sich dann die infos über die registry? Es führen wirklich viele wege nach rom.. einige kann mann sich echt schwer machen...
naja...
Die beste alternative ist immer noch der deamon... warte auf dein nächstes release...
Also als erste Anlaufstelle, wenn Du etwas damit entwickeln möchtest (oder auch jemand anders), dann muss ich unbedingt auf den Quellcode vom Samurize-Plugin hinweisen. Denn dort wird intern auf den Daemon zugegriffen. Hier ein Code-Beispiel, wie Du auf das aquaero zugreifen kannst:Zitat von »GeminiServer«
@0x6c333337
ich denke das eine dll der eine verbindung zum aquaero herstellt perfect wäre. So könnte mann ohne probleme verschiedene app. erstellen und alles schön abkapseln. Ich denke da an samurize, VISTA gadget. Leider ist die SDK von ac nur mit c# und die usb.dll scheint auch kein export der funktionen zu bieten! Sonst hätte ich längst ne kleine app. erstellt...
Hatte mich mal an deine src rangewagt ... oh mann.. da muss echt alles mal gereinigt werden ...
Wenn du schon dabei bist.. dan erstellt doch mal ne seperate dll, welches nur auf die HID schnittstelle zugreift.. oder der reine win32 src, der halbweg durch den VC 7 compiler läuft würde mir auch ausreichen.. der rest ist easy....
Laut AC C# sourcen, schreiben die wohl in die registry rein.. ? Was soll den das... ein directer zugriff auf die USB schnittstelle wäre um ein viel facher besser. die Samurize dll holt sich dann die infos über die registry? Es führen wirklich viele wege nach rom.. einige kann mann sich echt schwer machen...
naja...
Die beste alternative ist immer noch der deamon... warte auf dein nächstes release...
Quellcode |
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
#ifdef _MSC_VER # pragma warning( disable : 4786 4101 4503 ) #endif #include <iostream> #include <fstream> #include <string> #include <map> #include <set> #include <list> #include <sstream> #include <iomanip> #include <cstdio> #include <memory> using namespace std; #define VERSION "xxx" int VERBOSE = 0; #include "common.h" #include "objectstream.h" map<string,map<int,string> > stringEnum_names; map<string,map<int,string> > stringEnum_help; set<string> bitFields; /* ValueParsers convert string's to other types and vice versa. */ #include "parsers.h" /* allows runtime-access to all properties (attributes) of AquaeroData_rev4 */ #include "introspection.h" /* the data-structure of aquaero */ #include "aquaero.cpp" /* some more introspection-stuff */ #include "introspection.cpp" #include "comm.h" #include "ipc.h" ////////////////////////////////// // Variable für die Daten des Aquaero AquaeroData_rev4 aedata; // Datenverbindung, um die obige Datenstruktur zu aktualisieren DaemonCommunicationClient *comm = NULL; void init () { definePropertyMap(aedata); defineStringEnums(); } void make_connection_to_aquaero () { if( comm != NULL ) return; try { comm = new DaemonCommunicationClient(); } catch( const DaemonNotFoundException *dnfex ) { // Der Daemon läuft nicht... comm = NULL; } catch( ... ) { // irgendein anderer Fehler... comm = NULL; } } void update_data () { comm->read( aedata ); } // Generierung der String-Darstellung eines Feldes: string get_value_as_string ( string field_name ) { ostringstream oss; PropertyDescriptorBase* pd = properties[field_name]; pd->printValue( oss ); return oss.str(); } int main ( int, char**) { init(); make_connection_to_aquaero(); update_data(); string fan_name = get_value_as_string("fan.1.name"); return 0; } |
Zitat von »0x6c333337«
Auch noch eine kleine Info zu VISTA etc:
Bei VISTA ist es so, dass die USB-Kommunikation irgendwie etwas "messed up" ist -- teilweise kommen die Daten vom aquaero verschoben -- da muss ich mir mal die Besonderheiten für die USB-Kommunikation unter VISTA genauer anschauen.
Hm - genau dasselbe Problem mit den Verschiebungen hatte ich unter Linux-2.6 auch mal irgendwann (der Report hat zwar die erforderliche Länge von - ich glaube 553 Bytes - aber das erste Byte befindet sich nicht an Offset 0 sondern irgendwo mitten drin). Ich weis jedoch nicht, ob ein "ReadFile" in der Art und Weise auch unter VISTA funzt - unter XP gings.. Hatte bisher nicht die Zeit mich damit zu "spielen".Zitat von »Sebastian«
Das ist bei unserem Code nicht passiert. Einzigstes Problem mit unserem USB code mit Vista war, das ich für das gleiche Gerät verschiede Adresspfade von der API bekommen habe um das Gerät genau zu Identifizieren.
Zitat
created semaphore data_mtx
created semaphore write_mtx
created semaphore usb_comm_mtx
created semaphore performUSBDeviceUpdate
created semaphore waitForDaemon
created and mapped shm
created and mapped shm
extracting entry-points
testing hidhello
Hello
Quellcode |
|
1 2 3 |
ae error LNK2019: Nicht aufgelöstes externes Symbol '__imp__SetupDiGetDeviceInterfaceDetailA@24', verwiesen in Funktion '"private: int * __thiscall USBCommunication::init_device(void)" (?init_device@USBCommunication@@AAEPAHXZ)' ae error LNK2019: Nicht aufgelöstes externes Symbol '__imp__SetupDiEnumDeviceInterfaces@20', verwiesen in Funktion '"private: int * __thiscall USBCommunication::init_device(void)" (?init_device@USBCommunication@@AAEPAHXZ)' ae error LNK2019: Nicht aufgelöstes externes Symbol '__imp__SetupDiGetClassDevsA@16', verwiesen in Funktion '"private: int * __thiscall USBCommunication::init_device(void)" (?init_device@USBCommunication@@AAEPAHXZ)' |
Zitat von »GeminiServer«
So.. nach ein paar stunden Spielerei
Hier mal ein screenshot Beta vom aedll.
Dieser Screenshot ist nur die Test_Exe um die dll zu testen!
Wenn ihr lust habt einfach mal testen ob es auf eurem System läuft!
WinXP sollte es ohne probleme laufen!
Vista würde mich auch Interesieren..
- Es muss weder "aeinfo deamon" laufen noch das Aquasuite!
- RAR entpacken und dlltester.exe starten
Download: aedll_beta_release_v1.rar
Gruß
GeminiServer
-