package POEDaemon::EventSystem::Handlers; use strict; use warnings FATAL => 'all'; no warnings 'redefine'; use Data::Dumper; use POE; use POEDaemon; sub states { return $_[0], [qw( evsys_handler_toggle evsys_handler_on evsys_handler_off evsys_handler_latch evsys_handler_alarm_activate evsys_handler_alarm_deactivate )]; } sub evsys_handler_toggle { my ($kernel, $heap, $pin) = @_[KERNEL, HEAP, ARG0]; $kernel->yield(gpiochange_toggle => { pin => $pin || 53 }); } sub evsys_handler_on { my ($kernel, $heap, $pin) = @_[KERNEL, HEAP, ARG0]; $kernel->yield(gpiochange_set => { pin => $pin || 53, value => GPIO_HIGH }); } sub evsys_handler_off { my ($kernel, $heap, $pin) = @_[KERNEL, HEAP, ARG0]; $kernel->yield(gpiochange_set => { pin => $pin || 53, value => GPIO_LOW }); } sub evsys_handler_latch { my ($kernel, $heap, $item) = @_[KERNEL, HEAP, ARG0]; #$heap->{eventsystem}->{latch}->{$item} = 1; } sub evsys_handler_alarm_activate { my ($kernel, $heap, $args) = @_[KERNEL, HEAP, ARG0]; #log_enabled && logline "args=\n%s", Dumper $args; my $msg = $args->{msg}; #push @{$heap->{alarm_msg}}, #{ # time => time_hires, # msg => $msg || '', #}; log_enabled && logline "ALARM!!! ---> %s", $msg || 'n/a'; } sub evsys_handler_alarm_deactivate { log_enabled && logline 'alarm deactivated'; } 1;