• 25.04.2024, 08:30
  • Registrieren
  • Anmelden
  • 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.

Montag, 8. Juli 2013, 09:34

Do not use Report 6, this report control the device, lock unlock, reset, and other things. When you send wrong data, the device can be corruppted.


Thanks for the warning Sebastian. I checked with the user that sent me the captures and they didn't instruct Aquasuite to do any of these things during the captures, so the report 6 contents seem like something being done by Aquasuite during normal runtime.

Montag, 8. Juli 2013, 09:43

The report 6 is has also a command to trigger the save command. Then all settings in the device saved into the internal memory.

Montag, 8. Juli 2013, 09:59

The report 6 is has also a command to trigger the save command. Then all settings in the device saved into the internal memory.


Thanks Sebastian, the save command would seem to be important to know if one were changing the settings.

Once I finish off the device name functionality (I completed adding support for setting the time this weekend) I will likely need to come back to this as modifying the settings is next on my list to add support for.

Freitag, 19. Juli 2013, 22:20

After much hacking, I have finally been able to read out the device names!

It requires sending a report 9 with a specified memory range, then reading out 8 report 12s. The reports are spaced very closely together, and this is somewhat of a non-standard use of HID, so getting something to work was painful. Not to mention that the report 1s are occasionally interleaved in the report 12s so ensuring data integrity of the reports took some work.

Here are the names in the format of array position: name (size) from firmware 1027:

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
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
0:F1 (2 bytes)
1:F2 (2 bytes)
2:F3 (2 bytes)
3:F4 (2 bytes)
4:exit (4 bytes)
5:Menu (4 bytes)
6:back (4 bytes)
7:cancel (6 bytes)
8:learn (5 bytes)
9:dummy (5 bytes)
10:dummy (5 bytes)
11:dummy (5 bytes)
12:dummy (5 bytes)
13:dummy (5 bytes)
14:dummy (5 bytes)
15:dummy (5 bytes)
16:Sensor 1t (9 bytes)
17:Sensor 2 (8 bytes)
18:Sensor 3 (8 bytes)
19:Sensor 4 (8 bytes)
20:Sensor 5 (8 bytes)
21:Sensor 6 (8 bytes)
22:Sensor 7 (8 bytes)
23:Sensor 8 (8 bytes)
24:poweradjust 1 (13 bytes)
25:poweradjust 2 (13 bytes)
26:poweradjust 3 (13 bytes)
27:poweradjust 4 (13 bytes)
28:poweradjust 5 (13 bytes)
29:poweradjust 6 (13 bytes)
30:poweradjust 7 (13 bytes)
31:poweradjust 8 (13 bytes)
32:Software sensor 1t (18 bytes)
33:Software sensor 2t (18 bytes)
34:Software sensor 3t (18 bytes)
35:Software sensor 4t (18 bytes)
36:Software sensor 5t (18 bytes)
37:Software sensor 6t (18 bytes)
38:Software sensor 7t (18 bytes)
39:Software sensor 8t (18 bytes)
40:Virtual sensor 1t (17 bytes)
41:Virtual sensor 2t (17 bytes)
42:Virtual sensor 3t (17 bytes)
43:Virtual sensor 4t (17 bytes)
44:MPS 1 external (14 bytes)
45:MPS 1 internal (14 bytes)
46:MPS 2 external (14 bytes)
47:MPS 2 internal (14 bytes)
48:MPS 3 external (14 bytes)
49:MPS 3 internal (14 bytes)
50:MPS 4 external (14 bytes)
51:MPS 4 Internal (14 bytes)
52:aquastream 1 (12 bytes)
53:aquastream 2 (12 bytes)
54:Sensor 39 (9 bytes)
55:Sensor 40 (9 bytes)
56:Sensor 41 (9 bytes)
57:Sensor 42 (9 bytes)
58:Sensor 43 (9 bytes)
59:Sensor 44 (9 bytes)
60:Fan amplifier 1t (16 bytes)
61:Fan amplifier 2t (16 bytes)
62:Fan amplifier 3t (16 bytes)
63:Fan amplifier 4t (16 bytes)
64:Fan amplifier 5t (16 bytes)
65:Fan amplifier 6 (15 bytes)
66:Fan amplifier 7 (15 bytes)
67:Fan amplifier 8 (15 bytes)
68:Fan amplifier 9 (15 bytes)
69:Fan amplifier 10 (16 bytes)
70:Fan amplifier 11 (16 bytes)
71:Fan amplifier 12 (16 bytes)
72:aquaero CPU (11 bytes)
73:Sensor 58 (9 bytes)
74:Sensor 59 (9 bytes)
75:Sensor 60 (9 bytes)
76:Sensor 61 (9 bytes)
77:Sensor 62 (9 bytes)
78:Sensor 63 (9 bytes)
79:Sensor 64 (9 bytes)
80:Fan 1t (6 bytes)
81:Fan 2t (6 bytes)
82:Fan 3t (6 bytes)
83:Fan 4t (6 bytes)
84:Fan 5t (6 bytes)
85:Fan 6t (6 bytes)
86:Fan 7t (6 bytes)
87:Fan 8 (5 bytes)
88:Fan 9 (5 bytes)
89:Fan 10 (6 bytes)
90:Fan 11 (6 bytes)
91:Fan 12 (6 bytes)
92:Flow 1t (7 bytes)
93:Flow 2t (7 bytes)
94:Flow 3t (7 bytes)
95:Flow 4t (7 bytes)
96:Flow 5t (7 bytes)
97:Flow 6 (6 bytes)
98:Flow 7 (6 bytes)
99:Flow 8 (6 bytes)
100:Flow 9 (6 bytes)
101:Flow 10 (7 bytes)
102:Flow 11 (7 bytes)
103:Flow 12 (7 bytes)
104:Flow 13 (7 bytes)
105:Flow 14 (7 bytes)
106:Profile 1 (9 bytes)
107:Profile 2 (9 bytes)
108:Profile 3 (9 bytes)
109:Profile 4 (9 bytes)
110:aquastream xt 1 (15 bytes)
111:aquastream xt 2 (15 bytes)
112:multiswitch 1 (13 bytes)
113:multiswitch 2 (13 bytes)
114:Target value 1 (14 bytes)
115:Target value 2 (14 bytes)
116:Target value 3 (14 bytes)
117:Target value 4 (14 bytes)
118:Target value 5 (14 bytes)
119:Target value 6 (14 bytes)
120:Target value 7 (14 bytes)
121:Target value 8 (14 bytes)
122:Curve controller 1t (19 bytes)
123:Curve controller 2 (18 bytes)
124:Curve controller 3 (18 bytes)
125:Curve controller 4 (18 bytes)
126:Two point 1 (11 bytes)
127:Two point 2 (11 bytes)
128:Two point 3 (11 bytes)
129:Two point 4 (11 bytes)
130:Two point 5 (11 bytes)
131:Two point 6 (11 bytes)
132:Two point 7 (11 bytes)
133:Two point 8 (11 bytes)
134:Two point 9 (11 bytes)
135:Two point 10 (12 bytes)
136:Two point 11 (12 bytes)
137:Two point 12 (12 bytes)
138:Two point 13 (12 bytes)
139:Two point 14 (12 bytes)
140:Two point 15 (12 bytes)
141:Two point 16 (12 bytes)
142:Preset value 1 (14 bytes)
143:Preset value 2 (14 bytes)
144:Preset value 3 (14 bytes)
145:Preset value 4 (14 bytes)
146:Preset value 5 (14 bytes)
147:Preset value 6 (14 bytes)
148:Preset value 7 (14 bytes)
149:Preset value 8 (14 bytes)
150:Power output 1t (15 bytes)
151:Power output 2t (15 bytes)
152:Normal operation (16 bytes)
153:Warning (7 bytes)
154:Alarm (5 bytes)
155:Alarm/Warning 4 (15 bytes)
156:Alarm/Warning 5 (15 bytes)
157:Alarm/Warning 6 (15 bytes)
158:Alarm/Warning 7 (15 bytes)
159:Alarm/Warning 8 (15 bytes)
160:aquaero 5 (9 bytes)
161:Fill level 1 (12 bytes)
162:Fill level 2 (12 bytes)
163:Fill level 3 (12 bytes)
164:Fill level 4 (12 bytes)
165:Pressure 1 (10 bytes)
166:Pressure 2 (10 bytes)
167:Pressure 3 (10 bytes)
168:Pressure 4 (10 bytes)
169:Humidity 1 (10 bytes)
170:Humidity 2 (10 bytes)
171:Humidity 3 (10 bytes)
172:Humidity 4 (10 bytes)
173:Water quality 1 (15 bytes)
174:Water quality 2 (15 bytes)
175:Water quality 3 (15 bytes)
176:Water quality 4 (15 bytes)
177:mps D5 - 1 (10 bytes)
178:mps D5 - 2 (10 bytes)
179:mps D5 - 3 (10 bytes)
180:mps D5 - 4 (10 bytes)


Note: I added "t" to the end of some names during testing.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »JinTu« (19. Juli 2013, 22:22)

Montag, 13. April 2015, 19:26

Hello,

I've made modification to have aquaero working under linux with FW 2002...
The mapping changed, and the sensor names are not reported the same way.

To Aquacomputer guys, I have a question: Is it possible to have a kind of mapping or structure describing the sensors mapping?
I've found a C structure in the SDK, data_layout_1200.h,, but it is not exactly matching unfortunately.

Thank you!

Dienstag, 14. April 2015, 07:01

this layout match exact to the current firmware.
but the read out the sensor names is not possible/allowed for 3rd party software.

Dienstag, 14. April 2015, 20:17

this layout match exact to the current firmware.
but the read out the sensor names is not possible/allowed for 3rd party software.
Thank you, maybe I was not looking at the correct structure then?
I was looking to the following file:
https://github.com/aquacomputer/plugin_s…a_layout_1200.h
struct OutData matches up to "temperatures", but not for "fans"...
So I deduced that something was missing between the "temperatures" field and "fans" field...
Also I see 3 strange "." at the end of the structure definition...

Dienstag, 14. April 2015, 21:16

struct OutData matches up to "temperatures", but not for "fans"...
All data are byte aligned without any gaps.
You have to fill your struct in the same way as the description: important ar the different data types: uint16_t uint32_t,...
Also I see 3 strange "." at the end of the structure definition...
after reading the last data

Quellcode

1
int16_t curve[4];                //curve controller

are some bytes of data for internal handling. this bytes has no relevant informations.

Mittwoch, 15. April 2015, 22:12

Yes, I paid attention to this... strange...

In fact, I was too lazy to count manually the offsets and used gcc to count for me, taking care of byte aligning the structure using some like that:
#pragma pack(1) before include the header file

and
struct outData* pdata = (struct ouData*)NULL;

then printf("%x", &(pdata->m_curve)); will print the offset of curve for example :)


I've just redonne the computation of the offsets manually, and I find 0x167 bytes for Fans (and by the way I suppose that FAN_COUNT is 4?), while by experimenting, we find an offset of 0x173 bytes... strange isn't it?
the offset of temperatures field (0x65 bytes) is correct by the way.

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »fariouche« (15. April 2015, 22:28)

Freitag, 1. Mai 2015, 23:04

sorry, my mistake :).... the offsets are indeed correct

thanks

Ähnliche Themen