Thread Device::SerialPort und lcd programmierung (Ezio) (17 answers)
Opened by mark05 at 2011-11-03 16:44

mark05
 2011-11-08 18:00
#154027 #154027
User since
2010-01-05
129 Artikel
BenutzerIn
[default_avatar]
hi

ich glaube fast das Device::Serialport nicht das richtige
modul ist zu kommunikation.

mit folgenden code passiert was auf dem display .
zwar noch nicht perfekt , er invertiert alle felder zeigt meinen
text und invertiert wieder .

Code: (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
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
#!/usr/bin/perl -w
use strict;
use warnings;
use Data::Dumper;
use IPC::Open2;

my $ezio = {
cmd=> chr ( hex ( '0xFE' ) ) ,
init=> chr ( hex ( '0x28' ) ) ,
stopsend=> chr ( hex ( '0x37' ) ) ,
cls=> chr ( hex ( '0x01' ) ) ,
home=> chr ( hex ( '0x02' ) ) ,
blank=> chr ( hex ( '0x8' ) ) ,
hide=> chr ( hex ( '0x0C' ) ),
readkey=> chr ( hex ( '0x06' ) ),
turnon=> chr ( hex ( '0x0D' ) ) ,
cursor=> chr ( hex ( '0x0E' ) ) ,
};
sub ShowMessage {
my $text = shift;
my $text2 = shift;

use bytes ;

my $textlength = length $text;
my $textlength2 = length $text2;
no bytes;
my $textpos = 40 - $textlength;



print {*TTYOUT} $text,$textlength;
print {*TTYOUT} "q{ } x $textpos";
print {*TTYOUT} $text2,$textlength2;


return ()
}
sub open_display {
qx(pkill cu);
my $stty = `/bin/stty -g`;
open2( \*TTYIN, \*TTYOUT, 'cu -l/dev/cua01 -s2400 2>&1');
# starting cu hoses /dev/tty's stty settings, even when it has
# been opened on a pipe...
qx(/bin/stty $stty);
$_ = <TTYIN>;
chomp;
if ( !m/^Connected/ ) {
print STDERR "$0: cu printed `$_' instead of `Connected'\n";
}
return ();
}

sub close_display {
close TTYIN;
close TTYOUT;
return ();
}
sub EzioInit {
print TTYOUT $ezio->{cmd};
print TTYOUT $ezio->{init};
print TTYOUT $ezio->{cmd};
print TTYOUT $ezio->{init};
return ();
}

sub Cls {
print TTYOUT $ezio->{cmd};
print TTYOUT $ezio->{cls};
return ();
}
sub Blank {
print TTYOUT $ezio->{cmd};
print TTYOUT $ezio->{blank};
return ();
}
sub CursorOn {
print TTYOUT "$ezio->{cmd}";
print TTYOUT "$ezio->{cursor}";
return ();
}
sub Hide {
print TTYOUT $ezio->{cmd};
print TTYOUT $ezio->{hide};
return ();
}

open_display();
EzioInit();
#open_display();
Cls();
Blank();
ShowMessage('*HGL EZIO *','****************');
Hide();

close_display();

1


gibt es eine alternative zu device::serialport ?
device::modem setzt auf diesem auf .

holger



Last edited: 2011-11-08 18:13:22 +0100 (CET)

View full thread Device::SerialPort und lcd programmierung (Ezio)