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

#include <StdOutSensorBoard.h>

Inheritance diagram for SocCamera::tcStdOutSensorBoard:
Collaboration diagram for SocCamera::tcStdOutSensorBoard:

Public Types

enum  teTemperatureSensors { eeThermistor = 0, eeTopTemp = 1, eeBotTemp = 2 }
 

Public Member Functions

 tcStdOutSensorBoard ()
 
virtual ~tcStdOutSensorBoard ()
 
virtual int GetCameraInfo (tsCameraInfo *apInfo)
 
virtual int32 initialize ()
 
virtual teNackCode setExposure (int32 anMicroseconds, uint32_t anExpIndex=0) override
 
virtual int32 getExposure (uint32_t anExpIndex=0) override
 
virtual teNackCode setFrameInterval (int32 anMicroseconds)
 
virtual int32 getFrameInterval ()
 
virtual teNackCode setROI (ROI region)
 
virtual ROI getROI ()
 
virtual teNackCode setVerticalBin (int32 anPixels)
 
virtual int32 getVerticalBin ()
 
virtual teNackCode setHorizontalBin (int32 anPixels)
 
virtual int32 getHorizontalBin ()
 
virtual teNackCode setShutterMode (teShutterMode eeMode)
 
virtual int32 getShutterMode ()
 
virtual teNackCode setBPP (teBPPMode eeMode)
 
virtual int32 getBPP ()
 
virtual teNackCode setTestPattern (teTestPattern eeSelection)
 
virtual int32 getTestPattern ()
 
virtual teNackCode setTrigger (teTriggerMode eeTrigger)
 
virtual int32 getTrigger ()
 
virtual teNackCode peek (int32 anRegister, int *apValue)
 
virtual teNackCode poke (int32 anRegister, int32 anValue)
 
virtual int32 validate ()
 
virtual bool isCapturing ()
 
virtual teNackCode start ()
 
virtual teNackCode stop ()
 
virtual std::string getTemperature (int32 anSensor=eeThermistor)
 
virtual std::string getVersion ()
 getVersion More...
 
virtual teNackCode save (int32 anConfiguration)
 
virtual teNackCode recall (int32 anConfiguration)
 
virtual teNackCode setIODirection (int32 anMask)
 
virtual teNackCode setIOValue (int32 anMask)
 
virtual int32 getIODirection ()
 
virtual int32 getIOValue ()
 
virtual void InitBuffers ()
 
virtual void timerTicked (tcTimer *apTimer)
 
- Public Member Functions inherited from SocCamera::tcSensorBoard
 tcSensorBoard (int aeType, uint32 anStreamAddr, int32 length, int32 *aaGpioNum)
 
 tcSensorBoard (int aeType, uint32_t anFpgaBaseAddr, uint32_t anRamStreamAddr, int32 length, int32 *aaGpioNum)
 
virtual ~tcSensorBoard ()
 
int id ()
 
int32 init ()
 
virtual tcAbstractHandlergetCustomHandlers (tcAbstractHandler *apTailHandler, std::map< std::string, tcAbstractHandler * > *apStringMap)
 
virtual void resetFpga ()
 
virtual uint64_t fpgaVersion ()
 
virtual void update (tsUpdate asMessage)
 
virtual teNackCode calibrate ()
 
virtual teNackCode whiteLevelCalibrate ()
 
virtual teNackCode setClockSetting (int32 anSetting)
 
virtual teNackCode getClockSetting (int32 &arSetting)
 
virtual void snap (tsCaptureRequest asSnapRequest)
 start a capture More...
 
teNackCode setExposure (std::chrono::microseconds anMicroseconds, uint32_t anExpIndex=0)
 
virtual uint32 getMinFrameIntervalMicroS ()
 
std::chrono::microseconds getMinFrameInterval ()
 
teNackCode setFrameInterval (std::chrono::microseconds anMicroseconds)
 
virtual ROI getImageROI ()
 
virtual teNackCode setColor (bool)
 
virtual float getTempCelsius ()
 
virtual float getBoardTempCelsius ()
 
virtual teNackCode setIODirection (int32 anPin, int32 anDirection)
 tcSensorBoard::setIODirection Sets the camera GPIO direction. More...
 
virtual teNackCode setIOValue (int32 anPinNum, int32 anValue)
 tcSensorBoard::setIOValue Sets the output value of the gpio-camio linux module controlling the cam-gpio.vhd critical link camera IO block. More...
 
virtual teNackCode setIOInverter (int32 anPinNum, int32 anInvertEnable)
 tcSensorBoard::setIOInverter Sets the camera GPIO invert state. More...
 
virtual teNackCode power (bool abOn)
 
virtual int32 getNumPins ()
 
virtual teNackCode setMirroring (bool isX, bool Enabled)
 
virtual teNackCode getMirroring (bool isX, bool *Enabled)
 
virtual teNackCode setNoiseReduct (bool enHi, uint16_t threshhi, bool enLo, uint16_t threshlo)
 
virtual teNackCode getNoiseReduct (bool &enHi, uint16_t &threshhi, bool &enLo, uint16_t &threshlo)
 
virtual teNackCode setSqrtCompression (bool enable)
 
virtual teNackCode getSqrtCompression (bool &enable)
 
virtual teNackCode setDemoMode (int32 anMode)
 
virtual teNackCode getDemoMode (int32 &arMode)
 
virtual teNackCode loadColumnBias (const char *asFilename)
 
virtual teNackCode loadColumnGain (const char *asFilename)
 
virtual teNackCode loadPixelCal (const char *asFilename)
 
virtual tcRAMStreamergetStreamer ()
 
virtual tcTimestamp * getTimestamper ()
 
virtual void setTimestamper (tcTimestamp *apStamper)
 
virtual tcSensorBoardself ()
 
uint32 getFrameSizeBytes ()
 
int getSysIdNumber (unsigned short &major, unsigned short &minor)
 
uint32 getMaxImgCount ()
 
uint32 getNumSnapFramesLeft ()
 
virtual void Handler (unsigned int gpionum, unsigned int val)
 Handler GPIO Handler notifies changes on any gpio with edges enabled. More...
 
virtual uint32 getPixelFormat (void)
 Get the pixel format generated by the pixel pipeline. More...
 
virtual tcVoltageSensorgetVoltageSensor ()
 get the temperature monitor object for this sensor More...
 
virtual tcTemperatureSensorgetTempSensor ()
 get the tcTemperature monitor object for this sensor More...
 
virtual void runPeriodic ()
 can be called by framework to do any periodic work. More...
 
virtual int32_t getSensorWidth ()
 
virtual int32_t getSensorHeight ()
 
- Public Member Functions inherited from tcObserver
 tcObserver ()
 
virtual ~tcObserver ()
 
- Public Member Functions inherited from tcTimedObject
 tcTimedObject ()
 
virtual ~tcTimedObject ()
 

Additional Inherited Members

- Static Public Attributes inherited from SocCamera::tcSensorBoard
static const std::string NO_TEMPERATURE_SENSOR
 
static const std::string TEMPERATURE_SENSOR_ERROR
 
- Protected Member Functions inherited from SocCamera::tcSensorBoard
void nextRequest ()
 
void initGpios (int32 length, int32 *aaGpioNum)
 
virtual uint32 GetSkipFrames (bool &reload)
 GetSkipFrames If the current sensor needs to skip initially received frames, they can overload this function, which will be called immediately prior to a ::start() call, to set the number of frames to skip. This only works with the RAMStreamer image data. More...
 
uint32 ConvertPixelFormat (uint32 anFormat, bool abFlipX, bool abFlipY)
 Utility routine to convert PFNC pixel format given flip options. More...
 
teNackCode GetA10BoardTemp (uint32 anIndex, float &anTemp)
 Utility routine to get the temp sensor readings off an A10 processor card. More...
 
- Protected Attributes inherited from SocCamera::tcSensorBoard
bool mbIsPowered
 
tcMutex mhMutex
 
MityDSP::tcGpio * mpCamIO
 
MityDSP::tcGpio::PinConfig * maPinConfigs
 
int32 mnPinCount
 
tcRAMStreamermpStreamer
 
std::map< int, std::pair< tcIntAccessor *, IntAccessorFunction > > mhPeekMap
 
std::map< int, std::pair< tcIntSetter *, IntSetterFunction > > mhPokeMap
 
tcPollingInterruptThread mcInterruptThread
 
MityDSP::tcAD741x * mpTempSensor
 
uint32 mnMaxImgCount
 
const sensors_chip_name * mpChipnameAD7414
 lmsensors chipname for AD7414 on A10/CV More...
 
const sensors_chip_name * mpChipnameLM95235
 lmsensors chipname for LM95235 on A10 More...
 
int mnAD7414_sf
 TEMP input subfeature number needed to get the actual temperature. More...
 
int mnLM95235_die_sf
 TEMP input subfeature for die temperature (CPU) sensor. More...
 
int mnLM95235_board_sf
 TEMP input subfeature for on-chip sensor. More...
 

Member Enumeration Documentation

◆ teTemperatureSensors

Enumerator
eeThermistor 
eeTopTemp 
eeBotTemp 

Constructor & Destructor Documentation

◆ tcStdOutSensorBoard()

tcStdOutSensorBoard::tcStdOutSensorBoard ( )

◆ ~tcStdOutSensorBoard()

tcStdOutSensorBoard::~tcStdOutSensorBoard ( )
virtual

Member Function Documentation

◆ getBPP()

int32 tcStdOutSensorBoard::getBPP ( )
virtual

Returns the currently set BPP mode of the camera from eeBPPMode

Returns
an int32 from eeBPPMode for the currently set BPP mode

◆ GetCameraInfo()

int tcStdOutSensorBoard::GetCameraInfo ( tsCameraInfo apInfo)
virtual

Get the camera info for the given sensor board.

Parameters
apInfo- pointer to camera structure to fill in.
Returns
zero on success.

Implements SocCamera::tcSensorBoard.

◆ getExposure()

int32 tcStdOutSensorBoard::getExposure ( uint32_t  anExpIndex = 0)
overridevirtual

Returns the currently set exposure time in microseconds.

Returns
an int32 for the number of microseconds the exposure is set to.

Implements SocCamera::tcSensorBoard.

◆ getFrameInterval()

int32 tcStdOutSensorBoard::getFrameInterval ( )
virtual

Returns the frame interval time in microseconds.

Returns
an int32 for the number of microseconds the interval is set to.

Implements SocCamera::tcSensorBoard.

◆ getHorizontalBin()

int32 tcStdOutSensorBoard::getHorizontalBin ( )
virtual

Gets the currently set horizontal binning factor being used.

Returns
an int32 - the number of pixels being binned horizontally

Implements SocCamera::tcSensorBoard.

◆ getIODirection()

int32 tcStdOutSensorBoard::getIODirection ( )
virtual

Returns the current direction of the pins as a bit mask where the position of the bit is the gpio and a non-zero value indicates an output.

Returns
The bit mask of the directions; non-zero is output, 0 is input and each bit corresponds to the IO pin.

Reimplemented from SocCamera::tcSensorBoard.

Reimplemented in tcCamLinkTestSensorBoard.

◆ getIOValue()

int32 tcStdOutSensorBoard::getIOValue ( )
virtual

Returns the current value of the pins; if the pin is an input, this is the value read. If the pin is an output, this is the value it is driving.

Returns
The bit mask of pin values being read or driven.

Reimplemented from SocCamera::tcSensorBoard.

Reimplemented in tcCamLinkTestSensorBoard.

◆ getROI()

ROI tcStdOutSensorBoard::getROI ( )
virtual

Returns the currently set region of interest for the camera.

Returns
the ROI the sensor will produce.

Implements SocCamera::tcSensorBoard.

◆ getShutterMode()

int32 tcStdOutSensorBoard::getShutterMode ( )
virtual

Returns the current shutter mode of the camera.

Returns
an int32 from eeShutterModes to state the shutter mode of the camera

Implements SocCamera::tcSensorBoard.

◆ getTemperature()

string tcStdOutSensorBoard::getTemperature ( int32  anSensor = eeThermistor)
virtual

Returns the temperature for the sensor specified if there are multiple.

Use tcCIS2521SensorBoard::teTemperatureSensors for the argument

Parameters
anSensor- the sensor to request.
Returns
the temperature in celsius as a float; returns -275 (below absolute 0) if not implemented for this sensor.

Implements SocCamera::tcSensorBoard.

◆ getTestPattern()

int32 tcStdOutSensorBoard::getTestPattern ( )
virtual

Get the currently set test pattern from eeTestPatterns.

Returns
an int32 - the current test pattern from eeTestPatterns

Implements SocCamera::tcSensorBoard.

◆ getTrigger()

int32 tcStdOutSensorBoard::getTrigger ( )
virtual

Returns the currently set trigger mode.

Returns
an int32 - the current trigger from eeTriggerModes

Implements SocCamera::tcSensorBoard.

◆ getVersion()

std::string tcStdOutSensorBoard::getVersion ( )
virtual

getVersion

Returns

Implements SocCamera::tcSensorBoard.

◆ getVerticalBin()

int32 tcStdOutSensorBoard::getVerticalBin ( )
virtual

Gets the currently set vertical binnign factor being used.

Returns
an int32 - the number of pixels being binned vertically

Implements SocCamera::tcSensorBoard.

◆ InitBuffers()

void tcStdOutSensorBoard::InitBuffers ( )
virtual

◆ initialize()

int32 tcStdOutSensorBoard::initialize ( )
virtual

Performs the power up procedure of the CIS2521, sets default registers on the sensor and the FPGA.

Returns
an int32 for the status; 0 if successful, non zero for an error

Implements SocCamera::tcSensorBoard.

◆ isCapturing()

bool tcStdOutSensorBoard::isCapturing ( )
virtual

Test if the camera is currently capturing. Used to prevent setting certain paramters when the device is capturing.

Returns
a bool - true if the camera is currently capturing; false otherwise

Implements SocCamera::tcSensorBoard.

◆ peek()

teNackCode tcStdOutSensorBoard::peek ( int32  anRegister,
int *  apValue 
)
virtual

Gets the current value of a register according to the document defining the behavior of the concrete class.

Parameters
anRegister- an int32 - the register to look at.
apValue- a pointer to a location to store the value read back
Returns
an int32 - the value from the register; 0 if the register was invalid.

Reimplemented from SocCamera::tcSensorBoard.

◆ poke()

teNackCode tcStdOutSensorBoard::poke ( int32  anRegister,
int32  anValue 
)
virtual

Sets a register according to the document defining the behavior of the concrete class.

Parameters
anRegister- an int32 - the register to set.
anValue- an int32 - the value to set the register to.
Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Reimplemented from SocCamera::tcSensorBoard.

◆ recall()

teNackCode tcStdOutSensorBoard::recall ( int32  anConfiguration)
virtual

Recall a configuration identified by anConfiguration.

Parameters
anConfiguration- an int32 specifying the config to recall
Returns
zero for success, non-zero for failure.

Implements SocCamera::tcSensorBoard.

◆ save()

teNackCode tcStdOutSensorBoard::save ( int32  anConfiguration)
virtual

Saves a configuration identified by anConfiguration.

Parameters
anConfiguration- an int32 specifying the config to recall
Returns
zero for success, non-zero for failure.

Implements SocCamera::tcSensorBoard.

◆ setBPP()

teNackCode tcStdOutSensorBoard::setBPP ( teBPPMode  eeMode)
virtual

A request to set the BPP mode of the camera.

Parameters
eeMode- an int32 from eeBPPMode for the mode to enter
Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ setExposure()

teNackCode tcStdOutSensorBoard::setExposure ( int32  anMicroseconds,
uint32_t  anExpIndex = 0 
)
overridevirtual

Sets the exposure time to the nearest valid exposure time which is greater than the parameter.

Parameters
anMicroseconds- an int32 - the number of microseconds the exposure should be
Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ setFrameInterval()

teNackCode tcStdOutSensorBoard::setFrameInterval ( int32  anMicroseconds)
virtual

Sets the frame interval to the nearest valid interval time which is shorter than the paramter.

Parameters
anMicroseconds- an int32 - the number of microseconds the frame interval time should be
Returns
an int32 for the status; 0 if successful, non-zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ setHorizontalBin()

teNackCode tcStdOutSensorBoard::setHorizontalBin ( int32  anPixels)
virtual

A request to set the horizontal binning factor of the camera.

Parameters
anPixels- an int32 - the number of pixels to bin horizontally
Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ setIODirection()

teNackCode tcStdOutSensorBoard::setIODirection ( int32  anMask)
virtual

Sets the direction of the pins. Use 0 to set the pin to input and 1 to set an output. Uses the input as a bit mask.

Bits in the mask set beyond 0 through (length-1) are ignored and no error is reported.

Parameters
anMask- an int32 - the mask to use.
Returns
Zero if successful, non-zero otherwise.

◆ setIOValue()

teNackCode tcStdOutSensorBoard::setIOValue ( int32  anMask)
virtual

Sets the value of the pins which are outputs. If the pin is an input, the value is ignored.

Bits in the mask set beyond 0 through (length-1) are ignored and no error is reported.

Parameters
anMask- the mask of values to write out to the outputs.
Returns
Zero if successful, non-zero otherwise.

◆ setROI()

teNackCode tcStdOutSensorBoard::setROI ( ROI  region)
virtual

Sets the ROI from the sensor's perspective; binning will reduce the the actual number of pixels in a frame.

Parameters
region- ROI struct - dictates the top left of the region and the size.
Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ setShutterMode()

teNackCode tcStdOutSensorBoard::setShutterMode ( teShutterMode  eeMode)
virtual

A request to set the shutter mode of the camera.

Parameters
eeMode- an int32 from eeShutterMode to place the camera into.
Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ setTestPattern()

teNackCode tcStdOutSensorBoard::setTestPattern ( teTestPattern  eeSelection)
virtual

Request to set the test pattern from eeTestPatterns.

Parameters
eeSelection- an int32 from eeTestPatterns for which pattern to use
Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ setTrigger()

teNackCode tcStdOutSensorBoard::setTrigger ( teTriggerMode  eeTrigger)
virtual

Selects the trigger mode to use.

Parameters
eeTrigger- an int32 from eeTriggerModes
Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ setVerticalBin()

teNackCode tcStdOutSensorBoard::setVerticalBin ( int32  anPixels)
virtual

A request to set the vertical binning factor of the camera.

Parameters
anPixels- an int32 - the number of pixels to bin vertically
Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ start()

teNackCode tcStdOutSensorBoard::start ( )
virtual

Request to start capturing if configuration is valid.

Returns
an int32 for the status; 0 if successful and camera is now capturing, non zero corresponding to the appropriate NACK value if not capturing.

Implements SocCamera::tcSensorBoard.

◆ stop()

teNackCode tcStdOutSensorBoard::stop ( )
virtual

Request to stop the camera from capturing.

Returns
an int32 for the status; 0 if successful, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.

◆ timerTicked()

void SocCamera::tcStdOutSensorBoard::timerTicked ( tcTimer apTimer)
virtual

Implements tcTimedObject.

◆ validate()

int32 tcStdOutSensorBoard::validate ( )
virtual

Checks if the current configuration is valid and can be applied when trying to begin capturing.

Returns
an int32 for the status; 0 if valid, non zero corresponding to the appropriate NACK value.

Implements SocCamera::tcSensorBoard.


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