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 )