listEns
changeset 18 bb7bb9f83db9
parent 13 b176da8559b3
child 21 0b5bbe60131c
--- a/listEns
+++ b/listEns
@@ -2,9 +2,9 @@
 #======================================================================
 #                    L I S T E N S 
 #                    doc: Sat Jan 18 18:41:49 2003
-#                    dlm: Wed Aug  7 10:38:17 2013
+#                    dlm: Tue Mar  4 12:56:36 2014
 #                    (c) 2003 A.M. Thurnherr
-#                    uE-Info: 215 0 NIL 0 0 72 2 2 4 NIL ofnI
+#                    uE-Info: 46 64 NIL 0 0 72 2 2 4 NIL ofnI
 #======================================================================
 
 # Print useful info from the ensemble list or dump ensembles to
@@ -42,6 +42,8 @@
 #				  - added sounspeed correction warning
 #				  - changed -E from prefix to suffix
 #				  - added active header line to -E output
+#	Mar  4, 2014: - added partial support for DATA_SOURCE_ID
+#				  - added support for missing PITCH/ROLL/HEADING
 
 # Notes:
 #	- -E outputs data in earth coordinates, unless -b is set also
@@ -134,14 +136,19 @@
 		{
 			my($e) = @_;
 			
-			printf('%d %lf %d %g %g %g %g %g %g',
+			printf('%d %lf %d %g',
 				$dta{ENSEMBLE}[$e]->{NUMBER},
 				$dta{ENSEMBLE}[$e]->{UNIX_TIME},
 				$dta{ENSEMBLE}[$e]->{XDUCER_FACING_UP} ? 1 : 0,
 				$dta{ENSEMBLE}[$e]->{TEMPERATURE},
-				$dta{ENSEMBLE}[$e]->{HEADING},
-				$dta{ENSEMBLE}[$e]->{PITCH},
-				$dta{ENSEMBLE}[$e]->{ROLL},
+			);
+			if (defined($dta{ENSEMBLE}[$e]->{HEADING})) { printf(' %g',$dta{ENSEMBLE}[$e]->{HEADING}); }
+			else { printf(' nan'); }
+			if (defined($dta{ENSEMBLE}[$e]->{PITCH})) { printf(' %g',$dta{ENSEMBLE}[$e]->{PITCH}); }
+			else { printf(' nan'); }
+			if (defined($dta{ENSEMBLE}[$e]->{ROLL})) { printf(' %g',$dta{ENSEMBLE}[$e]->{ROLL}); }
+			else { printf(' nan'); }
+			printf(' %g %g',
 				$dta{ENSEMBLE}[$e]->{ADC_XMIT_VOLTAGE},
 				$dta{ENSEMBLE}[$e]->{ADC_XMIT_CURRENT},
 			);
@@ -244,10 +251,10 @@
 	} else {											# neither ANTS nor ens files
 		unless ($opt_Q) {
 			if ($dta{FIXED_LEADER_BYTES} >= 53) {
-				printf("    # Date       Time        XD  Temp Headng Pitch  Roll vels(bin1) ESW$addLayout\n");
+				printf("    # Date       Time        XD  Temp Headng Pitch  Roll #vv DSID ESW$addLayout\n");
 				printf("-----------------------------------------------------------------------\n");
 			} else {
-				printf("    # Date       Time        XD  Temp Headng Pitch  Roll vels(bin1)$addLayout\n");
+				printf("    # Date       Time        XD  Temp Headng Pitch  Roll #vv DSID$addLayout\n");
 				printf("-------------------------------------------------------------------\n");
 			}
 		}
@@ -256,16 +263,22 @@
 		{
 			my($e) = @_;
 
-			printf('%5d %s %s %s %5.1f %6.1f %5.1f %5.1f %3d',
+			printf('%5d %s %s %s %5.1f',
 				$dta{ENSEMBLE}[$e]->{NUMBER},
 				$dta{ENSEMBLE}[$e]->{DATE},
 				$dta{ENSEMBLE}[$e]->{TIME},
 				$dta{ENSEMBLE}[$e]->{XDUCER_FACING_UP} ? "UP" : "DN",
 				$dta{ENSEMBLE}[$e]->{TEMPERATURE},
-				$dta{ENSEMBLE}[$e]->{HEADING},
-				$dta{ENSEMBLE}[$e]->{PITCH},
-				$dta{ENSEMBLE}[$e]->{ROLL},
+			);
+			if (defined($dta{ENSEMBLE}[$e]->{HEADING})) { printf(' %6.1f',$dta{ENSEMBLE}[$e]->{HEADING}); }
+			else { printf('    nan'); }
+			if (defined($dta{ENSEMBLE}[$e]->{PITCH})) { printf(' %5.1f',$dta{ENSEMBLE}[$e]->{PITCH}); }
+			else { printf('   nan'); }
+			if (defined($dta{ENSEMBLE}[$e]->{ROLL})) { printf(' %5.1f',$dta{ENSEMBLE}[$e]->{ROLL}); }
+			else { printf('   nan'); }
+			printf(' %3d 0x%02X',
 				$dta{ENSEMBLE}[$e]->{BIN1VELS},
+				$dta{ENSEMBLE}[$e]->{DATA_SOURCE_ID},
 			);
 			printf(' 0x%08X',$dta{ENSEMBLE}[$e]->{ERROR_STATUS_WORD})
 				if ($dta{FIXED_LEADER_BYTES} >= 53);