summaryrefslogtreecommitdiff
path: root/xpp/utils/zaptel_hardware
diff options
context:
space:
mode:
Diffstat (limited to 'xpp/utils/zaptel_hardware')
-rwxr-xr-xxpp/utils/zaptel_hardware83
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
-