|
jAER project on SourceForge | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectde.thesycon.usbio.UsbIo
de.thesycon.usbio.UsbIoPipe
de.thesycon.usbio.UsbIoThread
de.thesycon.usbio.UsbIoReader
net.sf.jaer.hardwareinterface.usb.cypressfx2.CypressFX2.AEReader
net.sf.jaer.hardwareinterface.usb.cypressfx2.CypressFX2MonitorSequencer.MonSeqAEReader
public class CypressFX2MonitorSequencer.MonSeqAEReader
This reader understands the format of raw USB data and translates to the AEPacketRaw
Field Summary |
---|
Fields inherited from class net.sf.jaer.hardwareinterface.usb.cypressfx2.CypressFX2.AEReader |
---|
CYPRESS_FIFO_SIZE, CYPRESS_NUM_BUFFERS, lastWrapAdd, MAX_NONMONOTONIC_TIME_EXCEPTIONS_TO_PRINT, MONITOR_PRIORITY, wrapAdd, wrappedBig |
Fields inherited from class de.thesycon.usbio.UsbIoThread |
---|
BufPool, MaxErrorCount, PendingList, T |
Fields inherited from class de.thesycon.usbio.UsbIo |
---|
Handle |
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 |
Fields inherited from interface de.thesycon.usbio.UsbIoInterface |
---|
DevicePowerStateD0, DevicePowerStateD1, DevicePowerStateD2, DevicePowerStateD3, INFINITE, PipeTypeBulk, PipeTypeControl, PipeTypeInterrupt, PipeTypeIsochronous, RecipientDevice, RecipientEndpoint, RecipientInterface, RecipientOther, RequestTypeClass, RequestTypeVendor, USBIO_DEVICE_INFOFLAG_HIGH_SPEED, USBIO_ENABLE_REMOTE_WAKEUP, USBIO_INFOFLAG_CHECKED_BUILD, USBIO_INFOFLAG_DEMO_VERSION, USBIO_INFOFLAG_LIGHT_VERSION, USBIO_INFOFLAG_VS_LIGHT_VERSION, USBIO_RESET_DEVICE_ON_CLOSE, USBIO_SHORT_TRANSFER_OK, USBIO_START_TRANSFER_ASAP, USBIO_UNCONFIGURE_ON_CLOSE |
Fields inherited from interface de.thesycon.usbio.UsbSpec |
---|
AUDIO_CS_ENDPOINT_TYPE, AUDIO_CS_INTERFACE_TYPE, USB_CONFIGURATION_DESCRIPTOR_TYPE, USB_DEVICE_DESCRIPTOR_TYPE, USB_DEVICE_QUALIFIER_DESCRIPTOR_TYPE, USB_ENDPOINT_DESCRIPTOR_TYPE, USB_HID_DESCRIPTOR_TYPE, USB_INTERFACE_DESCRIPTOR_TYPE, USB_INTERFACE_POWER_DESCRIPTOR_TYPE, USB_OTHER_SPEED_CONFIGURATION_DESCRIPTOR_TYPE, USB_STRING_DESCRIPTOR_TYPE |
Constructor Summary | |
---|---|
CypressFX2MonitorSequencer.MonSeqAEReader(CypressFX2 cypress)
|
Method Summary | |
---|---|
protected void |
translateEvents(de.thesycon.usbio.UsbIoBuf b)
Subclsses must override this method to process the raw data to write to the raw event packet buffers |
protected void |
translateEventsFromOriginalUSB2AERmini2WithOriginalFirmware(de.thesycon.usbio.UsbIoBuf b)
Method that translates the UsbIoBuffer when a board that has a CPLD with old firmware to timetamp events and that uses the CypressFX2 in slave FIFO mode, such as the USBAERmini2 board, is used. |
protected void |
translateEventsWithCPLDEventCode(de.thesycon.usbio.UsbIoBuf b)
Method that translates the UsbIoBuffer when a board that has a CPLD to timetamp events and that uses the CypressFX2 in slave FIFO mode, such as the USBAERmini2 board or StereoRetinaBoard, is used. |
Methods inherited from class net.sf.jaer.hardwareinterface.usb.cypressfx2.CypressFX2.AEReader |
---|
bufErrorHandler, getFifoSize, getNumBuffers, onThreadExit, processBuffer, processData, resetTimestamps, setFifoSize, setNumBuffers, startThread, toString |
Methods inherited from class de.thesycon.usbio.UsbIoReader |
---|
run |
Methods inherited from class de.thesycon.usbio.UsbIoThread |
---|
allocateBuffers, freeBuffers, shutdownThread |
Methods inherited from class de.thesycon.usbio.UsbIoPipe |
---|
abortPipe, bind, getPipeParameters, pipeControlTransferIn, pipeControlTransferOut, queryPipeStatistics, read, readSync, readSync, resetPipe, resetPipeStatistics, setPipeParameters, setupPipeStatistics, unbind, waitForCompletion, waitForCompletion, write, writeSync, writeSync |
Methods inherited from class de.thesycon.usbio.UsbIo |
---|
acquireDevice, classOrVendorInRequest, classOrVendorOutRequest, clearFeature, close, createDeviceList, cyclePort, destroyDeviceList, errorText, finalize, getBandwidthInfo, getConfiguration, getConfigurationDescriptor, getConfigurationInfo, getCurrentFrameNumber, getDescriptor, getDescriptor, getDeviceDescriptor, getDeviceInfo, getDeviceParameters, getDevicePowerState, getDriverInfo, getInterface, getStatus, getStringDescriptor, isCheckedBuild, isDemoVersion, isLightVersion, isOpen, isOperatingAtHighSpeed, open, releaseDevice, resetDevice, setConfiguration, setDescriptor, setDeviceParameters, setDevicePowerState, setFeature, setInterface, unconfigureDevice |
Methods inherited from class java.lang.Object |
---|
clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public CypressFX2MonitorSequencer.MonSeqAEReader(CypressFX2 cypress) throws HardwareInterfaceException
HardwareInterfaceException
Method Detail |
---|
protected void translateEvents(de.thesycon.usbio.UsbIoBuf b)
CypressFX2.AEReader
translateEvents
in class CypressFX2.AEReader
b
- the raw byte buffersprotected void translateEventsWithCPLDEventCode(de.thesycon.usbio.UsbIoBuf b)
On these boards, the msb of the timestamp is used to signal a wrap (the actual timestamp is only 14 bits). The timestamp is also used to signal a timestamp reset The wrapAdd is incremented when an emtpy event is received which has the timestamp bit 15 set to one. The timestamp is reset when an event is received which has the timestamp bit 14 set.
Therefore for a valid event only 14 bits of the 16 transmitted timestamp bits are valid, bits 14 and 15 are the status bits. overflow happens every 16 ms. This way, no roll overs go by undetected, and the problem of invalid wraps doesn't arise.
b
- the data buffertranslateEvents(de.thesycon.usbio.UsbIoBuf)
protected void translateEventsFromOriginalUSB2AERmini2WithOriginalFirmware(de.thesycon.usbio.UsbIoBuf b)
On these boards, the msb of the timestamp is used to signal a wrap (the actual timestamp is only 15 bits). The wrapAdd is incremented when an emtpy event is received which has the timestamp bit 15 set to one.
Therefore for a valid event only 15 bits of the 16 transmitted timestamp bits are valid, bit 15 is the status bit. overflow happens every 32 ms. This way, no roll overs go by undetected, and the problem of invalid wraps doesn't arise.
b
- the data buffertranslateEvents(de.thesycon.usbio.UsbIoBuf)
|
jAER project on SourceForge | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |