I tried to rework my code using new gained knowledge but hit a [this time] simple problem. I created measures and meters for n cores. The intention is to automatically only show as many as exist. The idea is to check if the value of a core equals the average. If true, don´t show, because probably doesn´t exist, otherwise show. It´s the easiest way I could think of to do this, although there is a slight risk an existing core would be missed. Of course, I am open to better suggestions.
The few times I wanted something being blended out before everything worked fine, so I don´t know what I am missing here. I put up an example code which already is set up to [only] check for a fifth core, because I thought it would suite most of you. If you have an octa, feel free to change it to 9.
My problem: the core that shouldn´t be shown either stays or is blended in and out, i.E. blinking if I use hidden=1 on the meters.
Does anybody know what I don´t see while it´s right in front of me?

post scriptum: The measures exist two times, I thought of using the UpdateDivider-option to check for existing cores once [and not all the time on every update] on the first block and using a second for the "real" stuff. If there is a shorter way to combine both and stress the computer less, I am curious.
Code: Select all
[Rainmeter]
Update=1000
AccurateText=1
[Variables]
bgX=0
coreY=2
;------------------------------------
[Measure.CORE01check]
Measure=CPU
Processor=1
;<test whether core exists>
[Measure.CORE02check]
Measure=CPU
Processor=2
;<test whether core exists>
[Measure.CORE03check]
Measure=CPU
Processor=3
;<test whether core exists>
[Measure.CORE04check]
Measure=CPU
Processor=4
;<test whether core exists>
[Measure.CORE05check]
Measure=CPU
Processor=5
;UpdateDivider=-1
IfCondition=(#CURRENTSECTION#=[Measure.CORES])
IfTrueAction=[!HideMeterGroup "core05"][!UpdateMeterGroup "core05"][!Redraw]
IfFalseAction=[!ShowMeterGroup "core05"][!UpdateMeterGroup "core05"][!Redraw]
;these measures are for real working processes being used on different meters:
;[I skipped the meters for percentages and that stuff]
[Measure.CORES]
Measure=CPU
Processor=0
[Measure.CORE01]
Measure=CPU
Processor=1
[Measure.CORE02]
Measure=CPU
Processor=2
[Measure.CORE03]
Measure=CPU
Processor=3
[Measure.CORE04]
Measure=CPU
Processor=4
[Measure.CORE05]
Measure=CPU
Processor=5
;------------------------------------
[TitleStyle]
FontFace=tahoma
AntiAlias=1
FontSize=12
StringAlign=left
StringStyle=Normal
FontColor=255,255,255,255
[COREbg1Style]
X=[#bgX]
Y=0R
W=80
H=30
SolidColor=0,0,0,255
[CORETitleStyle]
Text=[#CURRENTSECTION]
X=(5+[#bgX])
;------------------------------------
[core01bg]
Group=core01
Meter=Image
MeterStyle=COREbg1Style
[core02bg]
Group=core02
Meter=Image
MeterStyle=bg1Style | COREbg1Style
[core03bg]
Group=core03
Meter=Image
MeterStyle=bg1Style | COREbg1Style
[core04bg]
Group=core04
Meter=Image
MeterStyle=bg1Style | COREbg1Style
[core05bg]
Group=core05
Meter=Image
MeterStyle=bg1Style | COREbg1Style
;------------------------------------
[core01]
Group=core01
Meter=String
MeterStyle=TitleStyle | CORETitleStyle
Y=([#coreY]+[core01bg:Y])
[core02]
Group=core02
Meter=String
MeterStyle=TitleStyle | CORETitleStyle
Y=([#coreY]+[core02bg:Y])
[core03]
Group=core03
Meter=String
MeterStyle=TitleStyle | CORETitleStyle
Y=([#coreY]+[core03bg:Y])
[core04]
Group=core04
Meter=String
MeterStyle=TitleStyle | CORETitleStyle
Y=([#coreY]+[core04bg:Y])
[core05]
Group=core05
Meter=String
MeterStyle=TitleStyle | CORETitleStyle
Y=([#coreY]+[core05bg:Y])