So you should now have all almost the pieces you need to work out how to manage not changing button color in chg_btn when it ought not be changed. The missing part is passing the current sensor state into chg_btn in some fashion. Where you set up button call backs you can:
my %context;
...
$button->bind('<ButtonRelease-1>' => sub{chg_btn(\%context, @_});
and something similar wherever you set up the sensor handling callback/sub. You can then
sub sensorHandler {
my ($context, ...) @_;
$context->{sensorOn} = $data !~ /(?<![\w-])OFF(?![\w-])/i;
...
}
and in your button handler you can
sub chg_btn {
my ($context, ...) = @_;
$btn1->configure(-background => "green", -foreground => "black")
if !$context->{sensorOn};
}
Optimising for fewest key strokes only makes sense transmitting to Pluto or beyond
|