HiPi
view release on metacpan or search on metacpan
lib/HiPi/Interface/EPaper/TypeB.pm view on Meta::CPAN
$temp |= 0xC0 >> (($bit - 4) * 2);
}
}
push @bytes, $temp;
if( @bytes == $chunksize) {
$self->send_data(@bytes);
@bytes = ();
}
}
$self->send_data( @bytes ) if @bytes;
$self->delay(2);
return;
}
sub _do_update_1_bpp {
my($self, $transmission, $buffer, $bufferbytes) = @_;
$self->send_command( $transmission );
$self->delay(2);
my $chunksize = $self->spi_chunksize;
my $byteloops = int($bufferbytes / $chunksize);
my $lastbytes = $bufferbytes % $chunksize;
my $index;
for ($index = 0; $index < $byteloops; $index++) {
my $start = $index * $chunksize;
my $end = $start + $chunksize - 1;
$self->send_data( @$buffer[$start..$end] );
}
if( $lastbytes ) {
my $start = $index * $chunksize;
my $end = $start + $lastbytes - 1;
$self->send_data( @$buffer[$start..$end] );
}
$self->delay(2);
return;
}
sub get_vcom_and_data {
my($self) = @_;
my $vcom = $self->vcom_and_data_byte & HIPI_BORDER_DDXCDI_MASK;
my $control = $self->border_control;
my $border = HIPI_BORDER_FLOAT;
if( $control == EPD_BORDER_BLACK ) {
$border = HIPI_BORDER_BLACK;
} elsif( $control == EPD_BORDER_COLOUR ) {
if( $self->is_tri_colour ) {
$border = HIPI_BORDER_COLOUR;
} else {
$border = HIPI_BORDER_BLACK;
}
} elsif( $control == EPD_BORDER_WHITE ) {
$border = HIPI_BORDER_WHITE;
}
my $vcdata = $border | $vcom;
# warn sprintf('RETURNING VCOM DATA 0x%X', $vcdata);
return $vcdata;
}
1;
__END__
( run in 3.033 seconds using v1.01-cache-2.11-cpan-97f6503c9c8 )