8 use Net
::DBus
qw(:typing);
10 use Log
::Any
qw($log);
11 use Log::Any::Adapter;
13 Log::Log4perl->easy_init($Log::Log4perl::DEBUG);
14 Log::Any::Adapter->set('Log4perl');
16 use Net::DBus::Reactor;
18 use Time::HiRes qw(sleep);
22 my ( $ofono, $event, $modem_path ) = @_;
24 my $modem = $ofono->get_modem_interface( $modem_path, "Modem" );
26 if ( $modem->GetProperty("Powered") )
28 # disable before starting workflow to get a clean start ...
29 $modem->SetProperty( "Powered", dbus_boolean
(0) );
33 Net
::DBus
::Reactor
->main->shutdown();
39 sub on_modem_power_changed
41 my ( $ofono, $event, $info ) = @_;
42 my ( $modem_path, $power_state ) = @
$info;
46 $ofono->get_modem_interface( $modem_path, "Modem" )
47 ->SetProperty( "Powered", dbus_boolean
(0) );
51 Net
::DBus
::Reactor
->main->shutdown();
57 my $oFono = Net
::Radio
::oFono
->new( "ON_MODEM_ADDED" => \
&on_modem_added
,
58 "ON_MODEM_PROPERTY_POWERED_CHANGED" => \
&on_modem_power_changed
,
61 Net
::DBus
::Reactor
->main->run();
62 $log->debug("Leaving");
63 undef $oFono; # force DESTROY