Device Type

  • A make/model of sensor. A device type definition describes the expected data strings that this device type is expected to generate, how to parse them, and what to name each field (optionally includes a description and unit information).
  • Example: Seapath330, Knudsen3260.

Device

  • Vessel/Vehicle-specific instance of a device type, such as seapath1, stbd_mast_vaisala.
  • A device definition describes how to map the generic fields in the device type produces (Heading, SpeedKts, etc.) into names that uniquely identify the source instrument and data field (S1Heading, S1SpeedKts)
  • These unique names are used when writing values to InfluxDB and the Cached Data Server (CDS).

Logger Module

  • One of a number of software components that can be ‘tacked together’ in sequence to read, process, store and/or distribute sensor data. Modules are of one of three types:
  • Readers - OpenRVDAS object class for ingesting data from a data source (udp, serial, file, database, MMQT, modbus, etc). When called, a Reader returns either a record or a list of records.
  • Transforms - OpenRVDAS object class for modifying data from a reader or upstream transform. A transform receives records as input and outputs processed and/or filtered records.
  • Writers - OpenRVDAS object class for writing data records to a destination (udp, serial, file, database, etc).

Logger Configuration

  • An end-to-end definition logger modules that describes how to read, (optionally) transform, and write a sensor data stream. A logger configuration will include
    • one or more Readers. If there is more than one Reader (e.g. reading multiple UDP ports), they will read in parallel.
    • zero or more Transforms. Transforms are applied in series.
    • one or more Writers. If more than one Writer, they will write parallel.
  • A simple logger configuration might be:

    knud-net+file:
      readers:
      - class: SerialReader    # read a data string from serial port /dev/ttyr01
        kwargs:
          port: /dev/ttyr01
      transforms:
      - class: TimestampTransform  # prefix the data string with a timestamp
      - class: PrefixTransform     # prefix the timestamped string with 'knud'
          kwargs:
            prefix: knud
      writers:
      - class: UDPWriter      # write the prefixed, timestamped string to UDP 6224
        kwargs:
          port: 6224
      - class: LogfileWriter  # also write the prefixed, timestamped strings to file
        kwargs:
          filebase: /data/openrvdas/knud
    

Logger

  • The set of logger configurations defining the different logging behaviors required for a specific sensor (e.g. knud-off, knud-net, knud-net+file).

Mode / Cruise Mode

  • Typically, a vessel will have sets of logger configurations that should all be run together: which should be running when in port, when underway, etc.
  • Modes include a list of logger configurations to run.
    modes:
      'off':
        gyr1: gyr1-off
        s330: s330-off
        eng1: eng1-off
        knud: knud-off
        mwx1: mwx1-off
      port:
        gyr1: gyr1-net
        s330: s330-net
        eng1: eng1-net
        knud: knud-off
        mwx1: mwx1-net
      underway:
        gyr1: gyr1-net+file
        s330: s330-net+file
        eng1: eng1-net+file
        knud: knud-net+file
        mwx1: mwx1-net+file
    

    Composed Writer

  • This is a special sub-class of the writer class that allows additional transform to be applied prior to a writer.

kwargs

  • This is how arguments are passed to reader, transform and writer classes. It’s a Python thing.

Updated: