You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tdeedu/kstars/kstars/indi/apogee/ApnCamera_Linux.cpp

130 lines
3.6 KiB

// ApnCamera.cpp: extras from the CCameraIO class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "ApnCamera.h"
#include "ApnCamTable.h"
//#include "tcl.h"
//#include "ccd.h"
// Determine if camera is present
// True if camera is present, false otherwise.
bool CApnCamera::read_Present()
{
// OutputDebugString( "read_Present()" );
USHORT AptqStatus;
USHORT DatumA;
USHORT DatumB;
char szMsg[80];
DatumA = 0x0;
DatumB = 0x0;
AptqStatus = 0;
Write( FPGA_REG_SCRATCH, 0x8086 );
Read( FPGA_REG_SCRATCH, DatumA );
Write( FPGA_REG_SCRATCH, 0x1F2F );
Read( FPGA_REG_SCRATCH, DatumB );
if ( (DatumA != 0x8086) || (DatumB != 0x1F2F) )
{
// OutputDebugString( "read_Present FAILED." );
sprintf( szMsg, "read_Present FAILED. DatumA: 0x%X DatumB: 0x%X", DatumA, DatumB );
// OutputDebugString( szMsg );
return false;
}
// OutputDebugString( "read_Present SUCCESS" );
return true;
}
bool CApnCamera::sensorInfo()
{
strcpy(m_Sensor,m_ApnSensorInfo->m_Sensor);
strcpy(m_CameraModel,m_ApnSensorInfo->m_CameraModel);
m_CameraId = m_ApnSensorInfo->m_CameraId;
m_InterlineCCD = m_ApnSensorInfo->m_InterlineCCD;
m_SupportsSerialA = m_ApnSensorInfo->m_SupportsSerialA;
m_SupportsSerialB = m_ApnSensorInfo->m_SupportsSerialB;
m_SensorTypeCCD =m_ApnSensorInfo->m_SensorTypeCCD;
m_TotalColumns =m_ApnSensorInfo->m_TotalColumns;
m_ImagingColumns= m_ApnSensorInfo->m_ImagingColumns;
m_ClampColumns= m_ApnSensorInfo->m_ClampColumns;
m_PreRoiSkipColumns =m_ApnSensorInfo->m_PreRoiSkipColumns;
m_PostRoiSkipColumns= m_ApnSensorInfo->m_PostRoiSkipColumns;
m_OverscanColumns =m_ApnSensorInfo->m_OverscanColumns;
m_TotalRows =m_ApnSensorInfo->m_TotalRows;
m_ImagingRows =m_ApnSensorInfo->m_ImagingRows;
m_UnderscanRows= m_ApnSensorInfo->m_UnderscanRows;
m_OverscanRows =m_ApnSensorInfo->m_OverscanRows;
m_VFlushBinning =m_ApnSensorInfo->m_VFlushBinning;
m_HFlushDisable =m_ApnSensorInfo->m_HFlushDisable;
m_ShutterCloseDelay= m_ApnSensorInfo->m_ShutterCloseDelay;
m_PixelSizeX = m_ApnSensorInfo->m_PixelSizeX;
m_PixelSizeY = m_ApnSensorInfo->m_PixelSizeY;
m_Color = m_ApnSensorInfo->m_Color;
// m_ReportedGainTwelveBit = m_ApnSensorInfo->m_ReportedGainTwelveBit;
m_ReportedGainSixteenBit= m_ApnSensorInfo->m_ReportedGainSixteenBit;
m_MinSuggestedExpTime = m_ApnSensorInfo->m_MinSuggestedExpTime;
// m_TempRegRate =m_ApnSensorInfo->m_TempRegRate;
m_TempRampRateOne =m_ApnSensorInfo->m_TempRampRateOne;
m_TempRampRateTwo =m_ApnSensorInfo->m_TempRampRateTwo;
m_DefaultGainTwelveBit =m_ApnSensorInfo->m_DefaultGainTwelveBit;
m_DefaultOffsetTwelveBit= m_ApnSensorInfo->m_DefaultOffsetTwelveBit;
m_DefaultRVoltage =m_ApnSensorInfo->m_DefaultRVoltage;
return true;
}
#if 0
bool CApnCamera::BufferImage(char *bufferName )
{
unsigned short *pImageData;
bool status;
short cols,rows,hbin,vbin;
unsigned short xSize, ySize;
unsigned long count;
cols = m_pvtExposurePixelsH;
rows = m_pvtExposurePixelsV;
/* ALTA code has already applied binning calculations*/
hbin = 1;
vbin = 1;
pImageData = (unsigned short *)CCD_locate_buffer(bufferName, 2 , cols, rows, hbin, vbin );
if (pImageData == NULL) {
return 0;
}
status = GetImageData(pImageData, xSize, ySize, count);
return status;
}
bool CApnCamera::BufferDriftScan(char *bufferName, int delay, int rowCount, int nblock , int npipe)
{
unsigned short *pImageData, *ptr;
bool status;
int irow;
short cols,rows,hbin,vbin;
cols = m_pvtExposurePixelsH;
rows = rowCount;
hbin = m_RoiBinningH;
vbin = 1;
return 1;
}
#endif