public void _adcpCodec_ProcessDataEvent(byte[] binaryEnsemble, DataSet.Ensemble ensemble) { // Display the data //SerialOutput += System.Text.Encoding.Default.GetString(binaryEnsemble); //if (SerialOutput.Length > 500) //{ // SerialOutput = SerialOutput.Substring(500, SerialOutput.Length - 500); //} // Pass the ensemble to the Output VM _outputVM.ReceiveEnsemble(ensemble); // Display the ensemble if (ensemble != null && ensemble.IsEnsembleAvail) { StringBuilder sb = new StringBuilder(); sb.AppendLine("Ensemble Number: " + ensemble.EnsembleData.EnsembleNumber); sb.AppendLine("Date: " + ensemble.EnsembleData.EnsDateString); sb.AppendLine("Time: " + ensemble.EnsembleData.EnsTimeString); if (ensemble.IsBottomTrackAvail) { sb.AppendLine("Status: " + ensemble.BottomTrackData.Status); sb.AppendLine("Depth: " + ensemble.BottomTrackData.GetAverageRange()); sb.AppendLine("Boat Speed: " + ensemble.BottomTrackData.GetVelocityMagnitude()); sb.AppendLine("Boat Direction: " + ensemble.BottomTrackData.GetVelocityDirection(true)); } sb.AppendLine("Pings: " + ensemble.EnsembleData.ActualPingCount); sb.AppendLine("First Ping Time: " + ensemble.AncillaryData.FirstPingTime); sb.AppendLine("Last Ping Time: " + ensemble.AncillaryData.LastPingTime); sb.AppendLine("Ping Time: " + (ensemble.AncillaryData.LastPingTime - ensemble.AncillaryData.FirstPingTime)); sb.AppendLine("Temperature: " + ensemble.AncillaryData.WaterTemp); if (ensemble.IsAncillaryAvail) { double tbp = ensemble.AncillaryData.LastPingTime - ensemble.AncillaryData.FirstPingTime; int tbp_minute = (int)Math.Round(tbp / 60); int tbp_sec = (int)Math.Truncate(tbp - (tbp_minute * 60)); int tbp_hun = (int)Math.Round((tbp - tbp_sec) * 100); sb.AppendLine("TBP: " + tbp); sb.AppendLine("TBP Minutes: " + tbp_minute); sb.AppendLine("TBP Sec: " + tbp_sec); sb.AppendLine("TBP Hun: " + tbp_hun); } if (ensemble.IsNmeaAvail) { if (ensemble.NmeaData.IsGpggaAvail()) { if (ensemble.NmeaData.IsGpggaAvail()) { sb.AppendLine("Lat/Lon: " + ensemble.NmeaData.GPGGA.ToString()); } if (ensemble.NmeaData.IsGphdtAvail()) { sb.AppendLine("Gyro Heading: " + ensemble.NmeaData.GPHDT.ToString()); } if (ensemble.NmeaData.IsGpvtgAvail()) { sb.AppendLine("GPS Speed: " + ensemble.NmeaData.GPVTG.ToString()); } } } AdcpDecodedOutput = sb.ToString(); } }