Schrift
[thread]11321[/thread]

sub richtig aufrufen

Leser: 1


<< |< 1 2 >| >> 20 Einträge, 2 Seiten
atragator
 2008-02-18 12:30
#106039 #106039
User since
2008-02-18
12 Artikel
BenutzerIn
[default_avatar]
Hallo zusammen habe folgendes Problem eine sub richtig aufzurufen.

so ruf ich die sub auf, welche sich in Device::Gsm::Sms befindet. Ich will aus dem langen PDU String nur den Text der SMS haben, sollte die sub doch realisieren, oder ? Jedenfalls kann ich die sub nicht korrekt aufrufen... bekomm folgende Fehlermeldung: can't call method "decode" on a undifined value.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
use Device::Gsm::Sms;

my $sms = Device::Gsm::Sms->new();

# example for SMS in PDU mode
#07911356131313F351000B911326926556F800F6AD4E060504C032C032000014010F06050C2A363100835D0001F5F5FFFFFFFF0002000201FE0700080000000000119FBDC8000908001231653131313F09001153494D4B617274656E5465737465723031

$sms->decode("010F06050C2A363100835D0001F5F5FFFFFFFF0002000201FE0700080000000000119FBDC8000908001231653131313F09001153494D4B617274656E5465737465723031");

print "SMS content:\n " .$sms->decode();



sub decode {
        my( $self, $type ) = @_;
        $self->{'type'} = $type;

        # Get list of tokens for this message (from ::Sms::Structure)
        my $cPdu        = $self->{'pdu'};

        # Check that PDU is not empty
        return 0 unless $cPdu;

        # Backup copy for "backtracking"
        my $cPduCopy    = $cPdu;

        my @token_names = $self->structure();
        my $decoded     = 1;

        while( @token_names ) {

                # Create new token object
                my $token = new Sms::Token( shift @token_names, {messageTokens => $self->{'tokens'}} );
                if( ! defined $token ) {
                        $decoded = 0;
                        last;
                }
renee
 2008-02-18 13:11
#106041 #106041
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
So auf den ersten Blick würde ich sagen, Du erzeugst das Objekt nicht richtig. Da muss man wohl den Port und Pin angeben zu müssen. Siehe CPAN:Device::Gsm.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
atragator
 2008-02-18 13:17
#106042 #106042
User since
2008-02-18
12 Artikel
BenutzerIn
[default_avatar]
ich will ja noch gar nicht wirklich auf das Gerät zugreifen, wollte nur mal die sub aufrufen und schauen ob die auch tut was ich erwarte, kann ich die nicht auch ohne Objekt aufrufen ?
renee
 2008-02-18 13:35
#106043 #106043
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du brauchst ein Objekt. Wie Du in dem Code von decode sehen kannst, werden einige Daten von Objekt benötigt.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
atragator
 2008-02-18 14:06
#106046 #106046
User since
2008-02-18
12 Artikel
BenutzerIn
[default_avatar]
Wäre dass dann so richtig ?, oder muss ich noch die decode() aufrufen ?
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use Device::Gsm::Sms;
# Or you can instance a sms message from raw PDU data
    my $msg = new Device::Gsm::Sms(
        header => '+CMGL: 4',
        pdu    => '[07916407080007F8240F9164170900013635F40000702101310024400141]',
        storage=> 'ME', # or 'SC'
    );


if( defined $msg ) {
        print $msg->recipient() , "\n";
        print $msg->sender()    , "\n";
        print $msg->text()   , "\n";  # or $msg->text()
        print $msg->time()      , "\n";
        print $msg->type()      , "\n";
    }
renee
 2008-02-18 14:17
#106049 #106049
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Ich habe noch nie mit dem Modul gearbeitet. Was passiert denn, wenn Du es so ausführst?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
atragator
 2008-02-18 14:19
#106052 #106052
User since
2008-02-18
12 Artikel
BenutzerIn
[default_avatar]
bekomm keine aus gabe bzw. es werden nur die \n ausgegeben sonst nichts
atragator
 2008-02-18 14:23
#106055 #106055
User since
2008-02-18
12 Artikel
BenutzerIn
[default_avatar]
die If bedingung ist nicht wahr
renee
 2008-02-18 14:25
#106056 #106056
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Dein Header entspricht nicht diesem Regulären Ausdruck:
Code: (dl )
$opt{'header'} =~ /\+CMGL:\s*(\d+),\s*(\d+),\s*(\w*),\s*(\d+)/


Deshalb wird kein Objekt erzeugt.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
atragator
 2008-02-18 14:29
#106057 #106057
User since
2008-02-18
12 Artikel
BenutzerIn
[default_avatar]
aha, kann damit aber nicht wirklich was anfangen kannst mir das mal an einem Beispiel erlären wie der header aussehen müsste ?
<< |< 1 2 >| >> 20 Einträge, 2 Seiten



View all threads created 2008-02-18 12:30.