It is currently April 18th, 2024, 9:30 pm

Cycle temps

Get help with creating, editing & fixing problems with skins
Sapphica69
Posts: 15
Joined: June 9th, 2020, 4:06 am

Cycle temps

Post by Sapphica69 »

How do I Cycle a bunch of temps in the same spot in rainmaker?

Like display Temp 1 for x about of time, then Temp 2 for x amount of time, then Temp 3 ect.


Thank you =D
Last edited by Sapphica69 on June 9th, 2020, 5:29 am, edited 1 time in total.
mak_kawa
Posts: 908
Joined: December 30th, 2015, 9:47 am

Re: Cycle temps

Post by mak_kawa »

Hi Sapphica69

I am not sure what is "temps"?, and also what is "Temp 1", "Temp 2", "x amount of time", and "Temp 3"?? Sorry, I can't understand at all...

I think... it might be good to be more specific.
Sapphica69
Posts: 15
Joined: June 9th, 2020, 4:06 am

Re: Cycle temps

Post by Sapphica69 »

Oooo I mean Different Temperatures from HWinfo.
mak_kawa
Posts: 908
Joined: December 30th, 2015, 9:47 am

Re: Cycle temps

Post by mak_kawa »

Hmm...HWiNFO temperature... sorry, still I don't understand. What do you mean "Different Temperatures"?

You want to display different temperature values for a specific HWiNFO sensor, time by time? Or... you want to display different temperature values for different HWiNFO sensors, for example CPU Core 1 and 2 and 3 and 4, at a same/fixed position of a meter?

Could you show us your skin code or its action image in progress?
Sapphica69
Posts: 15
Joined: June 9th, 2020, 4:06 am

Re: Cycle temps

Post by Sapphica69 »

Display different Temp values for different Hwinfo Sensors and have rainmeter cycle through them.

I got a bunch of extra sensors and now I have no room for them on my skin. I thought I would find a way to cycle them instead, but I can't figure out how to do that.

Code: Select all

[T-Temp]
MeasureName=T-Temp1
Meter=STRING
FontColor=#colorText#
MeterStyle=styleLeftText
AntiAlias=1
FontSize=10
StringCase=NONE
X=180
Y=350
W=185
H=14
Text=%1C
DynamicVariables=1

 [T-Temp2]
MeasureName=T-Temp2
Meter=STRING
FontColor=#colorText#
MeterStyle=styleLeftText
AntiAlias=1
FontSize=10
StringCase=NONE
X=200
Y=350
W=185
H=14
Text=%1C
DynamicVariables=1

 [T-Temp3]
MeasureName=T-Temp3
Meter=STRING
FontColor=#colorText#
MeterStyle=styleLeftText
AntiAlias=1
FontSize=10
StringCase=NONE
X=230
Y=350
W=185
H=14
Text=%1C
DynamicVariables=1
That's what I have so far.
Last edited by balala on June 9th, 2020, 3:18 pm, edited 1 time in total.
Reason: Please use <code> tags whenever are you posting code snippets. It's the </> button.
mak_kawa
Posts: 908
Joined: December 30th, 2015, 9:47 am

Re: Cycle temps

Post by mak_kawa »

Hi Sapphica69

I can't say about specific way for you, because I don't know whole structure of your skin code. But generally speaking... you can set Loop measure and change MeasureName= option in the meters according to the value of the loop? An example is like as;

Code: Select all

[Rainmeter]
Update=1000
BackgroundMode=2
SolidColor=192,192,192

[Variables]
ChangeCycle=3

[measure1]
Measure=String
String=This is measure 1

[measure2]
Measure=String
String=This is measure 2

[measure3]
Measure=String
String=This is measure 3

[measure4]
Measure=String
String=This is measure 4

[measure5]
Measure=String
String=This is measure 5

[measure6]
Measure=String
String=This is measure 6

[measureLoop]
Measure=Loop
StartValue=1
EndValue=(#ChangeCycle#*2)
Increment=1
LoopCount=0
IfAboveValue=#ChangeCycle#
IfAboveAction=[!SetOption meter1 MeasureName measure4][!SetOption meter2 MeasureName measure5][!SetOption meter3 MeasureName measure6]
IfEqualValue=1
IfEqualAction=[!SetOption meter1 MeasureName measure1][!SetOption meter2 MeasureName measure2][!SetOption meter3 MeasureName measure3]

[meter1]
Meter=String
MeasureName=measure1
X=5
Y=5
W=150
H=15
Test=%1

[meter2]
Meter=String
MeasureName=measure2
X=5
Y=20
W=150
H=15
Test=%1

[meter3]
Meter=String
MeasureName=measure3
X=5
Y=35
W=150
H=15
Test=%1
This code changes meters 1,2,3 display between measures 1,2,3 and measures 4, 5, 6 every 3 seconds, and loops forever, as you see when loaded this skin.

Is this what you intend/want? If not, sorry.
Sapphica69
Posts: 15
Joined: June 9th, 2020, 4:06 am

Re: Cycle temps

Post by Sapphica69 »

No it's not, sorry.

I'm tying to Display T-temp1 for a few seconds, then display T-Temp2 for a few seconds, then display T-temp3 for a few seconds, then loop back to T-temp1.
Last edited by Sapphica69 on June 9th, 2020, 4:23 pm, edited 1 time in total.
mak_kawa
Posts: 908
Joined: December 30th, 2015, 9:47 am

Re: Cycle temps

Post by mak_kawa »

Hi Sapphica69

How about this?

Code: Select all

[Rainmeter]
Update=1000
BackgroundMode=2
SolidColor=192,192,192

[Variables]
ChangeInterval=3
MeasureNum=1

[measure1]
Measure=String
String=This is measure 1

[measure2]
Measure=String
String=This is measure 2

[measure3]
Measure=String
String=This is measure 3

[measureLoop]
Measure=Loop
StartValue=1
EndValue=((#ChangeInterval#*3)-1)
Increment=1
LoopCount=0
OnUpdateAction=[!SetVariable MeasureNum (Trunc([measureLoop]/#ChangeInterval#)+1)]
DynamicVariables=1

[meter1]
Meter=String
MeasureName=measure#MeasureNum#
X=5
Y=5
W=150
H=15
Test=%1
DynamicVariables=1
Display of meter1 changes measure1->2->3 every 3 seconds, and repeats forever.
Is this what you want/intend? If not, sorry again.
Sapphica69
Posts: 15
Joined: June 9th, 2020, 4:06 am

Re: Cycle temps

Post by Sapphica69 »

I think it's what I'm looking for, but when I tried your code in rainmeter I didn't see anything output.
User avatar
balala
Rainmeter Sage
Posts: 16144
Joined: October 11th, 2010, 6:27 pm
Location: Gheorgheni, Romania

Re: Cycle temps

Post by balala »

Beside mak_kawa's solution, here is one which might look more logical for beginners. Supposing there are N temperatures measured and returned by the same number of measures (named [T-Temp1], [T-Temp2] ... [T-TempN] - took these names from your example), you could use IfConditions to cycle what a String meter is showing.
For instance the following measures are returning the appropriate temperatures. Unfortunately I'm not using HWiNFO (neither the app, nor its plugin), so I'm not sure how those measures should look like, but hope not this is the question. I suppose you have them:

Code: Select all

[T-Temp1]
Measure=Plugin
Plugin=HWiNFO
...

[T-Temp2]
Measure=Plugin
Plugin=HWiNFO
...

[T-Temp3]
Measure=Plugin
Plugin=HWiNFO
...

[T-Temp4]
Measure=Plugin
Plugin=HWiNFO
...
In this example I used four such measures, but there might be more or less, depending on your hardware, needs and so on.
Now use a measure, which will cycle the shown measures. Unlike mak_kawa I'm using simple Calc measure for this purpose, supposing it's easier to be understood. So, here is such a simple measure:

Code: Select all

[MeasureCycle]
Measure=Calc
Formula=(( MeasureCycle + 1 ) % #N# )
IfCondition=(#CURRENTSECTION#=0)
IfTrueAction=[!SetOption MeterTemperatures Text "Temp1: %1"][!UpdateMeter "MeterTemperatures"][!Redraw]
IfCondition2=(#CURRENTSECTION#=1)
IfTrueAction2=[!SetOption MeterTemperatures Text "Temp2: %2"][!UpdateMeter "MeterTemperatures"][!Redraw]
IfCondition3=(#CURRENTSECTION#=2)
IfTrueAction3=[!SetOption MeterTemperatures Text "Temp3: %3"][!UpdateMeter "MeterTemperatures"][!Redraw]
IfCondition4=(#CURRENTSECTION#=3)
IfTrueAction4=[!SetOption MeterTemperatures Text "Temp4: %4"][!UpdateMeter "MeterTemperatures"][!Redraw]
where N is the number of temperatures needed to be shown. This number has to be set into the [Variables] section, for instance:

Code: Select all

[Variables]
...
N=4
The above !SetOption bangs are setting one by one the measure which is shown at a moment by the String meter. If needed, you can modify the text to be shown, in front of the actual temperature (the Temp1, Temp2, ... strings - see below).
[MeterTemperatures] is the String meter used to show the current temperatures, something like this:

Code: Select all

[MeterTemperatures]
Meter=String
MeasureName=T-Temp1
MeasureName2=T-Temp2
MeasureName3=T-Temp3
MeasureName4=T-Temp4
SolidColor=0,0,0,150
FontColor=220,220,220
Padding=15,5,15,5
FontSize=14
See that this meter has no Text option, which is not needed, being set by the !SetOption bangs of the IfTrueAction options of the [MeasureCycle] measure.
This solution is practically the same as mak_kawa's previous one, but as said, I suppose it is easier to be understood how does it work, especially for a beginner.