+ my $packet_size = $cmd >= 0x40 && $cmd <= 0x46 ? 4 : 9;
+ last if @bytes <= $packet_size;
+
+ if ($bytes[$packet_size] != 0x05
+ || SCX::CRC::digest(@bytes[0..$packet_size-2])
+ != $bytes[$packet_size-1]) {
+ push @bad_bytes, shift @bytes;
+ next;
+ }
+