Slinke
view release on metacpan or search on metacpan
}
}
return join( " ", @newdata );
}
sub int8ToRLC {
my $this = shift;
my $data = shift;
my $oldsign = 33; # don't use 0x00 or 0x80
my $numtime = 0;
my $num = 0;
my $signallen = 0;
my $sign = 1;
my $numstr;
foreach my $i ( split / */, $data ) {
$i = ord( $i );
$sign = $i & 0x80;
$i &= 0x7f;
if ($sign != $oldsign) {
# signal change
if ($oldsign != 33) {
# write out num first
$num = -$num if $sign == 0x80; # use sign to indicate 0 periods
$numtime = $num * $this->{ IRSAMPLEPERIOD } + $Slinke::IRSKEWADJUST;
$numstr .= sprintf( "%.1lf ", $numtime * 1e6 ); # convert to microseconds
$signallen += abs($numtime);
}
$oldsign = $sign;
$num = $i;
}
else {
# same signal
$num += $i;
}
}
# write out the last one
$num = -$num if !$sign; # use sign to indicate 0 periods;
( run in 0.769 second using v1.01-cache-2.11-cpan-71847e10f99 )