Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^2: Match Numeric Range

by PilotinControl (Pilgrim)
on Aug 18, 2015 at 13:53 UTC ( [id://1139014]=note: print w/replies, xml ) Need Help??


in reply to Re: Match Numeric Range
in thread Match Numeric Range

Thanks roboticus...the script is looking for the range of numbers dynamically in real time: 400-500 = Lights Off and 200-300 = Lights On. These numbers are generated via the photo resistor and is read from the serial port. The script is turned on and runs in the backround and once one of those numbers in the specified range has been detected the lights will either turn on or turn off. The while loop freezes my script as its looking for the range of numbers. The loops needs to continually be checking for that range of numbers as it will eventually trigger other things to happen.

Replies are listed 'Best First'.
Re^3: Match Numeric Range
by Your Mother (Archbishop) on Aug 18, 2015 at 14:14 UTC

    This kind of thing can be okay for progressive checking. I normal dislike this style of code/logic but it seems a good fit for this kind of problem.

    if ( $range > 500 ) { WAT_OP(); } elsif ( $range >= 425 ) { some_op(); } elsif ( $range > 400 ) { some_other_op(); } elsif ( $range > 300 ) { exit 0; } else { complete_tree_op(); }

    You can also do something more dispatchy–

    my @action_tree = ( { test => sub { $_[0] >= 300 && $_[0] <= 400 }, action => sub { print "GUDNITES\n"; CORE::exit(0 +) } }, { test => sub { $_[0] >= 425 && $_[0] <= 500 }, action => sub { print "OHAI\n" } } ); while ( my $signal = <SIGNAL_SOURCE> ) { $_->{test}->($signal) && $_->{action}->() for @action_tree; }

    I'm not advocating either, or that second style of terseness, or any style or approach for that matter. Just expanding the library of options. :P

      Thanks YourMother! This approach worked as expected and with narrowing down the numbers being sent out by the serial monitor I can fine tune the range of the photo resistor to accomplish what I need it too. Thanks to all who answered.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1139014]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (1)
As of 2024-04-23 16:48 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found