BT368i
view release on metacpan or search on metacpan
examples/bt368i-tk.pl view on Meta::CPAN
$gsa_tab->Entry(-textvariable=>\$gsa->{'prn_10'})->grid(-row=>12, -column=>1);
$gsa_tab->Label(-text => "prn_11", -anchor=>'w', -width=>25)->grid(-row=>13, -column=>0);
$gsa_tab->Entry(-textvariable=>\$gsa->{'prn_11'})->grid(-row=>13, -column=>1);
$gsa_tab->Label(-text => "position_diliution", -anchor=>'w', -width=>25)->grid(-row=>14, -column=>0);
$gsa_tab->Entry(-textvariable=>\$gsa->{'position_diliution'})->grid(-row=>14, -column=>1);
$gsa_tab->Label(-text => "horizontal_diliution", -anchor=>'w', -width=>25)->grid(-row=>15, -column=>0);
$gsa_tab->Entry(-textvariable=>\$gsa->{'horizontal_diliution'})->grid(-row=>15, -column=>1);
$gsa_tab->Label(-text => "vertical_diliution", -anchor=>'w', -width=>25)->grid(-row=>16, -column=>0);
$gsa_tab->Entry(-textvariable=>\$gsa->{'vertical_diliution'})->grid(-row=>16, -column=>1);
}
#----------------------------------------#
#
#----------------------------------------#
sub vtg {
$vtg_tab->Label(-text => "true_track", -anchor=>'w', -width=>25)->grid(-row=>0, -column=>0);
$vtg_tab->Entry(-textvariable=>\$vtg->{'true_track'})->grid(-row=>0, -column=>1);
$vtg_tab->Label(-text => "magnetic_track", -anchor=>'w', -width=>25)->grid(-row=>1, -column=>0);
$vtg_tab->Entry(-textvariable=>\$vtg->{'magnetic_track'})->grid(-row=>1, -column=>1);
$vtg_tab->Label(-text => "ground_speed_knots", -anchor=>'w', -width=>25)->grid(-row=>2, -column=>0);
$vtg_tab->Entry(-textvariable=>\$vtg->{'ground_speed_knots'})->grid(-row=>2, -column=>1);
$vtg_tab->Label(-text => "ground_speed_kilometers", -anchor=>'w', -width=>25)->grid(-row=>3, -column=>0);
$vtg_tab->Entry(-textvariable=>\$vtg->{'ground_speed_kilometers'})->grid(-row=>3, -column=>1);
}
#----------------------------------------#
#
#----------------------------------------#
sub select_port {
my $port = shift;
#print "selecing $port...\n";
if ($port ne $bt368i->{serialport}) {
if ($bt368i->{serial}) {
$bt368i->{serial}->close || die "failed to close serialport";
undef $bt368i->{serial}; # frees memory back to perl
}
# assign what they selected
$bt368i->{serialport} = $port;
# connect to the serial port
$bt368i->connect();
}
}
#----------------------------------------#
# build the menu bar
#----------------------------------------#
sub build_menubar {
# Create the menubar and File and Quit menubuttons. Note
# that the cascade's menu widget is automatically created.
my $menubar = $mw->Menu;
$mw->configure(-menu => $menubar);
my $file = $menubar->cascade(-label => '~File');
my $port = $menubar->cascade(-label => '~Port');
my $help = $menubar->cascade(-label => '~Help', -tearoff => 0);
open(CMD, "ls -l /dev/tty.*|");
while(<CMD>) {
chomp();
$_ =~ /tty\.(.*)$/;
my $tty = $1;
# Create the menuitems for each menu. First, the File menu item.
$port->command(-label => $tty, -command => [\&select_port, $tty]);
}
close(CMD);
# Create the menuitems for each menu. First, the File menu item.
$file->command(-label => "~Quit", -command => \&quit);
# Finally, the Help menuitems.
$help->command(-label => 'Version');
$help->separator;
$help->command(-label => 'About');
my $ver_dialog = $mw->Dialog(
-title => 'BT368i Version',
-text => "BT368i\n\nVersion $VERSION",
-buttons => ['OK'],
-bitmap => 'info');
my $about_dialog = $mw->Dialog(
-title => 'About BT368i',
-text => 'BT368i was built by Travis Kent Beste. He can be reached at travis@tencorners.com',
-buttons => ['OK']);
my $menu = $help->cget('-menu');
$menu->entryconfigure('Version', -command => [$ver_dialog => 'Show']);
$menu->entryconfigure('About', -command => [$about_dialog => 'Show']);
$menubar; # return the menubar
}
#----------------------------------------#
# quit
#----------------------------------------#
sub quit {
exit(0);
}
( run in 2.408 seconds using v1.01-cache-2.11-cpan-75ffa21a3d4 )