Package NMEA

Class NMEADataBlock


public class NMEADataBlock extends PamDataBlock<NMEADataUnit>
Special type of data block, just for NMEA data. Instead of deleting data on a timer or owing to the wishes of subscribers, it keeps exactly one copy of each NMEA sentence.
Author:
Doug Gillespie
See Also:
  • Constructor Details Link icon

    • NMEADataBlock Link icon

      public NMEADataBlock(String dataName, PamProcess parentProcess, int channelMap)
  • Method Details Link icon

    • addPamData Link icon

      public void addPamData(NMEADataUnit pamDataUnit)
      Description copied from class: PamDataBlock
      Adds a new PamDataUnit to the PamDataBlock. When the data unit is added, PamObservers that have subscribed to the block will be notified.
      If the data unit already has a UID, it will be left as is.
      Overrides:
      addPamData in class PamDataBlock<NMEADataUnit>
      Parameters:
      pamDataUnit - Reference to a PamDataUnit
    • isNmeaStartCharacter Link icon

      public static boolean isNmeaStartCharacter(char ch)
    • getSubString Link icon

      public static String getSubString(StringBuffer stringBuffer, int pos)
      Extract a sub string only using standard NMEA separator characters , and *
      Parameters:
      stringBuffer - string to separate
      pos - substring position
      Returns:
      sub string
    • getSubString Link icon

      public static String getSubString(StringBuffer stringBuffer, int pos, Character[] deliminators)
      Can call with a different list of separators for sub string. Used in some of the Network REceive functions which include ; which must not be used in the standard data or it messes up AIS.
      Parameters:
      stringBuffer - string buffer to separate
      pos - sub string number
      deliminators - list of separator characters.
      Returns:
      sub string.
    • findNMEADataUnit Link icon

      public NMEADataUnit findNMEADataUnit(String stringName)
    • six2eight Link icon

      public static NMEABitArray six2eight(String charData, int fillBits)
    • removeOldUnitsT Link icon

      protected int removeOldUnitsT(long currentTimeMS)
      Description copied from class: PamDataBlock
      Removes olderPamDataUnits from memory, starting at the first unit and continuing until if finds one with data coming earlier than the given time in milliseconds.

      If the data are acoustic, it tries to find the data source and looks to see how much data has been placed in the source data unit and does the calculation in samples.

      Overrides:
      removeOldUnitsT in class PamDataBlock<NMEADataUnit>
      Parameters:
      currentTimeMS - Time in milliseconds of the first data which must be kept
      Returns:
      the number of units removed