remark release date
[Net-Radio-oFono.git] / examples / disable-modem
blob19eff5c5fc138253ce27ee379b59f0a1f30274ba
1 #!/usr/pkg/bin/perl -w
3 use strict;
4 use warnings;
6 use Net::Radio::oFono;
8 use Net::DBus qw(:typing);
10 use Log::Any qw($log);
11 use Log::Any::Adapter;
12 use Log::Log4perl;
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);
20 sub on_modem_added
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) );
31 else
33 Net::DBus::Reactor->main->shutdown();
36 return;
39 sub on_modem_power_changed
41 my ( $ofono, $event, $info ) = @_;
42 my ( $modem_path, $power_state ) = @$info;
44 if ($power_state)
46 $ofono->get_modem_interface( $modem_path, "Modem" )
47 ->SetProperty( "Powered", dbus_boolean(0) );
49 else
51 Net::DBus::Reactor->main->shutdown();
54 return;
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