RDI_BB_Read.pl
changeset 12 0f89b1523648
parent 10 c835cd613f3e
child 14 8c79b38a7086
equal deleted inserted replaced
11:9c3b147b4372 12:0f89b1523648
     1 #======================================================================
     1 #======================================================================
     2 #                    R D I _ B B _ R E A D . P L 
     2 #                    R D I _ B B _ R E A D . P L 
     3 #                    doc: Sat Jan 18 14:54:43 2003
     3 #                    doc: Sat Jan 18 14:54:43 2003
     4 #                    dlm: Mon Mar 25 21:38:37 2013
     4 #                    dlm: Mon Apr 29 12:49:40 2013
     5 #                    (c) 2003 A.M. Thurnherr
     5 #                    (c) 2003 A.M. Thurnherr
     6 #                    uE-Info: 632 0 NIL 0 0 72 74 2 4 NIL ofnI
     6 #                    uE-Info: 53 46 NIL 0 0 72 74 2 4 NIL ofnI
     7 #======================================================================
     7 #======================================================================
     8 
     8 
     9 # Read RDI BroadBand Binary Data Files (*.[0-9][0-9][0-9])
     9 # Read RDI BroadBand Binary Data Files (*.[0-9][0-9][0-9])
    10 
    10 
    11 # HISTORY:
    11 # HISTORY:
    47 #				  - modified to allow processing files without time info
    47 #				  - modified to allow processing files without time info
    48 #	May 12, 2011: - added code to report built-in-test errors
    48 #	May 12, 2011: - added code to report built-in-test errors
    49 #	Mar 19, 2013: - added support for WH600 data file (58 fixed leader bytes)
    49 #	Mar 19, 2013: - added support for WH600 data file (58 fixed leader bytes)
    50 #	Mar 20, 2013: - removed DATA_FORMAT stuff
    50 #	Mar 20, 2013: - removed DATA_FORMAT stuff
    51 #				  - added support for BT data in subset of ensembles
    51 #				  - added support for BT data in subset of ensembles
       
    52 #	Apr 29, 2013: - changed semantics to assume EOF when unexpected number of data types
       
    53 #					are present in an ensemble
    52 
    54 
    53 # FIRMWARE VERSIONS:
    55 # FIRMWARE VERSIONS:
    54 #	It appears that different firmware versions generate different file
    56 #	It appears that different firmware versions generate different file
    55 #	structures. Currently (Sep 2005) these routines have been tested
    57 #	structures. Currently (Sep 2005) these routines have been tested
    56 #	with the following firmware versions (as reported by [listHdr]):
    58 #	with the following firmware versions (as reported by [listHdr]):
   530 		seek(WBRF,$start_ens,0) || die("$WBRcfn: $!");
   532 		seek(WBRF,$start_ens,0) || die("$WBRcfn: $!");
   531 		read(WBRF,$buf,6) == 6 || last;
   533 		read(WBRF,$buf,6) == 6 || last;
   532 		($hid,$did,$ens_length,$dummy,$ndt) = unpack('CCvCC',$buf);
   534 		($hid,$did,$ens_length,$dummy,$ndt) = unpack('CCvCC',$buf);
   533 		$hid == 0x7f || die(sprintf($FmtErr,$WBRcfn,"Header",$hid,0));
   535 		$hid == 0x7f || die(sprintf($FmtErr,$WBRcfn,"Header",$hid,0));
   534 		$did == 0x7f || die(sprintf($FmtErr,$WBRcfn,"Data Source",$did,0));
   536 		$did == 0x7f || die(sprintf($FmtErr,$WBRcfn,"Data Source",$did,0));
   535 		printf(STDERR "\n$WBRcfn: WARNING: unexpected number of data types (%d)\n",$ndt)
   537 		printf(STDERR "\n$WBRcfn: WARNING: unexpected number of data types (%d, ens=$ens)\n",$ndt),last
   536 				unless ($ndt == 6 || $ndt == 7);
   538 				unless ($ndt == 6 || $ndt == 7);
   537 		$BT_present = ($ndt == 7);
   539 		$BT_present = ($ndt == 7);
   538 		read(WBRF,$buf,2*$ndt) == 2*$ndt || die("$WBRcfn: $!");
   540 		read(WBRF,$buf,2*$ndt) == 2*$ndt || die("$WBRcfn: $!");
   539 		@WBRofs = unpack("v$ndt",$buf);
   541 		@WBRofs = unpack("v$ndt",$buf);
   540 		$fixed_leader_bytes = $WBRofs[1] - $WBRofs[0];
   542 		$fixed_leader_bytes = $WBRofs[1] - $WBRofs[0];