App-Device-Chip-UI
view release on metacpan or search on metacpan
lib/App/Device/Chip/UI/SPIBox.pm view on Meta::CPAN
$_protocol->configure( mode => 0 );
$self->append_row(
[
Tickit::Widget::Static->new(
text => "Write",
valign => "middle",
),
my $writeentry = Tickit::Widget::Entry->new,
my $writebutton = Tickit::Widget::Button->new(
label => "Write",
),
]
);
$writeentry->set_on_enter( sub {
$writebutton->click;
});
$writebutton->set_on_click( sub {
my $text = $writeentry->text;
$writeentry->set_text( "" );
try {
$self->write( $text );
}
catch ( $e ) {
print STDERR "TODO: Error $e";
}
});
$self->append_row(
[
Tickit::Widget::Static->new(
text => "Read",
valign => "middle",
),
my $readsizeentry = Tickit::Widget::Entry->new,
my $readbutton = Tickit::Widget::Button->new(
label => "Read",
),
]
);
$readsizeentry->set_on_enter( sub {
$readbutton->click;
});
$readbutton->set_on_click( sub {
$self->read( $readsizeentry->text );
$readsizeentry->set_text( "" );
});
$self->add( $self->rowcount, 1,
$_readresultlabel = Tickit::Widget::Static->new(
text => "",
class => "readout",
),
col_expand => 1,
row_expand => 1,
);
# TODO: selection of SS GPIO line
}
method read ( $len )
{
$self->_do_write( "\x00" x $len );
}
method _do_write ( $words_out )
{
my $words_in = $_protocol->readwrite( $words_out )->get;
$_readresultlabel->set_text(
join " ", map { sprintf "0x%02X", ord } split m//, $words_in,
);
}
0x55AA;
( run in 0.984 second using v1.01-cache-2.11-cpan-5623c5533a1 )