diff options
Diffstat (limited to 'xpp/utils/zaptel_hardware')
-rwxr-xr-x | xpp/utils/zaptel_hardware | 83 |
1 files changed, 56 insertions, 27 deletions
diff --git a/xpp/utils/zaptel_hardware b/xpp/utils/zaptel_hardware index 473be1f..a356f2c 100755 --- a/xpp/utils/zaptel_hardware +++ b/xpp/utils/zaptel_hardware @@ -9,6 +9,7 @@ # use strict; use File::Basename; +use Getopt::Std; BEGIN { my $dir = dirname($0); unshift(@INC, "$dir", "$dir/zconf"); } use Zaptel; @@ -18,23 +19,23 @@ use Zaptel::Xpp::Xbus; use Zaptel::Hardware; sub usage { - die "Usage: $0\n"; + die "Usage: $0 [-v][-x]\n"; } +our ($opt_v, $opt_x); +getopts('vx') || usage; @ARGV == 0 or usage; -Zaptel::Hardware->scan_hardware; - -my @hardware = Zaptel::Hardware->devices; +my $hardware = Zaptel::Hardware->scan; my @spans = Zaptel::spans; sub show_xbus($) { my $xbus = shift or die; my @xpds = $xbus->xpds; - my $serialnum = $xbus->serial(); + my $label = '[' . $xbus->label() . ']'; my $connector = ($xbus->status eq 'CONNECTED') ? $xbus->connector : "MISSING"; - printf " SERIAL=%-10s CONNECTOR=%-20s\n", $serialnum, $connector; - foreach my $xpd (sort { $a->num <=> $b->num } @xpds) { + printf " LABEL=%-20s CONNECTOR=%-20s\n", $label, $connector; + foreach my $xpd (@xpds) { my $reg = $xpd->zt_registration; my $span; my $spanstr; @@ -45,7 +46,7 @@ sub show_xbus($) { $spanstr = "Unregistered"; } my $master = ''; - $master = "XPP-SYNC" if $xpd->is_sync_master; + #$master = "XPP-SYNC" if $xpd->is_sync_master; $master .= " ZAPTEL-SYNC" if defined($span) && $span->is_zaptel_sync_master; printf "\t%-10s: %-8s %s %s\n", $xpd->fqn, $xpd->type, $spanstr, $master; } @@ -54,31 +55,41 @@ sub show_xbus($) { my %seen; my $format = "%-20s %-12s %4s:%4s %s\n"; -foreach my $dev (@hardware) { - my $xbus = $dev->xbus; +sub show_disconnected(%) { + my %seen = @_; + + my $notified_lost = 0; + foreach my $xbus (Zaptel::Xpp::xbuses('SORT_CONNECTOR')) { + if(!$seen{$xbus->name}) { + print "----------- XPP Spans with disconnected hardware -----------\n" + unless $notified_lost++; + printf($format, $xbus->name, '', '', '', "NO HARDWARE"); + show_xbus($xbus) if $opt_v; + } + } +} + +foreach my $dev ($hardware->device_list) { my $driver = $dev->driver || ""; - my $loaded = $dev->loaded; + my $xbus; + my $loaded; + if($dev->is_astribank) { + $xbus = $dev->xbus; + $loaded = $dev->loaded; + } die "driver should be '$driver' but is actually '$loaded'" if defined($loaded) && $driver ne $loaded; $driver = "$driver" . (($loaded) ? "+" : "-"); my $description = $dev->description || ""; printf $format, $dev->hardware_name, $driver, $dev->vendor, $dev->product, $description; - if(!$xbus) { + if(!defined $xbus || !$xbus) { next; } $seen{$xbus->name} = 1; - show_xbus($xbus); + show_xbus($xbus) if $opt_v; } -my $notified_lost = 0; -foreach my $xbus (Zaptel::Xpp::xbuses('SORT_CONNECTOR')) { - if(!$seen{$xbus->name}) { - print "----------- XPP Spans with disconnected hardware -----------\n" - unless $notified_lost++; - printf $format, $xbus->name, '', '', "NO HARDWARE"; - show_xbus($xbus); - } -} +show_disconnected(%seen) if $opt_x; __END__ @@ -88,7 +99,22 @@ zaptel_hardware - Shows Zaptel hardware devices. =head1 SYNOPSIS -zaptel_hardware +zaptel_hardware [-v][-x] + +=head1 OPTIONS + +=over + +=item -v + +Verbose ouput - show spans used by each device etc. Currently only +implemented for the Xorcom Astribank. + +=item -x + +Show disconnected Astribank unit, if any. + +=back =head1 DESCRIPTION @@ -116,20 +142,23 @@ Without drivers loaded: usb:001/003 xpp_usb- e4e4:1152 Astribank-multi FPGA-firmware pci:0000:01:0b.0 wctdm- e159:0001 Wildcard TDM400P REV H -With drivers loaded: +With drivers loaded, without -v: + usb:001/002 xpp_usb+ e4e4:1152 Astribank-multi FPGA-firmware + usb:001/003 xpp_usb+ e4e4:1152 Astribank-multi FPGA-firmware + pci:0000:01:0b.0 wctdm+ e159:0001 Wildcard TDM400P REV E/F +With drivers loaded, with -v: usb:001/002 xpp_usb+ e4e4:1152 Astribank-multi FPGA-firmware - SERIAL=[usb:123] CONNECTOR=usb-0000:00:1d.7-1 + LABEL=[usb:123] CONNECTOR=usb-0000:00:1d.7-1 XBUS-00/XPD-00: FXS Span 2 XBUS-00/XPD-10: FXS Span 3 XBUS-00/XPD-20: FXS Span 4 XBUS-00/XPD-30: FXS Span 5 usb:001/003 xpp_usb+ e4e4:1152 Astribank-multi FPGA-firmware - SERIAL=[usb:4567] CONNECTOR=usb-0000:00:1d.7-4 + LABEL=[usb:4567] CONNECTOR=usb-0000:00:1d.7-4 XBUS-01/XPD-00: FXS Span 6 XPP-SYNC XBUS-01/XPD-10: FXO Span 7 XBUS-01/XPD-20: FXO Span 8 XBUS-01/XPD-30: FXO Span 9 pci:0000:01:0b.0 wctdm+ e159:0001 Wildcard TDM400P REV E/F - |