#!/usr/local/bin/perl # FILE .../hp200lx-db/DB/diag.pm # # written: 2001-01-01 # latest update: 2001-01-01 18:13:36 # $Id: diag.pm,v 1.1 2001/01/01 20:31:05 gonter Exp $ # package HP200LX::DB::diag; use strict; use vars qw($VERSION @ISA @EXPORT); use Exporter; $VERSION= '0.09'; @ISA= qw(Exporter); @EXPORT= qw( print_db_def print_db_def_html ); # ---------------------------------------------------------------------------- sub print_db_def { my $db= shift; local *FO= shift; $db->dump_def (*FO); print FO "database definition:\n"; $db->show_db_def (*FO); # print FO "card definition:\n"; $db->show_card_def (*FO); my $vpt_cnt= $db->get_viewptdef_count; print FO "view point count=$vpt_cnt\n"; my $i; for ($i= 0; $i <= $vpt_cnt+100; $i++) { print FO "view point definition [$i]:\n"; my $def= $db->find_viewptdef ($i); last unless (defined ($def)); # print FO ">>> ", join (':', keys %$def), "\n"; print FO "&type:vpt\n"; print FO "&idx:$i\n"; HP200LX::DB::vpt::show_viewptdef ($def, *FO); } } # ---------------------------------------------------------------------------- sub print_db_def_html { my $db= shift; local *FO= shift; my @CDEF= @{$db->{'carddef'}}; my @FDEF= @{$db->{'fielddef'}}; my ($i, $j); my @CARD_FIELDS= qw(x y h w Lsize); print FO < idxnametype fidoff resflags EOX foreach $j (@CARD_FIELDS) { print FO "", $j, ""; } print FO < numnamesize EOX for ($i= 0;; $i++) { my $cdef= shift (@CDEF); my $fdef= shift (@FDEF); last unless (defined ($cdef) && defined ($fdef)); # print FO "cdef=$cdef fdef=$fdef\n"; my $type= $fdef->{'ftype'}; my $ftype= HP200LX::DB::get_field_type ($type); my $ttype= $ftype->{Desc} || "USER$type"; my $x_siz= $ftype->{Size}; # print ">> type=$type ftype=$ftype ttype=$ttype\n"; my $x_off= sprintf ('0x%02X', $fdef->{off}); my $x_flg= sprintf ('0x%02X', $fdef->{flg}); my $x_name= $fdef->{name}; # T2D!!! $x_name=~ s/[\x80-\xFF]/?/g; print FO "$i'$x_name'", "$type$ttype$x_siz", "$fdef->{fid}$x_off", "$fdef->{res}$x_flg"; foreach $j (@CARD_FIELDS) { print FO "", $cdef->{$j}, ""; } print FO "\n"; } print FO < EOX } # ---------------------------------------------------------------------------- 1;