Ik heb een scriptje geklust in perl dat regelmatig een aantal bestandjes moet uitlezen die naar een LCD display moet sturen.
Op dit moment worden de bestandjes alleen bij het starten gelezen en gestuurd, en wat daarna gebeurt heb ik weinig hoogte van. Als de bestandjes wijzigen worden de updates in ieder geval niet naar de display gestuurd.
Op dit moment is de code als volgt:
Hoe krijg ik dit zo ver dat de display geupdate wordt? Elke 0.5 seconden oid is genoeg.
Op dit moment worden de bestandjes alleen bij het starten gelezen en gestuurd, en wat daarna gebeurt heb ik weinig hoogte van. Als de bestandjes wijzigen worden de updates in ieder geval niet naar de display gestuurd.
Op dit moment is de code als volgt:
code:
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
| #!/usr/bin/perl -w
use LCDd;
$HOST = "127.0.0.1";
$PORT = "13666";
# Connect to the server...
$lcd = LCDd->new(
server => $HOST,
port => $PORT,
name => "fortune.pl" )
|| die "Cannot connect to LCDproc port\n";
$screen = LCDd::Screen->new( $lcd, name=>"mp3" );
$widget[0] = LCDd::Scroller->new( $screen );
$widget[1] = LCDd::Scroller->new( $screen );
while (1)
{
update_text();
$lcd->Pump;
}
exit;
sub update_text {
$categorie = `cat /root/categorie.txt` || die "\n$0: Fout in cat.\n\n";
@lines = split(/\n/, $categorie);
$categorie = join(" / ", @lines);
$liedje = `cat /root/liedje.txt` || die "\n$0: Fout in song.\n\n";
@lines = split(/\n/, $liedje);
$liedje = join(" / ", @lines);
#Zet categorienaam
$widget[0]->set(
left => 1,
top => 1,
right => 12,
bottom=> 1,
dir => "v",
speed => 1,
text => $categorie,
);
#Zet liedje
$widget[1]->set(
left => 1,
top => 2,
right => 16,
bottom=> 2,
dir => "v",
speed => 1,
text => $liedje,
);
} |
Hoe krijg ik dit zo ver dat de display geupdate wordt? Elke 0.5 seconden oid is genoeg.
ieeeepppppp :P