Critical Link MityCam SoC Firmware  1.0
Critical Link MityCam SoC Firmware
SocCamera::tcBufferedCameraLinkIO Class Reference

#include <BufferedCameraLinkIO.h>

Inheritance diagram for SocCamera::tcBufferedCameraLinkIO:
Collaboration diagram for SocCamera::tcBufferedCameraLinkIO:

Public Member Functions

 tcBufferedCameraLinkIO (tcSensorBoard *apSensor, int32 anCamLinkFPGAControlAddress, uint32 anSgdmaCtrlAddr, uint32 anSgdmaDescAddr, uint32 anRespRegAddr, uint32 anMuxRegAddr, uint32 anPacketizerAddr, tcPllReconfig *apReconfig=NULL)
 
virtual ~tcBufferedCameraLinkIO ()
 
virtual SocCamera::teNackCode capture (tsCaptureRequest asRequest)
 
virtual void sendUpdate (tsNewFrameMsg *apMsg)
 
virtual SocCamera::teNackCode setBpp (SocCamera::teBPPMode aeBppMode)
 
void alwaysBuffer (int anAlwaysBuffer)
 
virtual SocCamera::teNackCode setOutputMode (tcCameraLinkIO::teOutputMode aeOutputMode)
 
void registerWatcher (tcBufferedCameraLinkWatcher *apWatcher)
 
void unregisterWatcher (tcBufferedCameraLinkWatcher *apWatcher)
 
- Public Member Functions inherited from tcCameraLinkIO
 tcCameraLinkIO (SocCamera::tcSensorBoard *apSensor, int32 anCamLinkFPGAControlAddress=0xFF240000, tcPllReconfig *apReconfig=NULL, const char *apFilename="pixel_clock_pll_table.txt")
 
virtual ~tcCameraLinkIO ()
 
void setSerDebug (bool abOn)
 
void setTestPattern (bool abEnable)
 
void enableStreaming (bool abEnable)
 
teOutputMode getOutputMode ()
 
void setPseudoSinglePort (bool abEnable)
 
SocCamera::teNackCode setPixelClock (double anFreqMHz)
 
double getPixelClock ()
 
int setBackpressureRows (int rows)
 
- Public Member Functions inherited from tcIOChannel
 tcIOChannel (SocCamera::teIOChannels aeIOId, SocCamera::tcSensorBoard *apSensor)
 Construct a new tcIOChannel::tcIOChannel object. More...
 
virtual ~tcIOChannel ()
 
virtual void initialized ()
 
SocCamera::teBPPMode getBpp ()
 
virtual void processUpdate (tsNewFrameMsg *apMsg)
 
void setEnable (bool abEnable)
 
tcImagegrabImage ()
 
SocCamera::teIOChannels id ()
 
virtual void invalidateCache (void *apMem, size_t anSize)
 
virtual void * memory ()
 
- Public Member Functions inherited from tcIOCallback
 tcIOCallback ()
 
virtual ~tcIOCallback ()
 

Additional Inherited Members

- Public Types inherited from tcCameraLinkIO
enum  teOutputMode { eeExpanded = 0, eeBase = 1, eeMedium = 2, eeFull = 3 }
 
- Protected Member Functions inherited from tcCameraLinkIO
void resetCamLink (bool abSet)
 
uint32 numTransferred ()
 
- Protected Member Functions inherited from tcIOChannel
void invalidateCache (tsNewFrameMsg *apMsg)
 
void invalidateCache ()
 
void Report (const char *fmt,...)
 This method routes text to stderr. More...
 
void ReportError (const char *fmt,...)
 
- Protected Attributes inherited from tcCameraLinkIO
tcFPGARegister< uint32mhCLComponent
 
- Protected Attributes inherited from tcIOChannel
std::string m_name
 
SocCamera::teIOChannels meIOId
 
SocCamera::tcSensorBoardmpSensor
 
SocCamera::teBPPMode meBppMode
 
int64 mnImgCount
 
std::list< tsNewFrameMsgmlUpdates
 
tcMutex mcMutex
 
tcCondition mcCond
 
void * mpMemory
 
tcIOChannelThread mcThread
 
tsNewFrameMsg msLastUpdate
 
bool mbSimRAM
 
- Static Protected Attributes inherited from tcIOChannel
static uint32 CAPTURE_START_ADDR = (0x20000000)
 
static uint32 MEMORY_BLOCK_SIZE = (0x20000000)
 
static bool CMEM_USED = (true)
 
static bool MMAP_USED = (true)
 

Constructor & Destructor Documentation

◆ tcBufferedCameraLinkIO()

tcBufferedCameraLinkIO::tcBufferedCameraLinkIO ( tcSensorBoard apSensor,
int32  anCamLinkFPGAControlAddress,
uint32  anSgdmaCtrlAddr,
uint32  anSgdmaDescAddr,
uint32  anRespRegAddr,
uint32  anMuxRegAddr,
uint32  anPacketizerAddr,
tcPllReconfig *  apReconfig = NULL 
)

Creates a CameraLink component that has a SGDMA engine attached for slow trickling out of RAM. Essentially, this means there are two modes of operation depending on the capture request:

1) Continuous capture (ie: <STRT>) stream directly through the CameraLink component. 2) Captures with a parameter (ie: <STRT 47>) will cause the capture to stream to RAM and when complete, this component will kick the SGDMA engine to trickle the data out the CameraLink component.

◆ ~tcBufferedCameraLinkIO()

tcBufferedCameraLinkIO::~tcBufferedCameraLinkIO ( )
virtual

Member Function Documentation

◆ alwaysBuffer()

void SocCamera::tcBufferedCameraLinkIO::alwaysBuffer ( int  anAlwaysBuffer)

◆ capture()

teNackCode tcBufferedCameraLinkIO::capture ( tsCaptureRequest  asRequest)
virtual

Start a capture with this request. If the request's number of frames is tsNewRequest::CANCEL_CAPTURE then the current capture is stopped if possible.

Parameters
asRequest- the request for capture being made.
Returns
a nack code if the capture parameters are inelligable for this IOChannel.

Reimplemented from tcCameraLinkIO.

◆ registerWatcher()

void SocCamera::tcBufferedCameraLinkIO::registerWatcher ( tcBufferedCameraLinkWatcher apWatcher)

◆ sendUpdate()

void tcBufferedCameraLinkIO::sendUpdate ( tsNewFrameMsg apMsg)
virtual

If this is called, a stream into memory is complete. This will then kick the SGDMA engine to transfer out of memory through the CameraLink component.

Parameters
apMsg- the update message.

Reimplemented from tcCameraLinkIO.

◆ setBpp()

SocCamera::teNackCode SocCamera::tcBufferedCameraLinkIO::setBpp ( SocCamera::teBPPMode  aeBppMode)
virtual

Sets the bits-per-pixel output of the camera.

Parameters
aeBppMode- the bits per pixel mode.
Returns
the nack code for the operation

Reimplemented from tcCameraLinkIO.

◆ setOutputMode()

SocCamera::teNackCode SocCamera::tcBufferedCameraLinkIO::setOutputMode ( tcCameraLinkIO::teOutputMode  aeOutputMode)
virtual

Toggles between the various camera link output modes (expanded, base).

Parameters
aeOutputMode- the mode to move into.
Returns
a nack code if the output mode is not supported.

Reimplemented from tcCameraLinkIO.

◆ unregisterWatcher()

void SocCamera::tcBufferedCameraLinkIO::unregisterWatcher ( tcBufferedCameraLinkWatcher apWatcher)

The documentation for this class was generated from the following files: