It is currently December 14th, 2018, 8:23 pm

Plugin for HWiNFO

Share your custom plugins and applications to enhance Rainmeter.
User avatar
jsmorley
Developer
Posts: 18494
Joined: April 19th, 2009, 11:02 pm
Location: Fort Hunt, Virginia, USA

Re: Plugin for HWiNFO

jsmorley » February 6th, 2018, 2:59 am

Well, you kinda lost me, but I will say that the principle here should indeed not be targeted at skin "authors", as they have the time and the expertise to design the skin any way they want. The target audience for any change should be skin "users", who simply want to be able to download a skin and get it working on their system without having to become experts at Rainmeter code.

While I generally don't encourage jumping through a ton of hoops to help a user avoid opening a .ini and changing the value of a variable, I have to admit that configuring HWiNFO for a system is way complicated for a new user. It kinda goes beyond the usual approach I take of "Opening the skin file and seeing how it works is good! It's how you start to learn Rainmeter."
User avatar
raiguard
Posts: 493
Joined: June 25th, 2015, 7:02 pm
Location: The Sky, USA

Re: Plugin for HWiNFO

raiguard » February 6th, 2018, 3:04 am

My idea is not geared towards making authors' lives easier, it's for the users. If an author takes the time to set up the table file, then all the user would have to do is go down the list of entries that was constructed from the table, find the corresponding entry in the SMV list, and hit save. Rinse and repeat until all of the entries have been configured.

The main problem that users seem to run into is knowing which value to copy to the file. My idea eliminates that confusion, only requiring the user to find the right entry in the SMV list.

Does that make sense?
”We are pretty sure that r2922 resolves the regression in resolution caused by a reversion to a revision.” - jsmorley, 2017
User avatar
raiguard
Posts: 493
Joined: June 25th, 2015, 7:02 pm
Location: The Sky, USA

Re: Plugin for HWiNFO

raiguard » February 6th, 2018, 3:07 am

Here’s a really crappy graph paper drawing I made during class of what I’m talking about:

Gosh dangit, it’s compressed AND sideways! :(

Edit: opening the image in a new tab flips it vertical again.
2FACF5F2-6368-4A8B-8190-2C875F5188E9.jpeg
You do not have the required permissions to view the files attached to this post.
”We are pretty sure that r2922 resolves the regression in resolution caused by a reversion to a revision.” - jsmorley, 2017
stangowner
Posts: 39
Joined: October 6th, 2012, 12:27 pm

Re: Plugin for HWiNFO

stangowner » February 6th, 2018, 3:35 am

Well, I think we've determined that it can't be silent, on my part or the skin author's. We need the end user's input. So the goal is to make a one time SIMPLE config for the user! I was thinking of maybe doing something like the following:

The skin developer provides a .inc file that looks like:

Code: Select all

; CPU 0 Temperature [HWiNFO-CPU0-Temp]
; GPU 0 Fan Speed [HWiNFO-CPU0-FanSpeed]

** commented lines that consist of:  ; user readable text [variablename]
The user runs a RM specific SMV that has the existing tree one side, and a list of meters on the right (provided by the comments in the .inc file listed above). The user selects "CPU 0 Temperature" from the list, and selects the corresponding reading from the tree and clicks a "Map" button. Then they select "GPU 0 Fan Speed" from the list and selects the fan speed entry in the tree and clicks map. Then they click OK. The SMV rewrites the .inc file to be:

Code: Select all

[Variables]

; CPU 0 Temperature [HWiNFO-CPU0-Temp]
HWiNFO-CPU0-Temp-SensorId=0x00000000
HWiNFO-CPU0-Temp-SensorInstance=0x0
HWiNFO-CPU0-Temp-EntryId=0x00000000

; GPU 0 Fan Speed [HWiNFO-CPU0-FanSpeed]
HWiNFO-CPU0-FanSpeed-SensorId=0x00000000
HWiNFO-CPU0-FanSpeed-SensorInstance=0x0
HWiNFO-CPU0-FanSpeed-EntryId=0x00000000
No change to the plugin, just the SMV. And the next skin version would just need to update the .inc file and skin to ensure the variable names match and follow the standard suffix I'd be writing. Default values could be included, so some typical items work out of the box. But the user just remaps the others using a simple GUI.

Thoughts?
User avatar
raiguard
Posts: 493
Joined: June 25th, 2015, 7:02 pm
Location: The Sky, USA

Re: Plugin for HWiNFO

raiguard » February 6th, 2018, 3:56 am

That's a much simpler version of my suggestion, I like it.
”We are pretty sure that r2922 resolves the regression in resolution caused by a reversion to a revision.” - jsmorley, 2017
stangowner
Posts: 39
Joined: October 6th, 2012, 12:27 pm

Re: Plugin for HWiNFO

stangowner » February 6th, 2018, 4:08 am

Yeah, after re-reading yours again and understanding it more clearly, I see they are similar. That may be a needed approach for updating a skin directly....but I'm not going there. JSON is good for hierarchical structured data, but I see no reason yet for a hierarchy. Lets hope we can keep it simple. The variables don't care where they are used fortunately. Keep the variables flat, and the skin author puts them in the skin "hierarchy".
User avatar
raiguard
Posts: 493
Joined: June 25th, 2015, 7:02 pm
Location: The Sky, USA

Re: Plugin for HWiNFO

raiguard » February 6th, 2018, 4:11 am

There are two things that would be nice, but aren't required and won't be missed if they aren't added: Having different tabs for different skins (to clean things up), and having collapsible groups that you can assign sensors to (also to reduce clutter).
”We are pretty sure that r2922 resolves the regression in resolution caused by a reversion to a revision.” - jsmorley, 2017
stangowner
Posts: 39
Joined: October 6th, 2012, 12:27 pm

Re: Plugin for HWiNFO

stangowner » February 6th, 2018, 4:16 am

Let me think about those while I start to test this.
User avatar
raiguard
Posts: 493
Joined: June 25th, 2015, 7:02 pm
Location: The Sky, USA

Re: Plugin for HWiNFO

raiguard » March 22nd, 2018, 6:12 am

So I have been updating all of my variables to your suggested syntax (I have to add disk temperatures to my disks Meter, which requires copy/pasting the same measure 26 times, and I don’t want to have to do it again when you finish the new tool). I just want to be sure I’ve got this right.

If you do manage to implement tabs for skins and collapsible sensor groups, this is how I’m formatting it:

Code: Select all

; [Variables]
; _CPU Meter (tab)
; —Core Temperatures (section)
; Core 0 Temperature [HWiNFO-CPU0-Core0Temp]
HWiNFO-CPU0-Core0Temp-SensorId=0x0000000
HWiNFO-CPU0-Core0Temp-SensorInstance=0x0
HWiNFO-CPU0-Core0Temp-EntryId=0x0000000
; Core 1 Temperature [HWiNFO-CPU0-Core1Temp]
HWiNFO-CPU0-Core1Temp-SensorId=0x0000000
HWiNFO-CPU0-Core1Temp-SensorInstance=0x0
HWiNFO-CPU0-Core1Temp-EntryId=0x0000000
...
; —Core Temperatures (section end marker)
; CPU Package Temperature [HWiNFO-CPU0-PackageTemp]
HWiNFO-CPU0-PackageTemp-SensorId=0x0000000
HWiNFO-CPU0-PackageTemp-SensorInstance=0x0
HWiNFO-CPU0-PackageTemp-EntryId=0x0000000
; _CPU Meter (tab end marker)
The stuff in () parenthesis are just describing the things to you.

Of course, the syntax is subject to change, but I imagine it would be something along those lines if you actually do it. Just wanted to give you my input while I was thinking about it.
”We are pretty sure that r2922 resolves the regression in resolution caused by a reversion to a revision.” - jsmorley, 2017
stangowner
Posts: 39
Joined: October 6th, 2012, 12:27 pm

Re: Plugin for HWiNFO

stangowner » March 24th, 2018, 12:56 am

Hi raiguard,

I don't think I'll meet your vision for a few reasons.

First, I'm just going to use the standard private profile Windows APIs for accessing the inc (ini) files. These APIs don't include anything for reading comments or organizing key/value pairs in a section. So to do what you want would require I write a custom ini parser/writer with some decent logic and then marry that to a complex UI. Given my availability, its more than I can take on and deliver sometime soon.

Secondly, although this may work well for your skin, its likely overkill for a lot of others. I think I'd rather keep something simple and quick, yet generic enough for any variations, including yours.

So here is what I was planning so far:

Create a separate ini section listing the prefix so I can use standard APIs (and not comments). I'll parse these to build a list of sensors for the user to select and configure. Then in the [Variables] section, write out the appropriate values based on what we discussed before - the selected prefix (ex: HWiNFO-CPU0-Temp) + a standard suffix (-HostId, -SensorId, -SensorInstance, -EntryId). So the user just selects a sensor from the inc file, selects a sensor from the HWiNFO tree, and clicks "Update". Rinse & repeat.

So a .inc file may look like:

Code: Select all


[Variables]
HWiNFO-CPU0-Temp-SensorId=0x00000000
HWiNFO-CPU0-Temp-SensorInstance=0x0
HWiNFO-CPU0-Temp-EntryId=0x00000000
HWiNFO-GPU0-FanSpeed-SensorId=0x00000000
HWiNFO-GPU0-FanSpeed-SensorInstance=0x0
HWiNFO-GPU0-FanSpeed-EntryId=0x00000000

; skin developers - indicate here which HWiNFO Sensors & Entries should be mapped by the user
; use the format:  Sensor-Name-Prefix=User readable name for the sensor
[HWiNFO-Config]
HWiNFO-CPU0-Temp=CPU 0 Temperature
HWiNFO-GPU0-FanSpeed=GPU 0 Fan Speed

And the UI would look like this:
rm-inc-beta.png
I'd add a start parameter arg so you can set the .inc file when launching the app. This allows you to call it from your skin configurator. And for suites of skins, I'd recommend creating a separate .inc file for each skin. This allows the shortened list just for that skin to be configured independently. Also nice if the user is not using all of the skins (less to sift through or set, less memory used).

I do have this in a tab right now, but was thinking maybe using the command line arg as multi-valued and creating a tab for each? So you'd call something like:

HWiNFOSharedMemoryViewer.exe (user needs to browse for a file)
or
HWiNFOSharedMemoryViewer.exe /rmskin=HWiNFO.inc (file is loaded)
or
HWiNFOSharedMemoryViewer.exe /rmskin=CPU.inc,GPU.inc,System.inc (add a tab for each file, and load the active tab's file)

Thoughts? This would allow you to have specific buttons to launch portions of the config for the user, or just launch them all at once. But the sensors won't be a skin heirarchy, just split by tab (inc file).
You do not have the required permissions to view the files attached to this post.