Re: FoldWatcher is out!!! (The ULTIMATE Monitoring Environment..
Posted: Wed May 21, 2008 12:49 am
Sorry guys! I have fixed and uploaded again the corrected package WITH the libraries/DLLs!!! Please inform me IF it works now...
Community driven support forum for Folding@home
https://foldingforum.org/
Yes, this DOS windows is really irritating. But I have now to find out WHY it opens, 'coz in the genuine Linux version, it simply doesn't exist. However, after porting and modifying the code a bit for Windows, it opens...Loaded it up on windows and runs fine. It does have a dos window that stays open that is sorta irritating but I can live with that .
The only suggestion I see is perhaps making the clients columns sortable perhaps?
Other then that it looks great!
Yes, this is a somewhat a problem. I'm currently trying to fix it by downloading the psummary. It' s just a parsing issue, nothing complex.Unless I'm missing something, it doesn't appear to be able to update it's WU database on the fly. New projects are released often enough that it should be able to.
Well, I understand that. However, when you are programming, it' s inevitable that - at least for the first time - you are thinking of your OWN pc, which means that you take for granted what exists in YOUR installation. I myself DO HAVE /etc/init.d/folding installed, so this message played a somehow "debugging" role.Of course, it is annoying and I' ll remove it, by saving the status in some file (that... "it doesn't exist") so that the message box doesn't pop up each time at start-up.I also can do without having it remind me that I don't have /etc/init.d/folding every time it starts up. I already know this.
Thanks a lot!Other than that, it looks like you have the makings of a great little program here and I'm looking forward to seeing what's in store with future upgrades. Thanks!
No third party client can monitor the PS3 because there is no way to get at the WU progress without using something ugly like screen scraping.mmonnin wrote:Can it monitor a PS3 by chance? I have no idea if other clients can even do that either.
Is the folderwatcher.exe in a command window necessary??
1) means just that it's the first time you' re running the program (sort of a "start-up screen"). It's not an error.Doesn't work with Gentoo / Xfce4. I get three errors: 1) Configuartion file (foldwatcher.cfg) was not found; 2)/etc/init.d/folding script not found! Either no F@H client is installed or clients where not installed using the 'finstall' script; 3) I couldn't detect any system tray on this system. After acknowledging all three messages, the application closes.
I'd really like to use it, but I won't use 'finstall' and won't use anything but Xfce4. Any workaround?
You' re welcome, my friend. However, I suppose Windows users should thank me first for making (although a BETA one) release for their OS. Just joking I myself am a Linux user too, who after a lot of years playing with Microsoft's toy, decided to make the full conversion. I'm really NOT sure WHY it took me so long to throw away all this crap. Yes, you' re right, most apps don't really think of Linux users. On the other hand, the power I loved in Linux was that I could really change and create whatever I wanted. Of course, I don't consider myself not even an intermediate Linux user but the more I'm playing with it, the more I'm getting addicted to it. So - no matter what happens - the Linux audience is my first PRIORITY.And I forgot to add my most important thought. Thank you for thinking of us Linux users, a lot of the 3rd party tools don't.
Yep, this is something I didn't notice. It doesn't actually APPLY the settings, but what you see when opening the preferences window is unfortunately the default ones. TO BE FIXED.Windows Client:
Every time the preferences window is opened it loads the default settings instead of the user defined options so the animation always wants to come back on.
Can it monitor a PS3 by chance? I have no idea if other clients can even do that either.
Is the folderwatcher.exe in a command window necessary??
What you need to do is add this to the CFLAGS when you compile the windows version: (source)drkameleon wrote:No, it's not. And I have ABSOLUTELY NO IDEA why it pops up, as the original Linux version does NOT include that. I hope I' ll find out soon the buggy part.Windows Client:
Is the folderwatcher.exe in a command window necessary??
Code: Select all
-Wl,-subsystem,windows
I' ll test it as soon as possible (when I reboot in my windows partition...)What you need to do is add this to the CFLAGS when you compile the windows version: (source)
Code: Select all
-Wl,-subsystem,windows
That should remove that console window.
I've had a look at your app and its code, as it looked like the "InCrease for Linux" app is here nowdrkameleon wrote:Yes, EVERYTHING is parsed... and ALL code is genuine (written by me...)! Moreover FoldWatcher is entirely written in C++ using Qt libraries, so I couldn't actually use any existing F@H monitor's code. I just had a look at F@H documentation... (queue.dat structure, wuinfo_0X.dat, etc)Ivoshiee wrote:Interesting.
Do you parse the logs, WU data, ... with your own code or use the qd for that?
Can you monitor remote clients?
[...]
Have you tested it? I really look forward to hear your comments...
Code: Select all
1 // FoldWatcher
2 // ---------------------
3 // Coded by Dr.K@meleon <drkameleon@hotmail.com>
4 //
5 // homepage : http://kameleon-nest.blogspot.com
6 // http://sourceforge.net/projects/foldwatcher/
7 // ============================
8 // Filename : fahQueue.h
9 // Last Update : 17/05/2008
10 //
11 // -----------------------------------------------------------------
12 // This program is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This program is distributed in the hope that it will be useful,
18 // but WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 // You should have received a copy of the GNU General Public License
23 // along with this program. If not, see <http://www.gnu.org/licenses/>.
24 //
25 // Copyright (C) 2008 by Dr.K@meleon
26 // ========================================================
27
28 #ifndef __FAHQUEUE_H__
29 #define __FAHQUEUE_H__
30
31 #define le2(x) ((((x)[1]&0xFF)<<8)|((x)[0]&0xFF))
32 #define le4(x) (((x)[3]<<24)|(((x)[2]&0xFF)<<16)|(((x)[1]&0xFF)<<8)|((x)[0]&0xFF))
33 #define be4(x) (((x)[0]<<24)|(((x)[1]&0xFF)<<16)|(((x)[2]&0xFF)<<8)|((x)[3]&0xFF))
34
35 struct queueformat
36 {
37 quint32 version; /**< 0000 Queue (client) version (v2.17 and above) */
38 quint32 current; /**< 0004 Current index number */
39 struct qs
40 {
41 quint32 stat; /**< 000 Status */
42 char z004[4]; /**< 004 Pad for Windows, others as of v4.01 */
43 quint32 tdata[8]; /**< 008 Time data (epoch 0000 1jan00 UTC) */
44 quint32 svr1; /**< 040 Server IP address (until v3.0) */
45 quint32 ustat; /**< 044 Upload status */
46 char url[128]; /**< 048 Web address for core downloads */
47 quint32 m176; /**< 176 Misc1a */
48 quint32 core; /**< 180 Core_xx number (hex) */
49 quint32 m184; /**< 184 Misc1b */
50 quint32 dsiz; /**< 188 wudata_xx.dat file size */
51 char z192[16];
52 union
53 {
54 struct
55 {
56 char proj[2]; /**< 208 Project number (LE) */
57 char run[2]; /**< 210 Run (LE) */
58 char clone[2]; /**< 212 Clone (LE) */
59 char gen[2]; /**< 214 Generation (LE) */
60 char issue[2][4]; /**< 216 WU issue time (LE) */
61 } f; /**< Folding@home data */
62 struct
63 {
64 char proj[2]; /**< 208 Project number (LE) */
65 quint16 miscg1; /**< 210 Miscg1 */
66 char issue[2][4]; /**< 212 WU issue time (LE) */
67 quint16 miscg2; /**< 220 Miscg2 */
68 quint16 miscg3; /**< 222 Miscg3 */
69 } g; /**< Genome@home data */
70 } wuid; /**< 208 Work unit ID path information */
71 char z224[36];
72 char mid[4]; /**< 260 Machine ID (LE) */
73 unsigned char svr2[4]; /**< 264 Server IP address */
74 quint32 port; /**< 268 Server port number */
75 char type[64]; /**< 272 Work unit type */
76 char uname[64]; /**< 336 User Name */
77 char teamn[64]; /**< 400 Team Number */
78 char uid[8]; /**< 464 Stored ID for unit (UserID + MachineID) (LE or BE, usually BE) */
79 char bench[4]; /**< 472 Benchmark (as of v3.24) (LE) */
80 char m476[4]; /**< 476 Misc3b (unused as of v3.24) (LE) */
81 quint32 cpu_type; /**< 480 CPU type (LE or BE, sometimes 0) */
82 quint32 os_type; /**< 484 OS type (LE or BE, sometimes 0) */
83 quint32 cpu_spec; /**< 488 CPU species (LE or BE, sometimes 0) */
84 quint32 os_spec; /**< 492 OS species (LE or BE, sometimes 0) */
85 quint32 expire; /**< 496 Allowed time to return (seconds) */
86 char z500[8];
87 char aiflag[4]; /**< 508 Assignment info present flag (LE or BE) */
88 char aitime[4]; /**< 512 Assignment timestamp (LE or BE) */
89 char aidata[4]; /**< 516 Assignment info (LE or BE) */
90 char csip[4]; /**< 520 Collection server IP address (as of v5.00) (LE) */
91 char dstart[4]; /**< 524 Download started time (as of v5.00) (BE) */
92 char z528[16];
93 char cores[4]; /**< 544 Number of SMP cores (as of v5.91) (BE) */
94 char tag[16]; /**< 548 Tag of Work Unit (as of v5.00) */
95 char z564[52];
96 char memory[4]; /**< 616 Available memory (as of v6.00) (BE) */
97 char z620[68];
98 quint32 due[4]; /**< 688 WU expiration time */
99 quint32 plimit; /**< 704 Packet size limit (as of v5.00) */
100 quint32 uploads; /**< 708 Number of upload failures (as of v5.00) */
101 } entry[10]; /**< 0008 Array of ten queue entries */
102 quint32 pfract; /**< 7128 Performance fraction (as of v3.24) */
103 quint32 punits; /**< 7132 Performance fraction unit weight (as of v3.24) */
104 quint32 drate; /**< 7136 Download rate sliding average (as of v4.00) */
105 quint32 dunits; /**< 7140 Download rate unit weight (as of v4.00) */
106 quint32 urate; /**< 7144 Upload rate sliding average (as of v4.00) */
107 quint32 uunits; /**< 7148 Upload rate unit weight (as of v4.00) */
108 char z7152[16]; /**< 7152 (as of v5.00) ...all zeros after queue conversion... */
109 };
Code: Select all
1 /* <qd.c> 9jun05
2 **
3 ** Program to dump data from Folding@home <queue.dat> file.
4 ** It will poke around at other files too, if it can find them.
5 **
6 ** Copyright (C) 2002-2005 Richard P. Howell IV.
7 ** Copyright (C) 2005-2008 Sebastiaan Couwenberg
8 ** This is free software; you can distribute it and/or modify it under
9 ** the terms of the GNU General Public License. There is no warranty
10 ** whatsoever.
[...]
98 #define be4(x) (((x)[0]<<24)|(((x)[1]&0xFF)<<16)|(((x)[2]&0xFF)<<8)|((x)[3]&0xFF))
99 #define le4(x) (((x)[3]<<24)|(((x)[2]&0xFF)<<16)|(((x)[1]&0xFF)<<8)|((x)[0]&0xFF))
100 #define le2(x) ((((x)[1]&0xFF)<<8)|((x)[0]&0xFF))
101 #define exch(x, y, t) {t=x;x=y;y=t;}
[...]
135 /* Structure of <queue.dat> file */
136
137 typedef unsigned int u32;
138 typedef unsigned short u16;
139
140 struct qf
141 { u32 version; /* 0000 Queue (client) version (v2.17 and above) */
142 u32 current; /* 0004 Current index number */
143 struct qs
144 { u32 stat; /* 000 Status */
145 char use_cores[4]; /* 004 Pad for Windows, others as of v4.01, as of v6.01 number of SMP Cores to use (LE) */
146 u32 tdata[8]; /* 008 Time data (epoch 0000 1jan00 UTC) */
147 u32 svr1; /* 040 Server IP address (until v3.0) */
148 u32 ustat; /* 044 Upload status */
149 char url[128]; /* 048 Web address for core downloads */
150 u32 m176; /* 176 Misc1a */
151 u32 core; /* 180 Core_xx number (hex) */
152 u32 m184; /* 184 Misc1b */
153 u32 dsiz; /* 188 wudata_xx.dat file size */
154 char z192[16];
155 union
156 { struct
157 { char proj[2]; /* 208 Project number (LE) */
158 char run[2]; /* 210 Run (LE) */
159 char clone[2]; /* 212 Clone (LE) */
160 char gen[2]; /* 214 Generation (LE) */
161 char issue[2][4]; /* 216 WU issue time (LE) */
162 } f; /* Folding@home data */
163 struct
164 { char proj[2]; /* 208 Project number (LE) */
165 u16 miscg1; /* 210 Miscg1 */
166 char issue[2][4]; /* 212 WU issue time (LE) */
167 u16 miscg2; /* 220 Miscg2 */
168 u16 miscg3; /* 222 Miscg3 */
169 } g; /* Genome@home data */
170 } wuid; /* 208 Work unit ID information */
171 char z224[36];
172 char mid[4]; /* 260 Machine ID (LE) */
173 u32 svr2; /* 264 Server IP address */
174 u32 port; /* 268 Server port number */
175 char type[64]; /* 272 Work unit type */
176 char uname[64]; /* 336 User Name */
177 char teamn[64]; /* 400 Team Number */
178 char uid[8]; /* 464 Stored ID for unit (UserID + MachineID) (LE or BE, usually BE) */
179 char bench[4]; /* 472 Benchmark (as of v3.24) (LE) */
180 char m476[4]; /* 476 Misc3b (unused as of v3.24) (LE); Benchmark (as of v5.00) (BE) */
181 u32 cpu_type; /* 480 CPU type (LE or BE, sometimes 0) */
182 u32 os_type; /* 484 OS type (LE or BE, sometimes 0) */
183 u32 cpu_spec; /* 488 CPU species (LE or BE, sometimes 0) */
184 u32 os_spec; /* 492 OS species (LE or BE, sometimes 0) */
185 u32 expire; /* 496 Allowed time to return (seconds) */
186 char z500[8];
187 char aiflag[4]; /* 508 Assignment info present flag (LE or BE) */
188 char aitime[4]; /* 512 Assignment timestamp (LE or BE) */
189 char aidata[4]; /* 516 Assignment info (LE or BE) */
190 char csip[4]; /* 520 Collection server IP address (as of v5.00) (LE) */
191 char dstart[4]; /* 524 Download started time (as of v5.00) (BE) */
192 char z528[16];
193 char cores[4]; /* 544 Number of SMP cores (as of v5.91) (BE) */
194 char tag[16]; /* 548 Tag of Work Unit (as of v5.00) */
195 char z564[16];
196 char passkey[32]; /* 580 Passkey (as of v6.00) */
197 char flops[4]; /* 612 Flops per CPU (core) (as of v6.00) (BE) */
198 char memory[4]; /* 616 Available memory (as of v6.00) (BE) */
199 char z620[68];
200 u32 due[4]; /* 688 WU expiration time */
201 u32 plimit; /* 704 Packet size limit (as of v5.00) */
202 u32 uploads; /* 708 Number of upload failures (as of v5.00) */
203 } entry[10]; /* 0008 Array of ten queue entries */
204 u32 pfract; /* 7128 Performance fraction (as of v3.24) */
205 u32 punits; /* 7132 Performance fraction unit weight (as of v3.24) */
206 u32 drate; /* 7136 Download rate sliding average (as of v4.00) */
207 u32 dunits; /* 7140 Download rate unit weight (as of v4.00) */
208 u32 urate; /* 7144 Upload rate sliding average (as of v4.00) */
209 u32 uunits; /* 7148 Upload rate unit weight (as of v4.00) */
210 char results_sent[4]; /* 7152 Results successfully sent (after upload failures) (as of v5.00) (LE) */
211 char z7156[12]; /* 7156 (as of v5.00) ...all zeros after queue conversion... */
212 } qbuf;
Code: Select all
1 // FoldWatcher
2 // ---------------------
3 // Coded by Dr.K@meleon <drkameleon@hotmail.com>
4 //
5 // homepage : http://kameleon-nest.blogspot.com
6 // http://sourceforge.net/projects/foldwatcher/
7 // ============================
8 // Filename : fahWuinfo.h
9 // Last Update : 17/05/2008
10 //
11 // -----------------------------------------------------------------
12 // This program is free software: you can redistribute it and/or modify
13 // it under the terms of the GNU General Public License as published by
14 // the Free Software Foundation, either version 3 of the License, or
15 // (at your option) any later version.
16 //
17 // This program is distributed in the hope that it will be useful,
18 // but WITHOUT ANY WARRANTY; without even the implied warranty of
19 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 // GNU General Public License for more details.
21 //
22 // You should have received a copy of the GNU General Public License
23 // along with this program. If not, see <http://www.gnu.org/licenses/>.
24 //
25 // Copyright (C) 2008 by Dr.K@meleon
26 // ========================================================
27
28 #ifndef __FAHWUINFO_H__
29 #define __FAHWUINFO_H__
30
31 struct wuformat
32 { quint32 core; /* 000 Core number */
33 char pname[80]; /* 004 Project (protein) name */
34 quint32 tsteps; /* 084 Total steps */
35 quint32 csteps; /* 088 Completed steps */
36 char z092[420]; /* 092 */
37 };
Code: Select all
20 struct wif
21 { u32 core; /* 000 Core number */
22 char pname[80]; /* 004 Project (protein) name */
23 u32 tsteps; /* 084 Total steps */
24 u32 csteps; /* 088 Completed steps */
25 char z092[420]; /* 092 */
26 };
May this be a kind request to give credit to the original authors, especially Dick Howell, as all other developers have done who are using (parts of) his code. InCrease did it, FahMon did it, finstall did it, Gkrellfah2 did it, kfolding did it, you get the point. It's very rude to claim credit for other peoples work, and to disrespect their copyright by leaving out their name.http://rph.linuxminded.nl/fah.html wrote:This is free software; you can distribute it and/or modify it under the terms of the GNU Public License. There is no warranty. If it breaks, as they say, you get to keep the pieces.
Credit is a funny issue. It ASSUMES that you know the origin of the data. He said in his first post that he used the FAH documentation. He just assumed that the documentation came from Stanford rather than from Dick Howell. That's a easy mistake to make.smoking2000 wrote:I saw that your app is using code from qd, so it's good courtesy to give credit where credit is due.
drkameleon wrote:FoldWatcher is entirely written in C++ using Qt libraries, so I couldn't actually use any existing F@H monitor's code. I just had a look at F@H documentation... (queue.dat structure, wuinfo_0X.dat, etc)