jAER project on SourceForge

net.sf.jaer.hardwareinterface.usb.cypressfx2
Class CypressFX2MonitorSequencer

java.lang.Object
  extended by net.sf.jaer.hardwareinterface.usb.cypressfx2.CypressFX2
      extended by net.sf.jaer.hardwareinterface.usb.cypressfx2.CypressFX2MonitorSequencer
All Implemented Interfaces:
de.thesycon.usbio.PnPNotifyInterface, de.thesycon.usbio.UsbIoErrorCodes, AESoftMapper, AEMonitorInterface, AEMonitorSequencerInterface, AESequencerInterface, HardwareInterface, HasUpdatableFirmware, ReaderBufferControl, USBInterface
Direct Known Subclasses:
CochleaAMS1bHardwareInterface, CypressFX2AEX, CypressFX2Mapper

public class CypressFX2MonitorSequencer
extends CypressFX2
implements AEMonitorSequencerInterface, AESoftMapper, HasUpdatableFirmware

Extends CypressFX2 to add functionality for sequencing and monitoring events.

Author:
raphael

Nested Class Summary
 class CypressFX2MonitorSequencer.AEWriter
          AEWriter class, used to send events to the device
 class CypressFX2MonitorSequencer.MonSeqAEReader
          This reader understands the format of raw USB data and translates to the AEPacketRaw
 
Nested classes/interfaces inherited from class net.sf.jaer.hardwareinterface.usb.cypressfx2.CypressFX2
CypressFX2.AEPacketRawPool, CypressFX2.AEReader, CypressFX2.AsyncStatusThread
 
Field Summary
protected  CypressFX2MonitorSequencer.AEWriter aeWriter
           
static java.lang.String CPLD_FIRMWARE_MONSEQ
           
protected static java.util.logging.Logger log
           
static byte VR_DISABLE_AE
           
static byte VR_DISABLE_AE_OUT
           
static byte VR_ENABLE_AE
           
static byte VR_ENABLE_AE_OUT
           
static byte VR_ENABLE_MISSED_EVENTS
           
static byte VR_IS_TIMESTAMP_MASTER
           
static byte VR_MISSED_EVENTS
           
static byte VR_OPERATION_MODE
           
 
Fields inherited from class net.sf.jaer.hardwareinterface.usb.cypressfx2.CypressFX2
AE_BUFFER_SIZE, aeBufferSize, aePacketRawPool, aeReader, arrayResetEnabled, asyncStatusThread, BufDesc, chip, deviceDescriptor, DID_STEREOBOARD, EEPROM_SIZE, eventCounter, FIRMWARE_FILENAME_COCHLEAAMS_BIX, FIRMWARE_FILENAME_DVS128_IIC, FIRMWARE_FILENAME_MAPPER_IIC, FIRMWARE_FILENAME_MONITOR_SEQUENCER, FIRMWARE_FILENAME_MONITOR_SEQUENCER_HEX, FIRMWARE_FILENAME_MONITOR_SEQUENCER_IIC, FIRMWARE_FILENAME_MONITOR_SEQUENCER_JTAG_IIC, FIRMWARE_FILENAME_STEREO_IIC, FIRMWARE_FILENAME_TCVS320_BIX, FIRMWARE_FILENAME_TCVS320_HEX, FIRMWARE_FILENAME_TMPDIFF128_BIX, FIRMWARE_FILENAME_TMPDIFF128_HEX, gDevList, GUID, gUsbIo, inEndpointEnabled, interfaceNumber, isOpened, lastEventsAcquired, MAX_CONTROL_XFER_SIZE, NEW_EVENTS_PROPERTY_CHANGE, NO_AE_REOPEN_TIMEOUT, numberOfStringDescriptors, PID_BLANK, PID_COCHLEAAMS, PID_DVS128_REV0, PID_TCVS320_RETINA, PID_TMPDIFF128_RETINA, PID_USB2AERmapper, PID_USBAERmini2, PID_USBAERmini2_without_firmware, prefs, stringDescriptor1, stringDescriptor2, stringDescriptor3, TICK_US, VENDOR_REQUEST_DO_ARRAY_RESET, VENDOR_REQUEST_EARLY_TRANFER, VENDOR_REQUEST_FIRMWARE, VENDOR_REQUEST_FLASH_BIASES, VENDOR_REQUEST_POWERDOWN, VENDOR_REQUEST_RESET_TIMESTAMPS, VENDOR_REQUEST_SEND_BIAS_BYTES, VENDOR_REQUEST_SET_ARRAY_RESET, VENDOR_REQUEST_SET_LED, VENDOR_REQUEST_START_TRANSFER, VENDOR_REQUEST_STOP_TRANSFER, VID, VID_BLANK, VR_DOWNLOAD_FIRMWARE, VR_EEPROM, VR_RAM, VR_SET_DEVICE_NAME
 
Fields inherited from interface net.sf.jaer.hardwareinterface.usb.USBInterface
PID_THESYCON_END, PID_THESYCON_START, VID_THESYCON
 
Fields inherited from interface de.thesycon.usbio.UsbIoErrorCodes
USBIO_ERR_ADDITIONAL_EVENT_SIGNALLED, USBIO_ERR_ALREADY_BOUND, USBIO_ERR_ALREADY_CONFIGURED, USBIO_ERR_BABBLE_DETECTED, USBIO_ERR_BAD_START_FRAME, USBIO_ERR_BTSTUFF, USBIO_ERR_BUFFER_OVERRUN, USBIO_ERR_BUFFER_UNDERRUN, USBIO_ERR_BULK_RESTRICTION, USBIO_ERR_CANCELED, USBIO_ERR_CONTROL_NOT_SUPPORTED, USBIO_ERR_CONTROL_RESTRICTION, USBIO_ERR_CRC, USBIO_ERR_DATA_BUFFER_ERROR, USBIO_ERR_DATA_OVERRUN, USBIO_ERR_DATA_TOGGLE_MISMATCH, USBIO_ERR_DATA_UNDERRUN, USBIO_ERR_DEMO_EXPIRED, USBIO_ERR_DEV_NOT_RESPONDING, USBIO_ERR_DEVICE_GONE, USBIO_ERR_DEVICE_NOT_FOUND, USBIO_ERR_DEVICE_NOT_OPEN, USBIO_ERR_DEVICE_NOT_PRESENT, USBIO_ERR_ENDPOINT_HALTED, USBIO_ERR_EP0_RESTRICTION, USBIO_ERR_ERROR_BUSY, USBIO_ERR_ERROR_SHORT_TRANSFER, USBIO_ERR_FAILED, USBIO_ERR_FIFO, USBIO_ERR_FRAME_CONTROL_NOT_OWNED, USBIO_ERR_FRAME_CONTROL_OWNED, USBIO_ERR_INSUFFICIENT_RESOURCES, USBIO_ERR_INTERFACE_NOT_FOUND, USBIO_ERR_INTERNAL_HC_ERROR, USBIO_ERR_INTERRUPT_RESTRICTION, USBIO_ERR_INVALID_CONFIGURATION_DESCRIPTOR, USBIO_ERR_INVALID_DEVICE_STATE, USBIO_ERR_INVALID_DIRECTION, USBIO_ERR_INVALID_FUNCTION_PARAM, USBIO_ERR_INVALID_INBUFFER, USBIO_ERR_INVALID_IOCTL, USBIO_ERR_INVALID_ISO_PACKET, USBIO_ERR_INVALID_OUTBUFFER, USBIO_ERR_INVALID_PARAM, USBIO_ERR_INVALID_PARAMETER, USBIO_ERR_INVALID_PIPE_FLAGS, USBIO_ERR_INVALID_PIPE_HANDLE, USBIO_ERR_INVALID_POWER_STATE, USBIO_ERR_INVALID_RECIPIENT, USBIO_ERR_INVALID_TYPE, USBIO_ERR_INVALID_URB_FUNCTION, USBIO_ERR_ISO_NA_LATE_USBPORT, USBIO_ERR_ISO_NOT_ACCESSED_BY_HW, USBIO_ERR_ISO_NOT_ACCESSED_LATE, USBIO_ERR_ISO_RESTRICTION, USBIO_ERR_ISO_TD_ERROR, USBIO_ERR_ISOCH_REQUEST_FAILED, USBIO_ERR_LOAD_SETUP_API_FAILED, USBIO_ERR_NO_BANDWIDTH, USBIO_ERR_NO_MEMORY, USBIO_ERR_NO_SUCH_DEVICE_INSTANCE, USBIO_ERR_NOT_ACCESSED, USBIO_ERR_NOT_BOUND, USBIO_ERR_NOT_CONFIGURED, USBIO_ERR_NOT_SUPPORTED, USBIO_ERR_OPEN_PIPES, USBIO_ERR_OUT_OF_ADDRESS_SPACE, USBIO_ERR_OUT_OF_MEMORY, USBIO_ERR_PENDING_REQUESTS, USBIO_ERR_PID_CHECK_FAILURE, USBIO_ERR_PIPE_NOT_FOUND, USBIO_ERR_PIPE_RESTRICTION, USBIO_ERR_PIPE_SIZE_RESTRICTION, USBIO_ERR_POOL_EMPTY, USBIO_ERR_POWER_DOWN, USBIO_ERR_REQUEST_FAILED, USBIO_ERR_RESERVED1, USBIO_ERR_RESERVED2, USBIO_ERR_SET_CONFIG_FAILED, USBIO_ERR_SET_CONFIGURATION_FAILED, USBIO_ERR_STALL_PID, USBIO_ERR_STATUS_NOT_MAPPED, USBIO_ERR_SUCCESS, USBIO_ERR_TIMEOUT, USBIO_ERR_TOO_MUCH_ISO_PACKETS, USBIO_ERR_UNEXPECTED_PID, USBIO_ERR_USBD_BUFFER_TOO_SMALL, USBIO_ERR_USBD_INTERFACE_NOT_FOUND, USBIO_ERR_USBD_TIMEOUT, USBIO_ERR_VERSION_MISMATCH, USBIO_ERR_VID_RESTRICTION, USBIO_ERR_XACT_ERROR
 
Constructor Summary
protected CypressFX2MonitorSequencer(int devNumber)
          Creates a new instance of CypressFX2MonitorSequencer.
 
Method Summary
 void close()
          Closes the device.
 void disableEventSequencing()
          disables event sequencing: stops AEWriter thread and sends vendor request to device
 void enableMissedEvents(boolean yes)
          This method lets you configure how the USBAERmini2 handles events when the host computer is not fast enough to collect them.
 java.util.Collection<AEMapper> getAEMappers()
           
 int getEstimatedOutEventRate()
          returns the estimated out event rate
 int getNumEventsSent()
          not yet implemented
 int getNumEventsToSend()
          not yet implemented
 long getNumMissedEvents()
          returns an estimation of the number of events that were missed due to full fifos
 float getOperationMode()
          gets the timestamp mode from the device, prints out if slave or master mode and returns the tick
 float getTick()
          returns a string containing the class name and the serial number (if the device has been opened)
 java.lang.String getTypeName()
          get text name of interface, e.g.
 boolean isEventSequencingEnabled()
           
 boolean isLoopedSequencingEnabled()
           
 boolean isOutEndpointEnabled()
           
 boolean isTimestampMaster()
          is this device acting as timestamp master
 void offerPacketToSequencer(AEPacketRaw packet)
          Pushes a packet to be sequenced to the sequencer output.
 void open()
          Constructs a new USB connection and opens it.
 void resetTimestamps()
          reset the timestamps to zero.
 void setLoopedSequencingEnabled(boolean set)
          enables continuous sequencing, if enabled the AEWriter rewinds if it reaches the end of the packet and restarts sending from the beginning.
 void setOperationMode(int mode)
          set the timestamp tick on the device
 void startAEReader()
          Starts reader buffer pool thread and enables in endpoints for AEs.
protected  void startAEWriter(AEPacketRaw eventsToSend)
          starts AEWriter Thread
 void startDevice()
          sends vendor request to device to enable sequencing and monitoring, used if startMonitoringSequencing(AEPacketRaw eventsToSend, boolean startDevice) is called with startDevice equal to false
 void startMonitoringSequencing(AEPacketRaw eventsToSend)
          starts sequencing and monitoring of events, starts AEReader and AEWriter and sends vendor request to device
 void startMonitoringSequencing(AEPacketRaw eventsToSend, boolean startDevice)
          starts sequencing and monitoring of events, starts AEReader and AEWriter
 void startSequencing(AEPacketRaw eventsToSend)
          starts sequencing of events, starts AEWriter.
protected  void stopAEWriter()
          stops AEWriter thread and deletes the aeWriter instance
 AEPacketRaw stopMonitoringSequencing()
          stops monitoring and sequencing of events, gets and returns the last events from the driver
 void stopSequencing()
          stops sequencing of events from the driver
 void updateFirmware()
          Updates the firmware by downloading to the board's EEPROM
 void writeMonitorSequencerFirmware()
          writes USBAERmini2 firmware to EEPROM can for example be used from matlab
 void writeMonitorSequencerJTAGFirmware()
           
 
Methods inherited from class net.sf.jaer.hardwareinterface.usb.cypressfx2.CypressFX2
acquireAvailableEventsFromDriver, acquireDevice, addAEListener, allocateAEBuffers, cyclePort, download8051RAM, downloadFirmwareBinary, downloadFirmwareHex, eraseEEPROM, getAEBufferSize, getAeReader, getChip, getDefaultFirmwareBixFileForBlankDevice, getDID, getEstimatedEventRate, getEvents, getFifoSize, getFirmwareFilenameBinaryFromVIDPID, getFirmwareFilenameHexFromVIDPID, getMaxCapacity, getNumberOfStringDescriptors, getNumBuffers, getNumEventsAcquired, getPID, getStringDescriptors, getSupport, getTimestampTickUs, getVID, getVIDPID, hasStringIdentifier, isEventAcquisitionEnabled, isInEndpointEnabled, isOpen, loadBinaryFirmwareFile, loadBinaryFirmwareFileSystemFile, onAdd, onRemove, openUsbIo_minimal, openUsbIo, overrunOccurred, readEEPROM, releaseDevice, removeAEListener, requestEarlyTransfer, resetPixelArray, resetUSB, sendVendorRequest, sendVendorRequest, sendVendorRequest, sendVendorRequest, set8051Reset, setAEBufferSize, setAeReader, setAEReaderFifoSize, setAEReaderNumBuffers, setChip, setDefaultFirmwareBixFileForBlankDevice, setEventAcquisitionEnabled, setFifoSize, setInEndpointEnabled, setLed, setNumBuffers, setSerialNumber, showFirmwareFilenameDialog, stopAEReader, toString, unconfigureDevice, writeC2Load, writeCPLDfirmware, writeEEPROM, writeHexFileToEEPROM, writeVIDPIDDID
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface net.sf.jaer.aemonitor.AEMonitorInterface
acquireAvailableEventsFromDriver, addAEListener, getAEBufferSize, getChip, getEstimatedEventRate, getEvents, getMaxCapacity, getNumEventsAcquired, getTimestampTickUs, isEventAcquisitionEnabled, overrunOccurred, removeAEListener, setAEBufferSize, setChip, setEventAcquisitionEnabled
 
Methods inherited from interface net.sf.jaer.aesequencer.AESequencerInterface
getMaxCapacity, getTimestampTickUs
 
Methods inherited from interface net.sf.jaer.hardwareinterface.usb.USBInterface
getDID, getPID, getStringDescriptors, getVID, getVIDPID
 
Methods inherited from interface net.sf.jaer.hardwareinterface.HardwareInterface
isOpen
 

Field Detail

log

protected static java.util.logging.Logger log

VR_ENABLE_AE_OUT

public static final byte VR_ENABLE_AE_OUT
See Also:
Constant Field Values

VR_DISABLE_AE_OUT

public static final byte VR_DISABLE_AE_OUT
See Also:
Constant Field Values

VR_OPERATION_MODE

public static final byte VR_OPERATION_MODE
See Also:
Constant Field Values

VR_ENABLE_AE

public static final byte VR_ENABLE_AE
See Also:
Constant Field Values

VR_DISABLE_AE

public static final byte VR_DISABLE_AE
See Also:
Constant Field Values

VR_IS_TIMESTAMP_MASTER

public static final byte VR_IS_TIMESTAMP_MASTER
See Also:
Constant Field Values

VR_MISSED_EVENTS

public static final byte VR_MISSED_EVENTS
See Also:
Constant Field Values

VR_ENABLE_MISSED_EVENTS

public static final byte VR_ENABLE_MISSED_EVENTS
See Also:
Constant Field Values

CPLD_FIRMWARE_MONSEQ

public static final java.lang.String CPLD_FIRMWARE_MONSEQ
See Also:
Constant Field Values

aeWriter

protected CypressFX2MonitorSequencer.AEWriter aeWriter
Constructor Detail

CypressFX2MonitorSequencer

protected CypressFX2MonitorSequencer(int devNumber)
Creates a new instance of CypressFX2MonitorSequencer. Note that it is possible to construct several instances and use each of them to open and read from the same device.

Parameters:
devNumber - the desired device number, in range returned by CypressFX2MonitorSequencerFactory.getNumInterfacesAvailable
Method Detail

getTypeName

public java.lang.String getTypeName()
Description copied from interface: HardwareInterface
get text name of interface, e.g. "CypressFX2" or "SiLabsC8051F320"

Specified by:
getTypeName in interface HardwareInterface
Overrides:
getTypeName in class CypressFX2

close

public void close()
Closes the device. Never throws an exception.

Specified by:
close in interface HardwareInterface
Overrides:
close in class CypressFX2

open

public void open()
          throws HardwareInterfaceException
Description copied from class: CypressFX2
Constructs a new USB connection and opens it. Does NOT start event acquisition.

Specified by:
open in interface HardwareInterface
Overrides:
open in class CypressFX2
Throws:
HardwareInterfaceException - if there is an error opening device
See Also:
CypressFX2.setEventAcquisitionEnabled(boolean), CypressFX2.openUsbIo_minimal()

isOutEndpointEnabled

public boolean isOutEndpointEnabled()
Returns:
returns true if EP2 is enabled

getTick

public float getTick()
returns a string containing the class name and the serial number (if the device has been opened)


disableEventSequencing

public void disableEventSequencing()
                            throws HardwareInterfaceException
disables event sequencing: stops AEWriter thread and sends vendor request to device

Throws:
HardwareInterfaceException

getEstimatedOutEventRate

public int getEstimatedOutEventRate()
returns the estimated out event rate

Specified by:
getEstimatedOutEventRate in interface AESequencerInterface
Returns:
estimated event rate in events/sec

getNumEventsSent

public int getNumEventsSent()
not yet implemented

Specified by:
getNumEventsSent in interface AESequencerInterface

getNumEventsToSend

public int getNumEventsToSend()
not yet implemented

Specified by:
getNumEventsToSend in interface AESequencerInterface

isEventSequencingEnabled

public boolean isEventSequencingEnabled()
Specified by:
isEventSequencingEnabled in interface AESequencerInterface
Returns:
returns true if sequencing is enabled

startMonitoringSequencing

public void startMonitoringSequencing(AEPacketRaw eventsToSend)
                               throws HardwareInterfaceException
starts sequencing and monitoring of events, starts AEReader and AEWriter and sends vendor request to device

Specified by:
startMonitoringSequencing in interface AEMonitorSequencerInterface
Parameters:
eventsToSend - the events that should be sequenced, timestamps are realtive to last event, inter spike interval must not be bigger than 2^16
Throws:
HardwareInterfaceException

startMonitoringSequencing

public void startMonitoringSequencing(AEPacketRaw eventsToSend,
                                      boolean startDevice)
                               throws HardwareInterfaceException
starts sequencing and monitoring of events, starts AEReader and AEWriter

Parameters:
eventsToSend - the events that should be sequenced, timestamps are realtive to last event, inter spike interval must not be bigger than 2^16
startDevice - whether a vendor request should be sent to the device. usually this is set to true or startMonitoringSequencing(AEPacketRaw eventsToSend) is used, set to false only if multiple devices should start synchronously, then it is better to start all AEReaders before sending the vendor requests.
Throws:
HardwareInterfaceException

startDevice

public void startDevice()
                 throws HardwareInterfaceException
sends vendor request to device to enable sequencing and monitoring, used if startMonitoringSequencing(AEPacketRaw eventsToSend, boolean startDevice) is called with startDevice equal to false

Throws:
HardwareInterfaceException

startAEWriter

protected void startAEWriter(AEPacketRaw eventsToSend)
                      throws HardwareInterfaceException
starts AEWriter Thread

Throws:
HardwareInterfaceException

stopAEWriter

protected void stopAEWriter()
stops AEWriter thread and deletes the aeWriter instance


stopMonitoringSequencing

public AEPacketRaw stopMonitoringSequencing()
                                     throws HardwareInterfaceException
stops monitoring and sequencing of events, gets and returns the last events from the driver

Specified by:
stopMonitoringSequencing in interface AEMonitorSequencerInterface
Returns:
AEPacketRaw: the last events
Throws:
HardwareInterfaceException

resetTimestamps

public void resetTimestamps()
Description copied from class: CypressFX2
reset the timestamps to zero. This has two effects. First it sends a vendor request down the control endpoint to tell the device to reset its own internal timestamp counters. Second, it tells the AEReader object to reset its timestamps, meaning to reset its unwrap counter.

Specified by:
resetTimestamps in interface AEMonitorInterface
Specified by:
resetTimestamps in interface AESequencerInterface
Overrides:
resetTimestamps in class CypressFX2

setOperationMode

public void setOperationMode(int mode)
                      throws HardwareInterfaceException
set the timestamp tick on the device

Parameters:
mode - 0: Trigger: Host, Tick 1us; 1: Trigger: Host, Tick 33.3ns; 2: Trigger: Slave, Tick 1us; 3: Trigger: Slave, Tick 33.3ns;
Throws:
HardwareInterfaceException

enableMissedEvents

public void enableMissedEvents(boolean yes)
                        throws HardwareInterfaceException
This method lets you configure how the USBAERmini2 handles events when the host computer is not fast enough to collect them. If MissedEvents is disabled, the device will not handshake to the sender until it can write events to the FIFO, so it does not lose events but blocks the sender. If enabled, the device will discard events as long as it can not write to the FIFOs (it will still pass them to the pass-through port though). The method getNumMissedEvents() will return an estimate of the number of events discarded.

Parameters:
yes - wheter missed events counting should be enabled to unblock chain
Throws:
HardwareInterfaceException

getOperationMode

public float getOperationMode()
                       throws HardwareInterfaceException
gets the timestamp mode from the device, prints out if slave or master mode and returns the tick

Returns:
returns the timestamp tick on the device in us, either 1us or 0.0333us
Throws:
HardwareInterfaceException

isTimestampMaster

public boolean isTimestampMaster()
                          throws HardwareInterfaceException
is this device acting as timestamp master

Returns:
true if this device is acting as timestamp master device. note that this can be the case even when the device is connected in slave mode, if the master is not active
Throws:
HardwareInterfaceException

getNumMissedEvents

public long getNumMissedEvents()
                        throws HardwareInterfaceException
returns an estimation of the number of events that were missed due to full fifos

Returns:
an estimation of the number of events that were missed due to full fifos
Throws:
HardwareInterfaceException

setLoopedSequencingEnabled

public void setLoopedSequencingEnabled(boolean set)
enables continuous sequencing, if enabled the AEWriter rewinds if it reaches the end of the packet and restarts sending from the beginning. otherwise it just stops sequencing.

Specified by:
setLoopedSequencingEnabled in interface AESequencerInterface
Parameters:
set - true to loop packet, false to sequence a single packet

isLoopedSequencingEnabled

public boolean isLoopedSequencingEnabled()
Specified by:
isLoopedSequencingEnabled in interface AESequencerInterface
Returns:
true if sequencing will loop back to start at end of data

writeMonitorSequencerFirmware

public void writeMonitorSequencerFirmware()
writes USBAERmini2 firmware to EEPROM can for example be used from matlab


updateFirmware

public void updateFirmware()
                    throws HardwareInterfaceException
Updates the firmware by downloading to the board's EEPROM

Specified by:
updateFirmware in interface HasUpdatableFirmware
Throws:
HardwareInterfaceException - if there is any error, including lack of support or missing firmware file. The exception should detail the error as much as possible.

writeMonitorSequencerJTAGFirmware

public void writeMonitorSequencerJTAGFirmware()

offerPacketToSequencer

public void offerPacketToSequencer(AEPacketRaw packet)
Pushes a packet to be sequenced to the sequencer output. Calling this automatically disables looping the sequenced data.

Specified by:
offerPacketToSequencer in interface AESequencerInterface
Parameters:
packet - the packet to add to the tail of the queue.

getAEMappers

public java.util.Collection<AEMapper> getAEMappers()
Specified by:
getAEMappers in interface AESoftMapper

startAEReader

public void startAEReader()
                   throws HardwareInterfaceException
Starts reader buffer pool thread and enables in endpoints for AEs. This method is overridden to construct our own reader with its translateEvents method

Overrides:
startAEReader in class CypressFX2
Throws:
HardwareInterfaceException

startSequencing

public void startSequencing(AEPacketRaw eventsToSend)
                     throws HardwareInterfaceException
Description copied from interface: AESequencerInterface
starts sequencing of events, starts AEWriter.

Specified by:
startSequencing in interface AESequencerInterface
Parameters:
eventsToSend - the events that should be sequenced, timestamps are realtive to last event, inter spike interval must not be bigger than 2^16-1
Throws:
HardwareInterfaceException

stopSequencing

public void stopSequencing()
                    throws HardwareInterfaceException
Description copied from interface: AESequencerInterface
stops sequencing of events from the driver

Specified by:
stopSequencing in interface AESequencerInterface
Throws:
HardwareInterfaceException

jAER project on SourceForge