• 01.08.2025, 02:35
  • Register
  • Login
  • You are not logged in.

 

composer

Full Member

Aquaero + Linux

Thursday, September 22nd 2005, 5:19pm

Hallo beisammen,

nun werd ich mal meine Erfahrungen dazu zum Besten geben. Bei dieser Gelegenheit möchte ich mich nochmal bei den beiden freiwilligen Testern x-stars und giffi bedanken ;-) :-)

Tja, der letzte Stand ist nun, dass das aquaero und der Linux-Kernel nicht so recht miteinander klar kommen. Bei den Tests kamen zwei verschiedene Systeme zum Einsatz:
- x-stars' AMD-Rechner mit Ubuntu (2.6.10-5-386)
- giffi's 64-bit AMD-Maschine mit SuSE (2.6.11)

In den 10 Testläufen konnten zwar Daten aus dem aquaero gelesen werden, diese waren aber bestenfalls unbrauchbar. Hier das beste Resultat bei x-stars:

Source code

1
Case     ase     ase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    Pase    1ase    1ase    1ase    1ase    1ase    1ase    1ase    1ase    1ase    1ase    1ase    1ase     ase     ase     ase     ase     ase     ase     ase     ase     ase     ase    case    case    case    case    case    case    case    case    case    case    case    case    Hase    Hase    Hase    Hase    Hase    Hase    Hase    Hase    Hase    Hase    Hase    Hase    Hase    Hase    Hase    Hase
(irgendwie witzig, die "Hasen" *g*)

Sowie bei giffi:

Source code

1
2
3
4
5
Radi 1   adi 1   adi 1   adi 1   adi 1   adi 1   adi 1   adi 1  ?????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????


Also es "rührt" sich schon was - ein Lüftername wird korrekt extrahiert (oder um genau zu sein: die ersten 8 Byte der Daten)..

Die Kommunikation und der generelle Zugriff klappt (Descriptor-Krempel) - der Vorgang des Auslesens ebenso (laut Rückgabewerte) - nur eben die Daten die am Ende im Puffer stehen sind nicht zu gebrauchen...
Bemerkenswert ist vielleicht noch, dass während der Testreihen drei verschiedene API's/Ansätze ausprobiert wurden und alle im selben Fehlerbild endeten...

Diagnose: Entweder ich hab was übersehen (wovon ich inzwischen nicht mehr ausgehe), oder der Linux-Kernel kommt mitm aquaero nicht zurecht (vielleicht packt er einfach ein 552 Byte langes Feld nicht), oder die Hardware nicht mit dem Kernel... Ist natürlich auch etwas schwierig zu beurteilen, wenn man kein aquaero besitzt :-/

Naja, ich denke ich werd das nun (trotz einschlägiger Linux-Erfahrung incl. Kernel-Patching ;-)) erst mal still legen... :-/

cheers chris

sebastian

Administrator

Re: Aquaero + Linux

Thursday, September 22nd 2005, 6:27pm

Hi,
bis auf die Lüfter- und Sensornamen solltest du da auch nix für Menschen lesbares vorfinden *g*.
Du musst dir halt die Doku/Source zur Datenstruktur anschauen, und dann den gelesenen string stück für stück zerlegen. In bytes, integer und strings.
Im Supportbereich gibt es das aquasuite SDK zum Download, dort sind die Member erläutert und in den Sourcen der myTranslationClasses ist dann der Quellcode dazu wie man die Daten die vom USB gelesen wurden zerlegen muss.
Methode:
public bool CreateStructureFromString(string RawData);

Der Input Report sollte 553 byte lang sein , und der Output Report 377bytes.
so sollten die gelesenen Daten aussehen wenn am ae gerade ein EEprom Reset gemacht worden ist und keine Sensoren angeschlossen sind.

Source code

1
2
3
4
5
6
7
8
9
10
11
12
Lõfter 1  Lõfter 2  Lõfter 3  Lõfter 4  DurchflussSensor 1  Sensor 2  Sensor 3  Sensor 4  Sensor 5  Sensor 6   aquaero@@@@ý–´x€€€€€€€€€€€€„„„„„„t‡ÿÿÿ2
ÿÿÿÿÿÿÿÿèèüüúúúúúúôôôôôô^^^^^^

ÿ
ÿ
ÿ
ÿ))ÿÿÿÿÿÿÿÿÿÿÿÿÿÿ*ªÿÿÿÿÿÿÿÿÿ*ªN N N N N N …




4.07aË—Deu


Sebastian

composer

Full Member

Re: Aquaero + Linux

Thursday, September 22nd 2005, 8:13pm

Quoted

bis auf die Lüfter- und Sensornamen solltest du da auch nix für Menschen lesbares vorfinden *g*.
Richtig! ;-)

Deshalb sollte der obige Output umso mehr verwundern. Hier ist beispielsweise ein hex-dump der obigen Daten (von x-stars):

Source code

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
43 61 73 65 20 20 20 20 20 61 73 65 20 20 20 20
20 61 73 65 20 20 20 20 50 61 73 65 20 20 20 20
50 61 73 65 20 20 20 20 50 61 73 65 20 20 20 20
50 61 73 65 20 20 20 20 50 61 73 65 20 20 20 20
50 61 73 65 20 20 20 20 50 61 73 65 20 20 20 20
50 61 73 65 20 20 20 20 50 61 73 65 20 20 20 20
50 61 73 65 20 20 20 20 50 61 73 65 20 20 20 20
50 61 73 65 20 20 20 20 50 61 73 65 20 20 20 20
50 61 73 65 20 20 20 20 50 61 73 65 20 20 20 20
50 61 73 65 20 20 20 20 31 61 73 65 20 20 20 20
31 61 73 65 20 20 20 20 31 61 73 65 20 20 20 20
31 61 73 65 20 20 20 20 31 61 73 65 20 20 20 20
31 61 73 65 20 20 20 20 31 61 73 65 20 20 20 20
31 61 73 65 20 20 20 20 31 61 73 65 20 20 20 20
31 61 73 65 20 20 20 20 31 61 73 65 20 20 20 20
31 61 73 65 20 20 20 20 20 61 73 65 20 20 20 20
20 61 73 65 20 20 20 20 20 61 73 65 20 20 20 20
20 61 73 65 20 20 20 20 20 61 73 65 20 20 20 20
20 61 73 65 20 20 20 20 20 61 73 65 20 20 20 20
20 61 73 65 20 20 20 20 20 61 73 65 20 20 20 20
20 61 73 65 20 20 20 20 63 61 73 65 20 20 20 20
63 61 73 65 20 20 20 20 63 61 73 65 20 20 20 20
63 61 73 65 20 20 20 20 63 61 73 65 20 20 20 20
63 61 73 65 20 20 20 20 63 61 73 65 20 20 20 20
63 61 73 65 20 20 20 20 63 61 73 65 20 20 20 20
63 61 73 65 20 20 20 20 63 61 73 65 20 20 20 20
63 61 73 65 20 20 20 20 48 61 73 65 20 20 20 20
48 61 73 65 20 20 20 20 48 61 73 65 20 20 20 20
48 61 73 65 20 20 20 20 48 61 73 65 20 20 20 20
48 61 73 65 20 20 20 20 48 61 73 65 20 20 20 20
48 61 73 65 20 20 20 20 48 61 73 65 20 20 20 20
48 61 73 65 20 20 20 20 48 61 73 65 20 20 20 20
48 61 73 65 20 20 20 20 48 61 73 65 20 20 20 20
48 61 73 65 20 20 20 20 48 61 73 65 20 20 20 20
48 61 73 65 20 20 20 20


Die Daten bestehen nur aus Spaces (0x20) dem Teilstring "ase" (0x61 0x73 0x65) sowie ein paar "zufälligen" Bytes, die sich alle kurioserweise nur vor "ase" befinden.
Bei giffi ist die Situation etwas anders (hier stammen die Daten aus einem anderen Ansatz): Am Anfang erkennt man noch Teile des Namens des ersten Lüfters - später kommen dann nur noch 0x00's (oben als Fragezeichen dargestellt).
Hier der hex-dump von giffi:

Source code

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
52 61 64 69 20 31 20 20 20 61 64 69 20 31 20 20 
20 61 64 69 20 31 20 20 20 61 64 69 20 31 20 20 
20 61 64 69 20 31 20 20 20 61 64 69 20 31 20 20 
20 61 64 69 20 31 20 20 20 61 64 69 20 31 20 20 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
00 00 00 00 00 00 00 00



Ach ja, und laut Report-Descriptor (vom aquaero zurückgegeben) hat der input-report eine länge von 552 Bytes:

Source code

1
Item(Global): Report Count, data= [ 0x28 0x02 ] 552


Die 553 Bytes resultieren in Deinem Fall höchst-wahrscheinlich daraus, dass ihr den Report über den Endpoint mittels Interrupt-Transfer liest (dadurch erhöht sich die Report-Größe um eins).
Allerdings erhält man hier unter Linux den Fehler "Message too long"...