BOINC SETI screen

CF Tech

Administrator
Would anyone be interested in doing a BOINC SETI screen?

I think it can be done with the RegExp. Here is the kind of file that would be needed to be parsed ( c:\program files\boinc\client_state.xml ). Ideally anything in this file would be able to be shown:
Code:
<client_state>
<host_info>
    <timezone>-28800</timezone>
    <domain_name>elation</domain_name>
    <ip_addr>10.10.10.12</ip_addr>
    <host_cpid>bdf2c1f0aa07cd2aa12dc68996dbd37f</host_cpid>
    <p_ncpus>1</p_ncpus>
    <p_vendor>AuthenticAMD</p_vendor>
    <p_model>AMD Athlon(tm) XP 2400+</p_model>
    <p_fpops>1809369951.534733</p_fpops>
    <p_iops>3094058300.544543</p_iops>
    <p_membw>1000000000.000000</p_membw>
    <p_fpop_err>0</p_fpop_err>
    <p_iop_err>0</p_iop_err>
    <p_membw_err>0</p_membw_err>
    <p_calculated>1128643236.453125</p_calculated>
    <os_name>Microsoft Windows 2000</os_name>
    <os_version>Professional Edition, Service Pack 4, (05.00.2195.00)</os_version>
    <m_nbytes>1073201152.000000</m_nbytes>
    <m_cache>1000000.000000</m_cache>
    <m_swap>4294967295.000000</m_swap>
    <d_total>80014737408.000000</d_total>
    <d_free>29842472960.000000</d_free>
</host_info>
<time_stats>
    <on_frac>0.841100</on_frac>
    <connected_frac>0.999994</connected_frac>
    <active_frac>0.313123</active_frac>
    <last_update>1128736114.609375</last_update>
</time_stats>
<net_stats>
    <bwup>3841.6</bwup>
    <bwdown>272588</bwdown>
</net_stats>
<project>
    <master_url>[url]http://setiathome.berkeley.edu/[/url]</master_url>
    <project_name>SETI@home</project_name>
    <user_name>baxsie</user_name>
    <team_name>TeAm AnandTech</team_name>
    <email_hash>40109f5c4e45388a371ecc8f22549752</email_hash>
    <cross_project_id>4cf16a3c688df62c29aaae2bfcda336b</cross_project_id>
    <user_total_credit>392832.699243</user_total_credit>
    <user_expavg_credit>1465.145817</user_expavg_credit>
    <user_create_time>960316814.000000</user_create_time>
    <rpc_seqno>1602</rpc_seqno>
    <hostid>1123225</hostid>
    <host_total_credit>8571.561621</host_total_credit>
    <host_expavg_credit>89.732005</host_expavg_credit>
    <host_create_time>1120007273.000000</host_create_time>
    <exp_avg_cpu>33019.893630</exp_avg_cpu>
    <exp_avg_mod_time>1125646554.000000</exp_avg_mod_time>
    <nrpc_failures>0</nrpc_failures>
    <master_fetch_failures>0</master_fetch_failures>
    <min_rpc_time>1128733606.687500</min_rpc_time>
    <short_term_debt>0.000000</short_term_debt>
    <long_term_debt>0.000000</long_term_debt>
    <resource_share>100.000000</resource_share>
    <scheduler_url>[url]http://setiboinc.ssl.berkeley.edu/sah_cgi/cgi[/url]</scheduler_url>
    <code_sign_key>
1024
eb363c5c50af51976b50edeaf169274329a2c15721585e20694abd7d1eda7e22
6c0d0b39836ffe044743efe4abdae0176f7433e308aea9f686338f944eef2d2a
f9ad8e452579e9a641f0cf6fe4d636489c64c1a47dba985175cbfbda9ad459f8
e1553cdb9096b0b057088db58799ed90b91fc0fe9925ab288236f995a781ec05
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000010001
.
</code_sign_key>
</project>
<app>
    <name>setiathome</name>
</app>
<file_info>
    <name>setiathome_4.18_windows_intelx86.exe</name>
    <nbytes>704512.000000</nbytes>
    <max_nbytes>0.000000</max_nbytes>
    <status>1</status>
    <executable/>
    <signature_required/>
    <file_signature>
6682f4561637ddf85196e0c61c5ac83fbf9238a9ded6e388200d6e487085360e
32450e221d31133c8ba278068ce7d6330ab48e3efe9ddc89af7381d699d7b1d4
abc9f09b2bac5e4a93a4cc8df1ef7c86057fb324e5d492bc6056ff03a5544d58
85d521ff83dfac1fcc524a9d2b3e145219895953513779bd03d4fcaf90ab08d7
.
</file_signature>
    <url>[url]http://setiboincdata.ssl.berkeley.edu/sah/download_fanout/setiathome_4.18_windows_intelx86.exe[/url]</url>
</file_info>
<file_info>
    <name>better_banner.jpg</name>
    <nbytes>7446.000000</nbytes>
    <max_nbytes>0.000000</max_nbytes>
    <status>1</status>
    <signature_required/>
    <file_signature>
e1a020b1741a1925764e7d1a675ca4f0cab47d34c8306f591a5d33819214c369
ffd4314b4705b6742c1ca5194d6edc403ce33fa7f2354a1a6d6982536a23f7f8
2bc665d026c5b8545866f3f2ea4a0f2ebbf13cf46c86df9f7960f2f1c99b1634
b4c6a30cb41ec0911e5f97befa7f3f00792745af8b938354d44bc1a53e899bdf
.
</file_signature>
    <url>[url]http://setiboincdata.ssl.berkeley.edu/sah/download_fanout/better_banner.jpg[/url]</url>
</file_info>
<file_info>
    <name>setiathome_4.18_windows_intelx86.pdb</name>
    <nbytes>2624512.000000</nbytes>
    <max_nbytes>0.000000</max_nbytes>
    <status>1</status>
    <signature_required/>
    <file_signature>
6bb8457da310c33d80bf82f7df73c7606986c0741174ddb795a0de60dd0cb428
2339721d20a9f4b249e92341970a0f9ef699e9c0f84ccaffa5f9488a2a3064b4
dfc8215243f842e60856bd35381b815cbbbbbe8b9db5994d9ac29a8b9dd45b6e
280f46ddbe36e8bb6a66402bce5399c5c204c6c2ad776326c472d835d697d2c2
.
</file_signature>
    <url>[url]http://setiboincdata.ssl.berkeley.edu/sah/download_fanout/setiathome_4.18_windows_intelx86.pdb[/url]</url>
</file_info>
<file_info>
    <name>18oc03ab.11910.19409.848566.229</name>
    <nbytes>361983.000000</nbytes>
    <max_nbytes>0.000000</max_nbytes>
    <md5_cksum>501962273a39527d03a483d2105a5eb5</md5_cksum>
    <status>1</status>
    <url>[url]http://setiboincdata.ssl.berkeley.edu/sah/download_fanout/3b1/18oc03ab.11910.19409.848566.229[/url]</url>
</file_info>
<file_info>
    <name>18oc03ab.11910.19409.848566.229_0_0</name>
    <nbytes>0.000000</nbytes>
    <max_nbytes>65536.000000</max_nbytes>
    <generated_locally/>
    <status>0</status>
    <upload_when_present/>
    <url>[url]http://setiboincdata.ssl.berkeley.edu/sah_cgi/file_upload_handler[/url]</url>
    <signed_xml>
  <name>18oc03ab.11910.19409.848566.229_0_0</name>
  <generated_locally/>
  <upload_when_present/>
  <max_nbytes>65536</max_nbytes>
  <url>[url]http://setiboincdata.ssl.berkeley.edu/sah_cgi/file_upload_handler[/url]</url>
    </signed_xml>
    <xml_signature>
4453cf8be88818852c43f5075e798abb02b12c1cc778d0294a9f3a4e69f2e9c9
681cef137d8d6ff049b61a0df01404336cb913de4bb8bff59ceebc8cd037d90e
6cdd0f7f8ad905542c50dda63c65fec0dbbb6c9c6c311cb2dfae9e4d194e9af6
e83ae40e5f73f482ef38739a50c0c1a324ecde33e44dbf298818de78c054ab69
.
    </xml_signature>
</file_info>
<file_info>
    <name>19fe04ab.3149.6434.865918.221</name>
    <nbytes>362122.000000</nbytes>
    <max_nbytes>0.000000</max_nbytes>
    <md5_cksum>d7d25544df286be087c5aa008f6c2a75</md5_cksum>
    <status>1</status>
    <url>[url]http://setiboincdata.ssl.berkeley.edu/sah/download_fanout/20a/19fe04ab.3149.6434.865918.221[/url]</url>
</file_info>
<file_info>
    <name>19fe04ab.3149.6434.865918.221_0_0</name>
    <nbytes>0.000000</nbytes>
    <max_nbytes>65536.000000</max_nbytes>
    <generated_locally/>
    <status>0</status>
    <upload_when_present/>
    <url>[url]http://setiboincdata.ssl.berkeley.edu/sah_cgi/file_upload_handler[/url]</url>
    <signed_xml>
  <name>19fe04ab.3149.6434.865918.221_0_0</name>
  <generated_locally/>
  <upload_when_present/>
  <max_nbytes>65536</max_nbytes>
  <url>[url]http://setiboincdata.ssl.berkeley.edu/sah_cgi/file_upload_handler[/url]</url>
    </signed_xml>
    <xml_signature>
160cc8d1655b761d09b58d571a9fbccb68d607a8655e84031434808f06aed955
fe10ccbd0b37243f1e0ca361c56c3e82202c3bf7860924e448986bce4c68602f
998c47e0fa254914fcfa7d80dd624767c6b99040bcbb778f8e18fa2e8b662fec
1c08e2f1784bb37f14388e30be9d2ff2a765ef54c4d9272028a03b5b80119bce
.
    </xml_signature>
</file_info>
<app_version>
    <app_name>setiathome</app_name>
    <version_num>418</version_num>
    <file_ref>
        <file_name>setiathome_4.18_windows_intelx86.exe</file_name>
        <main_program/>
    </file_ref>
    <file_ref>
        <file_name>better_banner.jpg</file_name>
        <open_name>seti_logo</open_name>
    </file_ref>
    <file_ref>
        <file_name>setiathome_4.18_windows_intelx86.pdb</file_name>
        <open_name>setiathome_4.18_windows_intelx86.pdb</open_name>
    </file_ref>
</app_version>
<workunit>
    <name>18oc03ab.11910.19409.848566.229</name>
    <app_name>setiathome</app_name>
    <version_num>418</version_num>
    <rsc_fpops_est>27924800000000.000000</rsc_fpops_est>
    <rsc_fpops_bound>446797000000000.000000</rsc_fpops_bound>
    <rsc_memory_bound>67108864.000000</rsc_memory_bound>
    <rsc_disk_bound>500000.000000</rsc_disk_bound>
    <file_ref>
        <file_name>18oc03ab.11910.19409.848566.229</file_name>
        <open_name>work_unit.sah</open_name>
    </file_ref>
</workunit>
<workunit>
    <name>19fe04ab.3149.6434.865918.221</name>
    <app_name>setiathome</app_name>
    <version_num>418</version_num>
    <rsc_fpops_est>27924800000000.000000</rsc_fpops_est>
    <rsc_fpops_bound>446797000000000.000000</rsc_fpops_bound>
    <rsc_memory_bound>67108864.000000</rsc_memory_bound>
    <rsc_disk_bound>500000.000000</rsc_disk_bound>
    <file_ref>
        <file_name>19fe04ab.3149.6434.865918.221</file_name>
        <open_name>work_unit.sah</open_name>
    </file_ref>
</workunit>
<result>
    <name>18oc03ab.11910.19409.848566.229_0</name>
    <final_cpu_time>0.000000</final_cpu_time>
    <exit_status>0</exit_status>
    <state>2</state>
    <wu_name>18oc03ab.11910.19409.848566.229</wu_name>
    <report_deadline>1129942064.000000</report_deadline>
    <file_ref>
        <file_name>18oc03ab.11910.19409.848566.229_0_0</file_name>
        <open_name>result.sah</open_name>
    </file_ref>
</result>
<result>
    <name>19fe04ab.3149.6434.865918.221_0</name>
    <final_cpu_time>0.000000</final_cpu_time>
    <exit_status>0</exit_status>
    <state>2</state>
    <wu_name>19fe04ab.3149.6434.865918.221</wu_name>
    <report_deadline>1129942672.000000</report_deadline>
    <file_ref>
        <file_name>19fe04ab.3149.6434.865918.221_0_0</file_name>
        <open_name>result.sah</open_name>
    </file_ref>
</result>
<active_task_set>
<active_task>
    <project_master_url>[url]http://setiathome.berkeley.edu/[/url]</project_master_url>
    <result_name>18oc03ab.11910.19409.848566.229_0</result_name>
    <active_task_state>1</active_task_state>
    <app_version_num>418</app_version_num>
    <slot>0</slot>
    <scheduler_state>2</scheduler_state>
    <checkpoint_cpu_time>3613.640625</checkpoint_cpu_time>
    <fraction_done>0.651132</fraction_done>
    <current_cpu_time>3614.390625</current_cpu_time>
    <vm_bytes>0.000000</vm_bytes>
    <rss_bytes>0.000000</rss_bytes>
   <supports_graphics/>
   <graphics_mode_acked>1</graphics_mode_acked>
</active_task>
</active_task_set>
<platform_name>windows_intelx86</platform_name>
<core_client_major_version>4</core_client_major_version>
<core_client_minor_version>45</core_client_minor_version>
<user_run_request>1</user_run_request>
<user_network_request>2</user_network_request>
<proxy_info>
    <socks_version>5</socks_version>
    <socks_server_name></socks_server_name>
    <socks_server_port>80</socks_server_port>
    <http_server_name></http_server_name>
    <http_server_port>80</http_server_port>
    <socks5_user_name></socks5_user_name>
    <socks5_user_passwd></socks5_user_passwd>
    <http_user_name></http_user_name>
    <http_user_passwd></http_user_passwd>
</proxy_info>
</client_state>
ref: https://forum.crystalfontz.com/showthread.php?s=&postid=11662#post11662
Looking for additional LCD resources? Check out our LCD blog for the latest developments in LCD technology.
 

jc634

Administrator
xml should be no problem. Appears to be a simple listing to use regex (I probably shouldn't have said that!;) ).

I havent't touched regex since I got the weather screens working, but I *think* I can remember enough.

That said, in order to display a screen, one would have to know which lines to display, so...

Which lines?

Jim
 

CF Tech

Administrator
Maybe something like this set of three screens:
Code:
[b]A[/b]    <domain_name>Mr-Hyde</domain_name>
[i]Name of the local machine[/i]

[b]B[/b]    <on_frac>0.957592</on_frac>
[i]% of time the machine is powered up: display as % and bar graph[/i]

[b]C[/b]    <connected_frac>0.960662</connected_frac>
[i]% of power up time the machine is connected to internet: display as % and bar graph[/i]

[b]D[/b]    <active_frac>0.885242</active_frac>
[i]% of power up time the machine is connected crunching SETI units: display as % and bar graph[/i]

[b]E[/b]    <host_total_credit>14067.943588</host_total_credit>
[i]# of units this machine has crunched[/i]

[b]F[/b]    <host_expavg_credit>177.224917</host_expavg_credit>
[i]rate that this machine is crunching units[/i]

[b]G[/b]    <project_name>SETI@home</project_name>
[i]Name of project (BOINC supports projects other than SETI)[/i]

[b]H[/b]    <user_name>baxsie</user_name>
[i]Name of user (one user may have several hosts/computers crunching)[/i]

[b]I[/b]    <team_name>TeAm AnandTech</team_name>
[i]Name of team (users can be a member of a team)[/i]

[b]J[/b]    <user_total_credit>392944.224353</user_total_credit>
[i]# of units all this user's machines have crunched[/i]

[b]K[/b]    <user_expavg_credit>1462.955271</user_expavg_credit>
[i]rate that all of this user's machines are crunching units[/i]

[b]L[/b]    <fraction_done>0.685873</fraction_done>
[i]percent completion of this unit: display as % and bar graph[/i]


[b]M[/b]     <user_run_request>2</user_run_request>
[i]the "on" switch:

   1 = Run Always
   2 = Run based on prefrences
   3 = Suspended[/i]


Screen 1, assuming 20x4

   01234567890123456789
00 [COLOR=blue]Project: [[b]G[/b]        ][/COLOR]   //"SETI@home" (scrolling from column 9 to column 19)
01 [COLOR=blue]Team:    [[b]I[/b]        ][/COLOR]   //"TeAm AnandTech" (scrolling from column 9 to column 19)
02 [COLOR=blue]User:    [[b]H[/b]        ][/COLOR]   //"baxsie" (scrolling from column 9 to column 19)
03 [COLOR=blue]Host:    [[b]A[/b]        ][/COLOR]   //"Mr. Hyde" (scrolling from column 9 to column 19)

Screen 2, assuming 20x4

   01234567890123456789
00 [COLOR=blue][[b]A[/b]                 ][/COLOR]   //"Mr. Hyde" (centered)
01 [COLOR=blue]Units: [[b]E[/b]          ][/COLOR]   //"14067.94" (right justfy)
02 [COLOR=blue]Rate:  [[b]F[/b]          ][/COLOR]   //"177.225" (right justfy)
03 [COLOR=blue][b]LLLLLLLLLLLLLLLL[/b] [b]LL[/b]%[/COLOR]   //Bar graph of L from 0 to 15, numeric at 16,17,18 "%" at 19

Screen 3, assuming 20x4

   01234567890123456789
   01234567890123456789
00 [COLOR=blue][[b]H[/b]                 ][/COLOR]   //"baxsie" (centered)
01 [COLOR=blue]Units: [[b]J[/b]          ][/COLOR]   //"392944" (right justfy)
02 [COLOR=blue]Rate:  [[b]K[/b]          ][/COLOR]   //"1463.0" (right justfy)
03 [COLOR=blue][[b]M[/b]                 ][/COLOR]   //"Run based on prefrence" (scrolling from column 0 to column 19)
 

jc634

Administrator
CF Tech,

Can you upload a xml file. I need something to debug from.

FWIW, I am not sure if how numbers are snagged. If regex/CC2 treats them as text, you might be SOL on %'s and bargraphs.

But I am certainly not an expert.:)

Jim
 

CF Tech

Administrator
If the RegExp module cannot do things like that, then we may need to have CC Admin write a "text number to real number" plugin type thing.

We need a general way to scale and offset any number in the system anyway. This came up in the case of using the fan inputs to read flow meters. The number needed a units conversion (revs / min => liters per sec or some such). Perhaps one plugin could handle both functions.

Alternatively an XML module would be handy, but it seems like its functionality would be a subset of the RegExp.

I would guess that a macro or template to pull a give variable from an XML file would clean things up well.

You might be able to RegExp out the parts before and after the decimal, and put them together again with the decimal in a different place, but that might take you to the first level of RegExp h3ll.
 

CF Mark

Administrator
The regex plugin will handle that fine.
The regex plugin will convert the text numbers to real numbers for use with the bargraph plugins.

Ill try to come up with some regex expressions to pull the info soon.
 

jc634

Administrator
Here you go. I think this is exactly what you are looking for.

Let me know if I got something turned around. The bargraph seems to work, but since the number is almost at 0, the bargraph shows 0. See it works as it goes up.

Except:

1. I dropped everything past the decimal point. I am not sure if you can limit to 2 decimal points. Perhaps CCadmin can tell us if this is possible.

2. "Run based on prefrence" returns 1, 2 or 3. I don't know if CC2 can convert the numbers to text. Again, perhaps CCadmin can tell us if this possible.

Jim
 

Attachments

jc634

Administrator
Oh, BTW, I forgot to mention that you need to edit the screen files for the location of your xml file.:eek:

I don't think it would work for you as it is without editing!;)

Jim
 

CF Tech

Administrator
THANKS!

I'll need to take it to work to test it.

The numbers are a fraction of completion (so 0.95242 means 95% done). They will never get bigger than 1.00.

I'll give it a shot when I get to work, and I'll see if I can get CC Admin to look at the scaling issue.
 

jc634

Administrator
Make this simple change to scale to 1:

[from01]
from="cc2_hbar.ini"
sec="bar#"
opt01="id=@05"
opt02="options=0x84"
opt03="length=20"
opt04="start_type=2"
opt05="start=0"
opt06="pos_type=1"
opt07="pos=@04"
opt08="end_type=2"
opt09="end=100"

Change opt09="end=100" to opt09="end=1". That should do it...

Jim

p.s. I change the scaling and got no change. Perhaps the number returned in the xml file is really teated as text by CC2? Or else (God forbid:eek: ), I made some stupid error!:D

Jim
 
Last edited:

jc634

Administrator
CF Tech said:
You might be able to RegExp out the parts before and after the decimal, and put them together again with the decimal in a different place, but that might take you to the first level of RegExp h3ll.
Actually, I think that this should be possible. In the screens, I truncated from the . on.

It should be possible to read everything past the decimal only. But I think I will leave that to CCadmin to figure out.

CF Tech said:
We need a general way to scale and offset any number in the system anyway. This came up in the case of using the fan inputs to read flow meters. The number needed a units conversion (revs / min => liters per sec or some such). Perhaps one plugin could handle both functions.
Much better way to do it.

Jim
 

jc634

Administrator
CF TEch,

Found my mistake on the bargraph. I was stripping everthing past the decimal on other variables and, of course, did the same for the "fraction done" variable.:rolleyes:

So... The following line needs to change on the _2 screen file:

opt10="regex=(?is)<domain_name>(.*?)</domain_name>.*?<host_total_credit>(.*?)\\..*?</host_total_credit>.*?<host_expavg_credit>(.*?)\\..*?</host_expavg_credit>.*?<fraction_done>(.*?)\\..*?</fraction_done>"

Delete the red text. I am at work, so can't test. If it doesn't take care of the problem, let me know.

Jim

p.s., I edited the screen file as above and all works quite well now.
 
Last edited:

CF Tech

Administrator
SUCESS!

We have success!

I have attached an updated zip file with the changes made. This is generic enough that anyone running CC2 and BOINC in the default folders should have no troubles.

Just copy the screens out of the zip into the:

C:\Program Files\CrystalControl2\cc2-config\screens

directory, add them to your module and you are set.

The only change that would still be nice to do is to somehow translate the "user run request" (which comes out as a number) to the string.

But it all looks good and is running well.





 

Attachments

jc634

Administrator
Re: SUCESS!

CF Tech said:

The only change that would still be nice to do is to somehow translate the "user run request" (which comes out as a number) to the string.[/img]
How I would envision doing this is thru the use of if/cond/do_type statements.

For example:

if_type=1 ;id #
if=@04
cond=0
to=1.000000
do_type=xx
do=@5="Run Always"

where the xx would represent "set this value" in the do line. You would need to do this 3 times for the 3 possibilities. If one can do this now, let me know...

Jim
 

jc634

Administrator
Once the GUI in place, I can almost guarantee a "flood" of new feature requests will come in.

For the moment, turning off the logging/error reporting would be a good thing to do (once the GUI is ready for release).

Have an option to turn it on for problem debugging, if a user has a problem with CC2.

I would think that in most cases, it would not be necessary. No more screwing up screens by hand-writing them.;)

Jim
 
Top