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 )