Device-Chip-PMS5003
view release on metacpan or search on metacpan
lib/Device/Chip/PMS5003.pm view on Meta::CPAN
# A notification should be header, length, data
my ( $sof, $len ) = unpack( "a2 s>", $buf );
# Buffer length should be 28
$len == 28 or goto next_packet;
4 + length $buf >= $len or next;
my @data = unpack( "s>*", substr $buf, 4, 28 );
my $got_checksum = pop @data;
my $want_checksum = 0;
$want_checksum += ord for split m//, substr $buf, 0, 30;
if( $got_checksum != $want_checksum ) {
# Checksum failed
goto next_packet;
}
substr( $buf, 0, 32 ) = "";
$self->on_data( @data );
( run in 2.151 seconds using v1.01-cache-2.11-cpan-71847e10f99 )