sub parse108A { my $data=shift; my $len=length($data); my ($obj,$tmp,$j,$k); $obj->{timestamp}=getTimestamp($data); $len=$len-12; ($tmp,$data)=unpack("a12 a$len",$data); my $fingId; $len = $len-10; ($obj->{srchState},$obj->{MSTR},$obj->{MSTRError},$obj->{MSTRPilotPN},$obj->{numF},$data)=unpack("C V v v C a$len",$data); my ($pilotPN,$rtcOffset,$c2i,$res1,$res2,$ant0c2i,$ant1c2i); $obj->{numSectors}=0; for($j=0;$j<$obj->{numF};$j++){ $len=$len-14; ($pilotPN,$rtcOffset,$c2i,$res1,$res2,$ant0c2i,$ant1c2i,$data) = unpack("v V v C C v v a$len",$data); if($pilotPN < 1024){ if(not defined($obj->{sectors}->{$pilotPN})){ $obj->{sectors}->{$pilotPN}->{numFingers}=0; $obj->{numSectors}++; } $fingId=$obj->{sectors}->{$pilotPN}->{numFingers}; $obj->{sectors}->{$pilotPN}->{$fingId}->{c2i} = $c2i; if($rtcOffset > 2**31-1){ $obj->{sectors}->{$pilotPN}->{$fingId}->{delay} = $rtcOffset-2**32; } else{ $obj->{sectors}->{$pilotPN}->{$fingId}->{delay} = $rtcOffset; } $obj->{sectors}->{$pilotPN}->{numFingers}++; } } return $obj; }