def decode(self, data): """ Take the data bytearray. Decode the data to populate the velocities. :param data: Bytearray for the dataset. """ packet_pointer = Ensemble.GetBaseDataSize(self.name_len) for beam in range(self.element_multiplier): for bin_num in range(self.num_elements): self.Velocities[bin_num][beam] = Ensemble.GetFloat(packet_pointer, Ensemble().BytesInFloat, data) packet_pointer += Ensemble().BytesInFloat logging.debug(self.Velocities)
def decode(self, data): """ Take the data bytearray. Decode the data to populate the Good Beams. :param data: Bytearray for the dataset. """ packet_pointer = Ensemble.GetBaseDataSize(self.name_len) for beam in range(self.element_multiplier): for bin_num in range(self.num_elements): self.GoodBeam[bin_num][beam] = Ensemble.GetInt32(packet_pointer, Ensemble().BytesInInt32, data) packet_pointer += Ensemble().BytesInInt32 logging.debug(self.GoodBeam)
def decode(self, data): """ Take the data bytearray. Decode the data to populate the NMEA data. :param data: Bytearray for the dataset. """ packet_pointer = Ensemble.GetBaseDataSize(self.name_len) nmea_str = str(data[packet_pointer:], "UTF-8") self.num_elements = len(nmea_str) for msg in nmea_str.split(): # Add the NMEA message self.add_nmea(msg) logging.debug(nmea_str) logging.debug(self.nmea_sentences)
def decode(self, data): """ Take the data bytearray. Decode the data to populate the values. :param data: Bytearray for the dataset. """ packet_pointer = Ensemble.GetBaseDataSize(self.name_len) self.FirstBinRange = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 0, Ensemble().BytesInFloat, data) self.BinSize = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 1, Ensemble().BytesInFloat, data) self.FirstPingTime = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 2, Ensemble().BytesInFloat, data) self.LastPingTime = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 3, Ensemble().BytesInFloat, data) self.Heading = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 4, Ensemble().BytesInFloat, data) self.Pitch = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 5, Ensemble().BytesInFloat, data) self.Roll = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 6, Ensemble().BytesInFloat, data) self.WaterTemp = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 7, Ensemble().BytesInFloat, data) self.SystemTemp = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 8, Ensemble().BytesInFloat, data) self.Salinity = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 9, Ensemble().BytesInFloat, data) self.Pressure = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 10, Ensemble().BytesInFloat, data) self.TransducerDepth = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 11, Ensemble().BytesInFloat, data) self.SpeedOfSound = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 12, Ensemble().BytesInFloat, data) if self.num_elements > 13: self.RawMagFieldStrength = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 13, Ensemble().BytesInFloat, data) self.RawMagFieldStrength2 = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 14, Ensemble().BytesInFloat, data) self.RawMagFieldStrength3 = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 15, Ensemble().BytesInFloat, data) self.PitchGravityVector = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 16, Ensemble().BytesInFloat, data) self.RollGravityVector = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 17, Ensemble().BytesInFloat, data) self.VerticalGravityVector = Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 18, Ensemble().BytesInFloat, data) logging.debug(self.FirstBinRange) logging.debug(self.BinSize) logging.debug(self.Heading) logging.debug(self.Pitch) logging.debug(self.Roll) logging.debug(self.Salinity) logging.debug(self.SpeedOfSound)
def decode(self, data): """ Take the data bytearray. Decode the data to populate the values. :param data: Bytearray for the dataset. """ packet_pointer = Ensemble.GetBaseDataSize(self.name_len) self.EnsembleNumber = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 0, Ensemble().BytesInInt32, data) self.NumBins = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 1, Ensemble().BytesInInt32, data) self.NumBeams = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 2, Ensemble().BytesInInt32, data) self.DesiredPingCount = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 3, Ensemble().BytesInInt32, data) self.ActualPingCount = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 4, Ensemble().BytesInInt32, data) self.Status = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 5, Ensemble().BytesInInt32, data) self.Year = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 6, Ensemble().BytesInInt32, data) self.Month = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 7, Ensemble().BytesInInt32, data) self.Day = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 8, Ensemble().BytesInInt32, data) self.Hour = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 9, Ensemble().BytesInInt32, data) self.Minute = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 10, Ensemble().BytesInInt32, data) self.Second = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 11, Ensemble().BytesInInt32, data) self.HSec = Ensemble.GetInt32( packet_pointer + Ensemble().BytesInInt32 * 12, Ensemble().BytesInInt32, data) self.SerialNumber = str( data[packet_pointer + Ensemble().BytesInInt32 * 13:packet_pointer + Ensemble().BytesInInt32 * 21], "UTF-8") self.SysFirmwareRevision = struct.unpack( "B", data[packet_pointer + Ensemble().BytesInInt32 * 21 + 0:packet_pointer + Ensemble().BytesInInt32 * 21 + 1])[0] self.SysFirmwareMinor = struct.unpack( "B", data[packet_pointer + Ensemble().BytesInInt32 * 21 + 1:packet_pointer + Ensemble().BytesInInt32 * 21 + 2])[0] self.SysFirmwareMajor = struct.unpack( "B", data[packet_pointer + Ensemble().BytesInInt32 * 21 + 2:packet_pointer + Ensemble().BytesInInt32 * 21 + 3])[0] self.SysFirmwareSubsystemCode = str( data[packet_pointer + Ensemble().BytesInInt32 * 21 + 3:packet_pointer + Ensemble().BytesInInt32 * 21 + 4], "UTF-8") self.SubsystemConfig = struct.unpack( "B", data[packet_pointer + Ensemble().BytesInInt32 * 22 + 3:packet_pointer + Ensemble().BytesInInt32 * 22 + 4])[0] logging.debug(self.EnsembleNumber) logging.debug( str(self.Month) + "/" + str(self.Day) + "/" + str(self.Year) + " " + str(self.Hour) + ":" + str(self.Minute) + ":" + str(self.Second) + "." + str(self.HSec)) logging.debug(self.SerialNumber) logging.debug( str(self.SysFirmwareMajor) + "." + str(self.SysFirmwareMinor) + "." + str(self.SysFirmwareRevision) + "-" + str(self.SysFirmwareSubsystemCode)) logging.debug(self.SubsystemConfig)
def decode(self, data): """ Take the data bytearray. Decode the data to populate the values. :param data: Bytearray for the dataset. """ packet_pointer = Ensemble.GetBaseDataSize(self.name_len) self.NumBeams = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 0, Ensemble().BytesInFloat, data) self.num_elements = (8 * int(self.NumBeams)) + 1 if self.NumBeams == 4.0: self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 1, Ensemble().BytesInFloat, data)) self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 2, Ensemble().BytesInFloat, data)) self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 3, Ensemble().BytesInFloat, data)) self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 4, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 5, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 6, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 7, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 8, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 9, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 10, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 11, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 12, Ensemble().BytesInFloat, data)) if len(data) > 80: self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 13, Ensemble().BytesInFloat, data)) self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 14, Ensemble().BytesInFloat, data)) self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 15, Ensemble().BytesInFloat, data)) self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 16, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 17, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 18, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 19, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 20, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 21, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 22, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 23, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 24, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 25, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 26, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 27, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 28, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 29, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 30, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 31, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 32, Ensemble().BytesInFloat, data)) elif self.NumBeams == 3.0: self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 1, Ensemble().BytesInFloat, data)) self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 2, Ensemble().BytesInFloat, data)) self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 3, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 4, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 5, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 6, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 7, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 8, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 9, Ensemble().BytesInFloat, data)) if len(data) > 68: self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 10, Ensemble().BytesInFloat, data)) self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 11, Ensemble().BytesInFloat, data)) self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 12, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 13, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 14, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 15, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 16, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 17, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 18, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 19, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 20, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 21, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 22, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 23, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 24, Ensemble().BytesInFloat, data)) elif self.NumBeams == 2.0: self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 1, Ensemble().BytesInFloat, data)) self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 2, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 3, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 4, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 5, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 6, Ensemble().BytesInFloat, data)) if len(data) > 56: self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 7, Ensemble().BytesInFloat, data)) self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 8, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 9, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 10, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 11, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 12, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 13, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 14, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 15, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 16, Ensemble().BytesInFloat, data)) elif self.NumBeams == 1.0: self.SNR.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 1, Ensemble().BytesInFloat, data)) self.Range.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 2, Ensemble().BytesInFloat, data)) self.Pings.append( Ensemble.GetFloat(packet_pointer + Ensemble().BytesInFloat * 3, Ensemble().BytesInFloat, data)) if len(data) > 44: self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 4, Ensemble().BytesInFloat, data)) self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 5, Ensemble().BytesInFloat, data)) self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 6, Ensemble().BytesInFloat, data)) self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 7, Ensemble().BytesInFloat, data)) self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 8, Ensemble().BytesInFloat, data)) logging.debug(self.NumBeams) logging.debug(self.SNR) logging.debug(self.Range) logging.debug(self.Pings) logging.debug(self.Amplitude) logging.debug(self.Correlation) logging.debug(self.BeamVelocity) logging.debug(self.InstrumentVelocity) logging.debug(self.EarthVelocity)
def decode(self, data): """ Take the data bytearray. Decode the data to populate the values. :param data: Bytearray for the dataset. """ packet_pointer = Ensemble.GetBaseDataSize(self.name_len) self.BtSamplesPerSecond = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 0, Ensemble().BytesInFloat, data) self.BtSystemFreqHz = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 1, Ensemble().BytesInFloat, data) self.BtCPCE = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 2, Ensemble().BytesInFloat, data) self.BtNCE = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 3, Ensemble().BytesInFloat, data) self.BtRepeatN = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 4, Ensemble().BytesInFloat, data) self.WpSamplesPerSecond = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 5, Ensemble().BytesInFloat, data) self.WpSystemFreqHz = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 6, Ensemble().BytesInFloat, data) self.WpCPCE = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 7, Ensemble().BytesInFloat, data) self.WpNCE = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 8, Ensemble().BytesInFloat, data) self.WpRepeatN = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 9, Ensemble().BytesInFloat, data) self.WpLagSamples = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 10, Ensemble().BytesInFloat, data) self.Voltage = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 11, Ensemble().BytesInFloat, data) if self.num_elements > 12: self.XmtVoltage = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 12, Ensemble().BytesInFloat, data) self.BtBroadband = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 13, Ensemble().BytesInFloat, data) self.BtLagLength = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 14, Ensemble().BytesInFloat, data) self.BtNarrowband = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 15, Ensemble().BytesInFloat, data) self.BtBeamMux = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 16, Ensemble().BytesInFloat, data) self.WpBroadband = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 17, Ensemble().BytesInFloat, data) self.WpLagLength = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 18, Ensemble().BytesInFloat, data) self.WpTransmitBandwidth = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 19, Ensemble().BytesInFloat, data) self.WpReceiveBandwidth = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 20, Ensemble().BytesInFloat, data) self.TransmitBoostNegVolt = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 21, Ensemble().BytesInFloat, data) self.WpBeamMux = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 22, Ensemble().BytesInFloat, data) if self.num_elements > 23: self.Reserved = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 23, Ensemble().BytesInFloat, data) self.Reserved1 = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 24, Ensemble().BytesInFloat, data) logging.debug(self.BtSamplesPerSecond) logging.debug(self.BtSystemFreqHz) logging.debug(self.BtCPCE) logging.debug(self.BtNCE) logging.debug(self.BtRepeatN) logging.debug(self.WpSamplesPerSecond) logging.debug(self.WpSystemFreqHz) logging.debug(self.WpCPCE) logging.debug(self.WpNCE) logging.debug(self.WpRepeatN) logging.debug(self.WpLagSamples) logging.debug(self.Voltage) logging.debug(self.XmtVoltage) logging.debug(self.BtBroadband) logging.debug(self.BtLagLength) logging.debug(self.BtNarrowband) logging.debug(self.BtBeamMux) logging.debug(self.WpBroadband) logging.debug(self.WpLagLength) logging.debug(self.WpTransmitBandwidth) logging.debug(self.WpReceiveBandwidth)
def decode(self, data): """ Take the data bytearray. Decode the data to populate the velocities. :param data: Bytearray for the dataset. """ packet_pointer = Ensemble.GetBaseDataSize(self.name_len) self.FirstPingTime = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 0, Ensemble().BytesInFloat, data) self.LastPingTime = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 1, Ensemble().BytesInFloat, data) self.Heading = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 2, Ensemble().BytesInFloat, data) self.Pitch = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 3, Ensemble().BytesInFloat, data) self.Roll = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 4, Ensemble().BytesInFloat, data) self.WaterTemp = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 5, Ensemble().BytesInFloat, data) self.SystemTemp = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 6, Ensemble().BytesInFloat, data) self.Salinity = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 7, Ensemble().BytesInFloat, data) self.Pressure = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 8, Ensemble().BytesInFloat, data) self.TransducerDepth = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 9, Ensemble().BytesInFloat, data) self.SpeedOfSound = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 10, Ensemble().BytesInFloat, data) self.Status = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 11, Ensemble().BytesInFloat, data) self.NumBeams = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 12, Ensemble().BytesInFloat, data) self.ActualPingCount = Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * 13, Ensemble().BytesInFloat, data) index = 14 numBeam = int(self.NumBeams) for beams in range(numBeam): self.Range.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.SNR.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.Amplitude.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.Correlation.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.BeamVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.BeamGood.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.InstrumentVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.InstrumentGood.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.EarthVelocity.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.EarthGood.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 if self.num_elements > 54: for beams in range(numBeam): self.SNR_PulseCoherent.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.Amp_PulseCoherent.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.Vel_PulseCoherent.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.Noise_PulseCoherent.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 for beams in range(numBeam): self.Corr_PulseCoherent.append( Ensemble.GetFloat( packet_pointer + Ensemble().BytesInFloat * index, Ensemble().BytesInFloat, data)) index += 1 else: # Fill in with 0.0 for beams in range(numBeam): self.SNR_PulseCoherent.append(0.0) for beams in range(numBeam): self.Amp_PulseCoherent.append(0.0) for beams in range(numBeam): self.Vel_PulseCoherent.append(0.0) for beams in range(numBeam): self.Noise_PulseCoherent.append(0.0) for beams in range(numBeam): self.Corr_PulseCoherent.append(0.0) logging.debug(self.FirstPingTime) logging.debug(self.LastPingTime) logging.debug(self.Heading) logging.debug(self.Pitch) logging.debug(self.Roll) logging.debug(self.Salinity) logging.debug(self.SpeedOfSound) logging.debug(self.EarthVelocity)