Thread Verzögerung von Ereignissen (17 answers)
Opened by piet at 2015-06-02 16:18

Gast piet
 2015-06-10 20:28
#181316 #181316
Hallo,

ich habe es aktuell nachfolgend gelöst.


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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#!/usr/bin/perl -w

use warnings;
use strict;

package timer;

########################################################################################
sub new
{
    my $classname = shift;
    my $self = {timerstart => 0, startzeit => 0, aktzeit => 0, endzeit => 0};
    return bless($self, $classname);
}
########################################################################################
sub TON
{
    my $self = shift;
    my $vke  = shift;
    my $laufzeit = shift;

    
    if ($vke == 0) 
    { 
        $self->{timerstart} = 0;
        $self->{aktzeit} = 0;
        return 0; 
    }
    
#Timer initialisieren
    if ($self->{timerstart} == 0 && $vke == 1)
    { 
        $self->{timerstart} = 1;     
        $self->{startzeit} = `(date +%s%N)` / 1000000;
        $self->{endzeit} = $self->{startzeit} + $laufzeit;
        $self->{aktzeit} = int($self->{endzeit} - $self->{startzeit});
    }
  
    if ($self->{timerstart} && $self->{aktzeit} > 0 )
    { 
        $self->{aktzeit} = int($self->{endzeit} - `(date +%s%N)` / 1000000);
        return 0; 
    }
    else
    { 
        $self->{aktzeit} = 0;
        return 1; 
    }
}    
    
########################################################################################
my $timer_1 = timer->new();

while (1)
{
  sleep(1);
  
  if ($timer_1->TON(1,10000))
  { print "Zeit ist abgelaufen\n"; }
  else
  { print "Zeit läuft=".int($timer_1->{aktzeit}/1000)."\n"; }
} 


Für mich ist es wichtig keine externe lib zu benutzen und es möglichts einfach (ohne Thread) zu lösen. Da ich keine andere Möglichkeit als einen Shellbefehl gefunden habe ... war dies für mich die Lösung.
Jetzt hätte ich gerne eure Meinung, ob ich etwas optimieren kann ...

Seid nicht so streng mit mir ;-)

Gruß
piet
Last edited: 2015-06-10 20:32:03 +0200 (CEST)

View full thread Verzögerung von Ereignissen