timeflux_pl4.nodes.driver module

exception timeflux_pl4.nodes.driver.InvalidChecksumException[source]

Bases: timeflux.core.exceptions.TimefluxException

Exception thrown when a PL4 packet cannot be parsed

class timeflux_pl4.nodes.driver.PhysioLOGX[source]

Bases: timeflux.core.node.Node

Driver for the Mind Media PhysioLOG-4 (PL4) device.

This node provides two streams. The first one (channels 1 and 2 at 1024 Hz) is expressed in uV. The second one (channels 3 and 4 at 256 Hz) is expressed in mV.

In theory, we should be able to access the device via a serial interface using the FTDI VCP driver. The device is recognized, but does not appear in the /dev directory because the product and vendor IDs are unknown (at least on MacOS). Manually adding the IDs to the known devices table would require re-signing the driver with a kext-signing certificate. Instead, we install the D2XX driver, which allows synchronous access through a library and the Python ft2xx wrapper.

Variables
  • o_1024hz (Port) – Channels 1 and 2, provides DataFrame.

  • o_256hz (Port) – Channels 3 and 4, provide DataFrame.

Example

graphs:

  - id: PhysioLOGX-4
    nodes:
    - id: pl4
      module: timeflux_pl4.nodes.driver
      class: PhysioLOGX
    - id: display_1024
      module: timeflux.nodes.debug
      class: Display
    - id: display_256
      module: timeflux.nodes.debug
      class: Display
    edges:
    - source: pl4:1024hz
      target: display_1024
    - source: pl4:256hz
      target: display_256
    rate: 10
See
__init__()[source]

Instantiate the node.

update()[source]

Update the input and output ports.

terminate()[source]

Perform cleanup upon termination.

version()[source]
start()[source]
stop()[source]
command(command_id, payload=None)[source]
ack()[source]
read()[source]
parse(data)[source]