Fixed lsec script.

This commit is contained in:
Florian Pose 2007-10-05 08:13:50 +00:00
parent 0ef1a10a1f
commit 072b537d59
1 changed files with 37 additions and 15 deletions

View File

@ -63,7 +63,6 @@ sub query
my $slave_info_file;
my @slaves;
my $slave;
my $abs;
my $line;
my $ring_col_width;
my $alias_col_width;
@ -71,6 +70,7 @@ sub query
my $width;
my $last_alias;
my $alias_index;
my $category;
$master_dir = "/sys/ethercat/master" . $master_index;
@ -87,21 +87,35 @@ sub query
open INFO, $slave_info_file or die
"ERROR: Failed to open $slave_info_file.";
$category = "";
while ($line = <INFO>) {
if ($line =~ /^Name: (.*)$/) {
$slave->{'name'} = $1;
# remember category
if ($line =~ /^([^\s][^:]*):$/) {
$category = $1;
} elsif ($line =~ /^\s*$/) {
$category = "";
}
elsif ($line =~ /^Ring position: (\d+)$/) {
$slave->{'ring_position'} = $1;
}
elsif ($line =~ /Configured station alias: .* \((\d+)\)$/) {
$slave->{'alias'} = $1;
}
elsif ($line =~ /^State: (.+) /) {
$slave->{'state'} = $1;
}
elsif ($line =~ /^Current consumption: (-?\d+) mA$/) {
$slave->{'current'} = $1;
if ($category eq "") {
if ($line =~ /^Ring position: (\d+)$/) {
$slave->{'ring_position'} = $1;
} elsif ($line =~ /^State: (.+) /) {
$slave->{'state'} = $1;
} elsif ($line =~ /^Configured station alias: .* \((\d+)\)$/) {
$slave->{'alias'} = $1;
} elsif ($line =~ /^Current consumption: (-?\d+) mA$/) {
$slave->{'current'} = $1;
}
} elsif ($category eq "Identity") {
if ($line =~ /Vendor ID: .* \((\d+)\)$/) {
$slave->{'vendor'} = $1;
} elsif ($line =~ /Product code: .* \((\d+)\)$/) {
$slave->{'product'} = $1;
}
} elsif ($category eq "General") {
if ($line =~ /Name: (.*)$/) {
$slave->{'name'} = $1;
}
}
}
@ -131,6 +145,14 @@ sub query
$alias_index++;
}
# replace empty name with vendor id and product code
for $slave (@slaves) {
unless (defined $slave->{'name'}) {
$slave->{'name'} = sprintf("0x%08X:0x%08X", $slave->{'vendor'},
$slave->{'product'});
}
}
if (defined $opt{'c'}) { # display power consumtion
$fmt = sprintf " %%%is %%%is %%6i %%6i %%s\n",
$ring_col_width, $alias_col_width;
@ -182,7 +204,7 @@ sub print_usage
print " -m <IDX> Query master <IDX>.\n";
print " -c Display current [mA] ";
print "(3: consumption, 4: remaining).\n";
print " -n Display no coupler lines.\n";
print " -n Do not display lines before aliased slaves.\n";
print " -h Show this help.\n";
exit 0;
}