]> www.fi.muni.cz Git - slotcarman.git/blob - gui.pl
Move qualification start to SCX::Track
[slotcarman.git] / gui.pl
1 #!/usr/bin/perl -w
2
3 use strict;
4 use utf8;
5
6 use Gtk2 '-init';
7 use Glib qw(TRUE FALSE);
8
9 use SCX::GUI;
10 use SCX::Track;
11 use SCX::Reader;
12
13 my $gui = SCX::GUI->new({ img_height => 80 });
14 my $track = SCX::Track->new({ gui => $gui });
15
16 my $reader;
17 eval {
18         $reader = SCX::Reader->new({
19                 portname   => '/dev/ttyUSB0',
20                 logfile    => 'log',
21                 track      => $track,
22         });
23 };
24
25 $track->car(0)->set_model('F1 Ferrari');
26 $track->car(1)->set_model('F1 McLaren');
27 $track->car(2)->set_model('F1 Williams');
28 $track->car(3)->set_model('Citroen Xsara');
29 $track->car(4)->set_model('Citroen C4');
30 $track->car(5)->set_model('Ford Focus');
31
32 $track->car(0)->set_driver('Ivi');
33 $track->car(1)->set_driver('Filípek');
34 $track->car(2)->set_driver('Táta');
35
36 if ($reader) {
37         Glib::IO->add_watch(fileno($reader->fh), 'in', \&scx_read, $reader);
38 } else {
39         # Just display some random values
40         $gui->rounds('5/13');
41         $gui->time('53.4');
42         $gui->best_lap('12.3');
43
44         $track->car(0)->set_lap(13);
45         $track->car(1)->set_lap(11);
46         $track->car(2)->set_lap(10);
47         $track->car(3)->set_lap(undef);
48         $track->car(4)->set_lap(undef);
49         $track->car(5)->set_lap(undef);
50
51         $track->car(0)->set_laptime(9.12322);
52         $track->car(1)->set_laptime(15.313);
53         $track->car(2)->set_laptime(5.989);
54
55         $track->car(0)->set_fuel(6);
56         $track->car(1)->set_fuel(2);
57         $track->car(2)->set_fuel(8);
58
59         $track->car(0)->set_throttle(0);
60         $track->car(1)->set_throttle(8);
61         $track->car(2)->set_throttle(12);
62 }
63
64 $gui->show;
65
66 Gtk2->main();
67
68 exit 0;
69
70 sub quit {
71         Gtk2->main_quit;
72         return FALSE;
73 }
74
75 sub scx_read {
76         my ($event, $fh, $reader) = @_;
77
78         $reader->read();
79         return TRUE;
80 }
81