diff options
author | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-05-13 20:01:23 +0000 |
---|---|---|
committer | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-05-13 20:01:23 +0000 |
commit | 8eeb67728cc1db4007233f862c61376a094c9d41 (patch) | |
tree | 7db845e07d7a01a47427e8817aba6715251f0841 /xpp/utils/zconf | |
parent | aee310d11e62a33c09bf7db1d034db8986155fae (diff) |
xpp r5723: Includes, among others:
* New firmware protocol version: 3.0 .
* New numbers for the device types: (e.g. in card_init* scripts)
- FXS: 1 (was: 3)
- FXO: 2 (was: 4)
- BRI: 3 (was: 6 for TE, 7 for NT)
- PRI: 4 (was: 9)
* Init scripts of FXS and FXO modules are now written in Perl as well
(be sure to have File::Basename, e.g: perl-modules in Debian).
* calibrate_slics merged into init_card_1_30 .
* Module parameter print_dbg replaced with debug . Same meaning.
* init_fxo_modes removed: content moved into init_card_2_30, verified
at build time.
* Code tested with sparse. Most warnings were fixed.
* Set ZT_SIG_DACS for the bchans in the PRI and BRI modules to not get
ignored by ztscan.
* Handle null config_desc we get from some crazy USB controllers.
* genzaptelconf: Fix reporting of empty slots in list mode.
* xpp_blink can now blink a single analog port.
* "slics" has been renamed "chipregs".
* Fixed a small typo in fpga_load(8).
* Fixed bashism in xpp_fxloader.
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.2@4264 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'xpp/utils/zconf')
-rw-r--r-- | xpp/utils/zconf/Zaptel/Chans.pm | 15 | ||||
-rw-r--r-- | xpp/utils/zconf/Zaptel/Xpp/Line.pm | 34 | ||||
-rw-r--r-- | xpp/utils/zconf/Zaptel/Xpp/Xbus.pm | 3 | ||||
-rw-r--r-- | xpp/utils/zconf/Zaptel/Xpp/Xpd.pm | 2 |
4 files changed, 51 insertions, 3 deletions
diff --git a/xpp/utils/zconf/Zaptel/Chans.pm b/xpp/utils/zconf/Zaptel/Chans.pm index b02bf24..6f83f77 100644 --- a/xpp/utils/zconf/Zaptel/Chans.pm +++ b/xpp/utils/zconf/Zaptel/Chans.pm @@ -184,4 +184,19 @@ sub battery($) { return $line->battery; } +sub blink($$) { + my $self = shift or die; + my $on = shift; + my $span = $self->span or die; + + my $xpd = $span->xpd; + my $index = $self->index; + return undef if !$xpd; + + my @lines = @{$xpd->lines}; + my $line = $lines[$index]; + return $line->blink($on); +} + + 1; diff --git a/xpp/utils/zconf/Zaptel/Xpp/Line.pm b/xpp/utils/zconf/Zaptel/Xpp/Line.pm index 0014aed..2472c3b 100644 --- a/xpp/utils/zconf/Zaptel/Xpp/Line.pm +++ b/xpp/utils/zconf/Zaptel/Xpp/Line.pm @@ -18,12 +18,44 @@ sub new($$$) { my $index = shift; defined $index or die; my $self = {}; - bless $self, ref($xpd); + bless $self, $pack; $self->{XPD} = $xpd; $self->{INDEX} = $index; return $self; } +sub blink($$) { + my $self = shift; + my $on = shift; + my $xpd = $self->xpd; + my $result; + + my $file = "$proc_base/" . $xpd->fqn . "/blink"; + die "$file is missing" unless -f $file; + # First query + open(F, "$file") or die "Failed to open $file for reading: $!"; + $result = <F>; + chomp $result; + close F; + if(defined($on)) { # Now change + my $onbitmask = 1 << $self->index; + my $offbitmask = $result & ~$onbitmask; + + $result = $offbitmask; + $result |= $onbitmask if $on; + open(F, ">$file") or die "Failed to open $file for writing: $!"; + print F "$result"; + if(!close(F)) { + if($! == 17) { # EEXISTS + # good + } else { + undef $result; + } + } + } + return $result; +} + sub create_all($$) { my $pack = shift or die "Wasn't called as a class method\n"; my $xpd = shift || die; diff --git a/xpp/utils/zconf/Zaptel/Xpp/Xbus.pm b/xpp/utils/zconf/Zaptel/Xpp/Xbus.pm index a5fcf1e..e840f14 100644 --- a/xpp/utils/zconf/Zaptel/Xpp/Xbus.pm +++ b/xpp/utils/zconf/Zaptel/Xpp/Xbus.pm @@ -41,7 +41,8 @@ sub get_xpd_by_number($$) { my $xpdid = shift; die "Missing XPD id parameter" unless defined $xpdid; my @xpds = $xbus->xpds; - return $xpds[$xpdid]; + my ($wanted) = grep { $_->id eq $xpdid } @xpds; + return $wanted; } sub new($$) { diff --git a/xpp/utils/zconf/Zaptel/Xpp/Xpd.pm b/xpp/utils/zconf/Zaptel/Xpp/Xpd.pm index 326aafd..1ddb5c8 100644 --- a/xpp/utils/zconf/Zaptel/Xpp/Xpd.pm +++ b/xpp/utils/zconf/Zaptel/Xpp/Xpd.pm @@ -28,7 +28,7 @@ sub blink($$) { close F; if(defined($on) and $on ne $result) { # Now change open(F, ">$file") or die "Failed to open $file for writing: $!"; - print F ($on)?"1":"0"; + print F ($on)?"0xFFFF":"0"; if(!close(F)) { if($! == 17) { # EEXISTS # good |