Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-release > by-pkgid > 396a6b427378a944a98363b9b2c1b2df > files > 31

g15daemon-1.9.5.3-11.mga5.i586.rpm

use G15Daemon;

use GD;
use GD::Graph::lines;
#use GD::Graph::bars;

# simple demo. creates two screens (selectable via L1 button) and 
# displays some text & a border on one, and a graph on the other..


@data = (
    ["1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th"],
    [    1,    2,    5,    6,    3,  1.5,    1,     3,     4],
    [ sort { $a <=> $b } (1, 2, 5, 6, 3, 1.5, 1, 3, 4) ]
);

# possible screentypes are $g15pbuf (1bpp pixel buffer) 
# $g15txt (text - not implemented yet) 
# or $g15wbmp (WBMP pixelbuffer useful for GD)
#
# ok.. create a couple of new screens..
my $lcdintro = G15Daemon->new($g15wbmp);
my $lcdgraph = G15Daemon->new($g15wbmp);
                                           
printf "perl bindings version is %f\n",$lcdintro->VERSION;
printf "interface version is %f\n ",$lcdintro->apiversion;

my $width = $lcdintro->width();
my $height = $lcdintro->height();

# create a new GD image
$im = new GD::Image ($width, $height);

# allocate some colors - these are the only valid ones for the G15
$black = $im->colorAllocate (0, 0, 0);
$white = $im->colorAllocate (255, 255, 255);

# fill with black
$im->fill(1,1,$black);

# Draw an oval
$im->arc (80, 22, 95, 42, 0, 360, $white);
# fill it with white
$im->fill(90,32,$white);

# draw a rectangle
$im->rectangle (10, 10, 150, 33, $white);
# fill it
$im->fill(12,12,$white);
$im->fill(145,12,$white);
# draw some text onto the buffer
$im->string(gdSmallFont,30,15,"G15Daemon & GDlib",$black);

#convert the buffer to WBMP format..
my $wbmpdata = $im->wbmp ($white);
#send it to the daemon....
$lcdintro->send($wbmpdata);

# create a graph, and send it on the other connection.
my $graph = GD::Graph::lines->new(160, 44);
$graph->set(
#         x_label           => 'X Label',
#         y_label           => 'Y label',
#         title             => 'Some simple graph',
         y_max_value       => 8,
         y_tick_number     => 8,
         y_label_skip      => 5,
         x_label_skip      => 2,
         dclrs => [ qw(dblue) ]
) or die $my_graph->error;

my $gd = $graph->plot(\@data) or die $graph->error;                                                                                       

# again convert to WBMP format and send it...
my $graphwbmp = $gd->wbmp ($black);
$lcdgraph->send($graphwbmp);

sleep(60);

$lcd->closescreen();
$lcdgraph->closescreen();