log_gen => $log_gen,
log_start => $now,
starttime => $now,
- callback => $callback,
+ track => $track,
bytes => [],
};
|| $bytes[2] & 0x0F > 8
|| ($bytes[5] != 0xAA && $bytes[5] != 0xFF);
-=comment
- my @fuel = (0,
- $data[1] >> 4, $data[1] & 0x0f,
- $data[2] >> 4, $data[2] & 0x0f,
- $data[3] >> 4, $data[3] & 0x0f,
- );
- for my $car (1..6) {
- next if defined $controllers[$car-1]
- &&$controllers[$car-1] == $fuel[$car];
-
- my $progressbar = $builder->get_object(
- 'progressbar_fuel'.$car);
- $progressbar->set_fraction($fuel[$car]/8);
- }
-=cut
+ my @fuel = (
+ $bytes[1] >> 4, $bytes[1] & 0x0f,
+ $bytes[2] >> 4, $bytes[2] & 0x0f,
+ $bytes[3] >> 4, $bytes[3] & 0x0f,
+ );
- return $msg; # FIXME - to be implemented
+ for my $car (0..5) {
+ $track->car($car)->set_fuel($fuel[$car]);
+ }
+
+ return $msg;
}
my $msg = 'Strange controller_status packet'
if $fail;
-=comment
- for my $controller (1..6) {
- my $byte = $data[$controller];
- next if defined $controllers[$controller-1]
- && $controllers[$controller-1] == $byte;
- $controllers[$controller-1] = $byte;
-
- my $progressbar = $builder->get_object(
- 'progressbar_controller'.$controller);
- if ($byte == 0xaa) {
- $progressbar->set_text('inactive');
- $progressbar->set_fraction(0);
- next;
- }
- my $light = !($byte & 0x20);
- my $backbutton = !($byte & 0x10);
- my $speed = $byte & 0x0f;
-
- my $text = ($backbutton ? '+' : '') . $speed;
- $progressbar->set_text($text);
- $progressbar->set_fraction($speed / 12);
+ my @fuel = (
+ $bytes[1] >> 4, $bytes[1] & 0x0f,
+ $bytes[2] >> 4, $bytes[2] & 0x0f,
+ $bytes[3] >> 4, $bytes[3] & 0x0f,
+ );
+
+ for my $car (0..5) {
+ my $byte = $bytes[$car];
+
+ if ($byte == 0xAA) {
+ $track->car($car)->set_throttle(undef);
+ next;
}
-=cut
- return $msg; # FIXME - to be implemented
+ my $light = !($byte & 0x20);
+ my $backbutton = !($byte & 0x10);
+ my $throttle = $byte & 0x0f;
+
+ $track->car($car)->set_throttle($throttle);
+ $track->car($car)->set_light($light);
+ $track->car($car)->set_backbutton($backbutton);
+ }
+
+ return $msg;
}
1;