TwiceAsNice  2019-02-18
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
CamUsbIo Class Referenceabstract

Usb implementation of the ICamIo interface. More...

#include <CamUsbIo.h>

Inheritance diagram for CamUsbIo:
Inheritance graph
Collaboration diagram for CamUsbIo:
Collaboration graph

Public Member Functions

virtual ~CamUsbIo ()
 
uint16_t ReadReg (uint16_t reg) const
 
void WriteReg (uint16_t reg, uint16_t val)
 
void WriteSRMD (uint16_t reg, const std::vector< uint16_t > &data)
 
void WriteMRMD (uint16_t reg, const std::vector< uint16_t > &data)
 
void GetUsbVendorInfo (uint16_t &VendorId, uint16_t &ProductId, uint16_t &DeviceId)
 
std::string GetUsbFirmwareVersion ()
 
void SetupImgXfer (uint16_t Rows, uint16_t Cols, uint16_t NumOfImages, bool IsBulkSeq)
 
void CancelImgXfer ()
 
void GetImageData (std::vector< uint16_t > &data)
 
void GetStatus (CameraStatusRegs::BasicStatus &status)
 
void GetStatus (CameraStatusRegs::AdvStatus &status)
 
uint16_t GetFirmwareRev ()
 
std::string GetInfo ()
 
uint8_t ReadBufConReg (uint16_t reg)
 
void WriteBufConReg (uint16_t reg, uint8_t val)
 
uint8_t ReadFx2Reg (uint16_t reg)
 
void WriteFx2Reg (uint16_t reg, uint8_t val)
 
uint32_t GetMaxXferBufSize ()
 
std::string GetDriverVersion ()
 
bool IsError ()
 
virtual void SetSerialNumber (const std::string &num)=0
 
virtual std::string GetSerialNumber ()=0
 
virtual void ReadHeader (Eeprom::Header &hdr)=0
 
- Public Member Functions inherited from ICamIo
virtual ~ICamIo ()
 

Protected Member Functions

 CamUsbIo (const std::string &DeviceEnum, uint32_t MaxBufSize, bool ApplyPad)
 
void Progress2StdOut (const int32_t percentComplete)
 
int32_t GetPadding (const int32_t Num)
 
- Protected Member Functions inherited from ICamIo
 ICamIo ()
 

Protected Attributes

bool m_Print2StdOut
 
std::shared_ptr< IUsbm_Usb
 
const std::string m_fileName
 
bool m_ApplyPadding
 
uint32_t m_MaxBufSize
 

Private Member Functions

 CamUsbIo (const CamUsbIo &)
 
CamUsbIooperator= (CamUsbIo &)
 

Detailed Description

Usb implementation of the ICamIo interface.

Usb implemenation of the ICamIo interface.

This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.

Copyright(c) 2009 Apogee Instruments, Inc.

Constructor & Destructor Documentation

◆ ~CamUsbIo()

CamUsbIo::~CamUsbIo ( )
virtual

◆ CamUsbIo() [1/2]

CamUsbIo::CamUsbIo ( const std::string &  DeviceEnum,
uint32_t  MaxBufSize,
bool  ApplyPad 
)
protected

◆ CamUsbIo() [2/2]

CamUsbIo::CamUsbIo ( const CamUsbIo )
private

Member Function Documentation

◆ CancelImgXfer()

void CamUsbIo::CancelImgXfer ( )
virtual

Cancel the pending image transfer.

Implements ICamIo.

◆ GetDriverVersion()

std::string CamUsbIo::GetDriverVersion ( )
virtual

Implements ICamIo.

◆ GetFirmwareRev()

uint16_t CamUsbIo::GetFirmwareRev ( )
virtual

Implements ICamIo.

◆ GetImageData()

void CamUsbIo::GetImageData ( std::vector< uint16_t > &  data)
virtual

Moves the data from the camera to the host PC. Called at different times depending on the cameras acquistion mode

Parameters
[in]NumberOfPixelsTotal number of pixels to transfer from the camera to host
Returns
ImageData Image from the camera

Implements ICamIo.

◆ GetInfo()

std::string CamUsbIo::GetInfo ( )
virtual

Implements ICamIo.

◆ GetMaxXferBufSize()

uint32_t CamUsbIo::GetMaxXferBufSize ( )
inline

◆ GetPadding()

int32_t CamUsbIo::GetPadding ( const int32_t  Num)
protected

◆ GetSerialNumber()

virtual std::string CamUsbIo::GetSerialNumber ( )
pure virtual

Implemented in AspenUsbIo, AscentBasedUsbIo, and AltaUsbIo.

◆ GetStatus() [1/2]

void CamUsbIo::GetStatus ( CameraStatusRegs::BasicStatus status)
virtual

Fetches the camera's status. This function should be used on rev 15 firmware or lower

Parameters
[out]statusBasic status structure

Implements ICamIo.

◆ GetStatus() [2/2]

void CamUsbIo::GetStatus ( CameraStatusRegs::AdvStatus status)
virtual

Fetches the camera's status. This function should be used on rev 16 firmware and higher

Parameters
[out]statusAdvanced status structure

Implements ICamIo.

◆ GetUsbFirmwareVersion()

std::string CamUsbIo::GetUsbFirmwareVersion ( )

◆ GetUsbVendorInfo()

void CamUsbIo::GetUsbVendorInfo ( uint16_t VendorId,
uint16_t ProductId,
uint16_t DeviceId 
)

◆ IsError()

bool CamUsbIo::IsError ( )
virtual

Implements ICamIo.

◆ operator=()

CamUsbIo& CamUsbIo::operator= ( CamUsbIo )
private

◆ Progress2StdOut()

void CamUsbIo::Progress2StdOut ( const int32_t  percentComplete)
protected

◆ ReadBufConReg()

uint8_t CamUsbIo::ReadBufConReg ( uint16_t  reg)

◆ ReadFx2Reg()

uint8_t CamUsbIo::ReadFx2Reg ( uint16_t  reg)

◆ ReadHeader()

virtual void CamUsbIo::ReadHeader ( Eeprom::Header hdr)
pure virtual

Implemented in AspenUsbIo, AscentBasedUsbIo, and AltaUsbIo.

◆ ReadReg()

uint16_t CamUsbIo::ReadReg ( uint16_t  reg) const
virtual

Reads camera control registers

Parameters
[in]regRegister to read.

Implements ICamIo.

◆ SetSerialNumber()

virtual void CamUsbIo::SetSerialNumber ( const std::string &  num)
pure virtual

Implemented in AspenUsbIo, AscentBasedUsbIo, and AltaUsbIo.

◆ SetupImgXfer()

void CamUsbIo::SetupImgXfer ( uint16_t  Rows,
uint16_t  Cols,
uint16_t  NumOfImages,
bool  IsBulkSeq 
)
virtual

Prime the IO interface for an upcoming image transfer.

Parameters
[in]RowsImage height in pixels
[in]ColsImage width in pixels
[in]NumOfImagesNumber of images in the set

Implements ICamIo.

◆ WriteBufConReg()

void CamUsbIo::WriteBufConReg ( uint16_t  reg,
uint8_t  val 
)

◆ WriteFx2Reg()

void CamUsbIo::WriteFx2Reg ( uint16_t  reg,
uint8_t  val 
)

◆ WriteMRMD()

void CamUsbIo::WriteMRMD ( uint16_t  reg,
const std::vector< uint16_t > &  data 
)
virtual

Writes data to a Multiple Request Multiple Data (MRMD) controller on the camera

Parameters
[in]regRegister to write to.
[out]dataData vector

Implements ICamIo.

◆ WriteReg()

void CamUsbIo::WriteReg ( uint16_t  reg,
uint16_t  val 
)
virtual

Writes data to camera control registers

Parameters
[in]regRegister to write to.
[out]valData value in the register

Implements ICamIo.

◆ WriteSRMD()

void CamUsbIo::WriteSRMD ( uint16_t  reg,
const std::vector< uint16_t > &  data 
)
virtual

Writes data to a Single Request Multiple Data (SRMD) controller on the camera

Parameters
[in]regRegister to write to.
[out]dataData vector

Implements ICamIo.

Member Data Documentation

◆ m_ApplyPadding

bool CamUsbIo::m_ApplyPadding
protected

◆ m_fileName

const std::string CamUsbIo::m_fileName
protected

◆ m_MaxBufSize

uint32_t CamUsbIo::m_MaxBufSize
protected

◆ m_Print2StdOut

bool CamUsbIo::m_Print2StdOut
protected

◆ m_Usb

std::shared_ptr<IUsb> CamUsbIo::m_Usb
protected

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