TwiceAsNice  2019-02-18
Macros | Functions | Variables
fishcamp.c File Reference
#include "fishcamp.h"
#include <errno.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdarg.h>
#include <unistd.h>
#include <stdbool.h>
#include <libusb-1.0/libusb.h>
Include dependency graph for fishcamp.c:

Macros

#define MAXRBUF   512
 

Functions

int SendUSB (int camNum, unsigned char *data, int length)
 
int RcvUSB (int camNum, unsigned char *data, int maxBytes)
 
bool haveStarfishLogFile ()
 
void creatStarfishLogFile ()
 
void check4tooLongLogFile ()
 
void fc_timestamp (FILE *out)
 
void Starfish_Log (char *logString)
 
bool sawThisCameraAlready (UInt16 vendor, UInt16 rawProduct, UInt16 finalProduct, UInt16 release)
 
int getCameraDBIndex (UInt16 vendor, UInt16 rawProduct, UInt16 finalProduct, UInt16 release)
 
int getNextFreeDBIndex (void)
 
void printOutDiscoveredCamerasDB (void)
 
void AnchorWrite (struct libusb_device_handle *dev_handle, UInt16 anchorAddress, UInt16 count, UInt8 writeBuffer[])
 
FILE * openFile (UInt16 vendor, UInt16 product)
 
int hexRead (INTEL_HEX_RECORD *record, FILE *hexFile, UInt16 vendor, UInt16 product)
 
int DownloadToAnchorDevice (struct libusb_device_handle *dev, UInt16 vendor, UInt16 product)
 
int GetLatestSrecFileRevNumber (void)
 
FILE * openSrecFile (UInt16 vendor, UInt16 rawProduct)
 
char * srecRead (UInt8 *record, FILE *srecFile)
 
void DownloadtToMicroBlaze (int camNum)
 
UInt16 fcUsb_GetUsbCmdCksum (UInt16 *cmdParams)
 
float fcImage_calcFullFrameAllColAvg (UInt16 *frameBufferPtr, int imageWidth, int imageHeight)
 
float fcImage_calcFullFrameRowAvgForRow (UInt16 *frameBufferPtr, int imageWidth, int imageHeight, int theRow)
 
void fcImage_doFullFrameRowLevelNormalization (UInt16 *frameBufferPtr, int imageWidth, int imageHeight)
 
void fcImage_StripBlackCols (int camNum, UInt16 *frameBuffer)
 
void fcImage_IBIS_clearBlackRowAverage (void)
 
void fcImage_IBIS_accumulateBlackRowAverage (void)
 
void fcImage_IBIS_divideBlackRowAverage (void)
 
float fcImage_IBIS_calcFirstBlackRowAverage (UInt16 *frameBufferPtr, int imageWidth, int imageHeight)
 
void fcImage_IBIS_subtractPedestal (UInt16 *frameBufferPtr, int imageWidth, int imageHeight)
 
void fcImage_IBIS_computeAvgColOffsets (int camNum)
 
void fcImage_IBIS_doFullFrameColLevelNormalization (UInt16 *frameBufferPtr, int imageWidth, int imageHeight)
 
void fcImage_PRO_calcColOffsets (UInt16 *frameBufferPtr, int imageWidth, int imageHeight)
 
void fcImage_PRO_doFullFrameColLevelNormalization (UInt16 *frameBufferPtr, int imageWidth, int imageHeight)
 
void fcImage_PRO_calibrateProCamera (int camNum, UInt16 *frameBufferPtr, int imageWidth, int imageHeight)
 
void fcImage_do_3x3_kernel (UInt16 imageHeight, UInt16 imageWidth, UInt16 *frameBuffer)
 
void fcImage_do_5x5_kernel (UInt16 imageHeight, UInt16 imageWidth, UInt16 *frameBuffer)
 
void fcImage_do_hotPixel_kernel (UInt16 imageHeight, UInt16 imageWidth, UInt16 *frameBuffer)
 
void fcUsb_init (void)
 
void fcUsb_setLogging (bool loggingState)
 
void fcUsb_setSimulation (bool simState)
 
void fcUsb_close (void)
 
int fcUsb_FindCameras (void)
 
int fcUsb_GetFindCamsState (void)
 
float fcUsb_GetFindCamsPercentComplete (void)
 
int fcUsb_OpenCamera (int camNum)
 
int fcUsb_CloseCamera (int camNum)
 
int fcUsb_GetNumCameras (void)
 
bool fcUsb_haveCamera (void)
 
int fcUsb_GetCameraSerialNum (int camNum)
 
int fcUsb_GetCameraVendorID (int camNum)
 
int fcUsb_GetCameraProductID (int camNum)
 
int fcUsb_cmd_nop (int camNum)
 
int fcUsb_cmd_rst (int camNum)
 
int fcUsb_cmd_getinfo (int camNum, fc_camInfo *camInfo)
 
int fcUsb_cmd_setRegister (int camNum, UInt16 regAddress, UInt16 dataValue)
 
UInt16 fcUsb_cmd_getRegister (int camNum, UInt16 regAddress)
 
int fcUsb_cmd_setIntegrationTime (int camNum, UInt32 theTime)
 
int fcUsb_cmd_setGuiderIntegrationTime (int camNum, UInt32 theTime)
 
int fcUsb_cmd_startExposure (int camNum)
 
int fcUsb_cmd_startGuiderExposure (int camNum)
 
int fcUsb_cmd_abortExposure (int camNum)
 
int fcUsb_cmd_abortGuiderExposure (int camNum)
 
UInt16 fcUsb_cmd_getState (int camNum)
 
UInt16 fcUsb_cmd_getGuiderState (int camNum)
 
int fcUsb_cmd_setFrameGrabberTestPattern (int camNum, UInt16 state)
 
int fcUsb_cmd_rdScanLine (int camNum, UInt16 lineNum, UInt16 Xmin, UInt16 Xmax, UInt16 *lineBuffer)
 
int fcUsb_cmd_setRoi (int camNum, UInt16 left, UInt16 top, UInt16 right, UInt16 bottom)
 
int fcUsb_cmd_setBin (int camNum, UInt16 binMode)
 
int fcUsb_cmd_setRelay (int camNum, int whichRelay)
 
int fcUsb_cmd_clearRelay (int camNum, int whichRelay)
 
int fcUsb_cmd_pulseRelay (int camNum, int whichRelay, int onMs, int offMs, bool repeats)
 
int fcUsb_cmd_setTemperature (int camNum, SInt16 theTemp)
 
SInt16 fcUsb_cmd_getTemperature (int camNum)
 
UInt16 fcUsb_cmd_getTECPowerLevel (int camNum)
 
bool fcUsb_cmd_getTECInPowerOK (int camNum)
 
int fcUsb_cmd_turnOffCooler (int camNum)
 
int fcUsb_cmd_getRawFrame (int camNum, UInt16 numRows, UInt16 numCols, UInt16 *frameBuffer)
 
int fcUsb_cmd_setCameraGain (int camNum, UInt16 theGain)
 
int fcUsb_cmd_setCameraOffset (int camNum, UInt16 theOffset)
 
int fcUsb_cmd_setReadMode (int camNum, int DataXfrReadMode, int DataFormat)
 
void fcUsb_setStarfishDefaultRegs (int camNum)
 
void fcUsb_cmd_setImageFilter (int camNum, int theImageFilter)
 
UInt16 fcUsb_cmd_getBlackPedestal (int camNum)
 
void fcUsb_cmd_setCameraProperty (int camNum, int propertyType, int propertyValue)
 

Variables

struct libusb_context * gCtx
 
fc_Camera_Information gCamerasFound [kNumCamsSupported]
 
bool gFWInitialized
 
char gBuffer [513]
 
UInt16 gRelease
 
int gNumCamerasDiscovered
 
bool gReadBlack [kNumCamsSupported]
 
int gDataXfrReadMode [kNumCamsSupported]
 
int gDataFormat [kNumCamsSupported]
 
fcFindCamState gFindCamState
 
float gFindCamPercentComplete
 
UInt32 gCurrentIntegrationTime [kNumCamsSupported]
 
UInt32 gCurrentGuiderIntegrationTime [kNumCamsSupported]
 
UInt16gFrameBuffer
 
UInt16 gRoi_left [kNumCamsSupported]
 
UInt16 gRoi_top [kNumCamsSupported]
 
UInt16 gRoi_right [kNumCamsSupported]
 
UInt16 gRoi_bottom [kNumCamsSupported]
 
SInt32 gBlackOffsets [1280]
 
SInt32 gProBlackColOffsets [4096]
 
SInt32 gProBlackRowOffsets [4096]
 
bool gProWantColNormalization
 
bool gDoLogging
 
bool gDoSimulation
 
int gCameraImageFilter [kNumCamsSupported]
 
UInt16 gBlackPedestal [kNumCamsSupported]
 
char driverSupportPath [MAXRBUF]
 

Macro Definition Documentation

◆ MAXRBUF

#define MAXRBUF   512

Function Documentation

◆ AnchorWrite()

void AnchorWrite ( struct libusb_device_handle dev_handle,
UInt16  anchorAddress,
UInt16  count,
UInt8  writeBuffer[] 
)

◆ check4tooLongLogFile()

void check4tooLongLogFile ( )

◆ creatStarfishLogFile()

void creatStarfishLogFile ( )

◆ DownloadToAnchorDevice()

int DownloadToAnchorDevice ( struct libusb_device_handle dev,
UInt16  vendor,
UInt16  product 
)

◆ DownloadtToMicroBlaze()

void DownloadtToMicroBlaze ( int  camNum)

◆ fc_timestamp()

void fc_timestamp ( FILE *  out)

◆ fcImage_calcFullFrameAllColAvg()

float fcImage_calcFullFrameAllColAvg ( UInt16 frameBufferPtr,
int  imageWidth,
int  imageHeight 
)

◆ fcImage_calcFullFrameRowAvgForRow()

float fcImage_calcFullFrameRowAvgForRow ( UInt16 frameBufferPtr,
int  imageWidth,
int  imageHeight,
int  theRow 
)

◆ fcImage_do_3x3_kernel()

void fcImage_do_3x3_kernel ( UInt16  imageHeight,
UInt16  imageWidth,
UInt16 frameBuffer 
)

◆ fcImage_do_5x5_kernel()

void fcImage_do_5x5_kernel ( UInt16  imageHeight,
UInt16  imageWidth,
UInt16 frameBuffer 
)

◆ fcImage_do_hotPixel_kernel()

void fcImage_do_hotPixel_kernel ( UInt16  imageHeight,
UInt16  imageWidth,
UInt16 frameBuffer 
)

◆ fcImage_doFullFrameRowLevelNormalization()

void fcImage_doFullFrameRowLevelNormalization ( UInt16 frameBufferPtr,
int  imageWidth,
int  imageHeight 
)

◆ fcImage_IBIS_accumulateBlackRowAverage()

void fcImage_IBIS_accumulateBlackRowAverage ( void  )

◆ fcImage_IBIS_calcFirstBlackRowAverage()

float fcImage_IBIS_calcFirstBlackRowAverage ( UInt16 frameBufferPtr,
int  imageWidth,
int  imageHeight 
)

◆ fcImage_IBIS_clearBlackRowAverage()

void fcImage_IBIS_clearBlackRowAverage ( void  )

◆ fcImage_IBIS_computeAvgColOffsets()

void fcImage_IBIS_computeAvgColOffsets ( int  camNum)

◆ fcImage_IBIS_divideBlackRowAverage()

void fcImage_IBIS_divideBlackRowAverage ( void  )

◆ fcImage_IBIS_doFullFrameColLevelNormalization()

void fcImage_IBIS_doFullFrameColLevelNormalization ( UInt16 frameBufferPtr,
int  imageWidth,
int  imageHeight 
)

◆ fcImage_IBIS_subtractPedestal()

void fcImage_IBIS_subtractPedestal ( UInt16 frameBufferPtr,
int  imageWidth,
int  imageHeight 
)

◆ fcImage_PRO_calcColOffsets()

void fcImage_PRO_calcColOffsets ( UInt16 frameBufferPtr,
int  imageWidth,
int  imageHeight 
)

◆ fcImage_PRO_calibrateProCamera()

void fcImage_PRO_calibrateProCamera ( int  camNum,
UInt16 frameBufferPtr,
int  imageWidth,
int  imageHeight 
)

◆ fcImage_PRO_doFullFrameColLevelNormalization()

void fcImage_PRO_doFullFrameColLevelNormalization ( UInt16 frameBufferPtr,
int  imageWidth,
int  imageHeight 
)

◆ fcImage_StripBlackCols()

void fcImage_StripBlackCols ( int  camNum,
UInt16 frameBuffer 
)

◆ fcUsb_close()

void fcUsb_close ( void  )

◆ fcUsb_CloseCamera()

int fcUsb_CloseCamera ( int  camNum)

◆ fcUsb_cmd_abortExposure()

int fcUsb_cmd_abortExposure ( int  camNum)

◆ fcUsb_cmd_abortGuiderExposure()

int fcUsb_cmd_abortGuiderExposure ( int  camNum)

◆ fcUsb_cmd_clearRelay()

int fcUsb_cmd_clearRelay ( int  camNum,
int  whichRelay 
)

◆ fcUsb_cmd_getBlackPedestal()

UInt16 fcUsb_cmd_getBlackPedestal ( int  camNum)

◆ fcUsb_cmd_getGuiderState()

UInt16 fcUsb_cmd_getGuiderState ( int  camNum)

◆ fcUsb_cmd_getinfo()

int fcUsb_cmd_getinfo ( int  camNum,
fc_camInfo camInfo 
)

◆ fcUsb_cmd_getRawFrame()

int fcUsb_cmd_getRawFrame ( int  camNum,
UInt16  numRows,
UInt16  numCols,
UInt16 frameBuffer 
)

◆ fcUsb_cmd_getRegister()

UInt16 fcUsb_cmd_getRegister ( int  camNum,
UInt16  regAddress 
)

◆ fcUsb_cmd_getState()

UInt16 fcUsb_cmd_getState ( int  camNum)

◆ fcUsb_cmd_getTECInPowerOK()

bool fcUsb_cmd_getTECInPowerOK ( int  camNum)

◆ fcUsb_cmd_getTECPowerLevel()

UInt16 fcUsb_cmd_getTECPowerLevel ( int  camNum)

◆ fcUsb_cmd_getTemperature()

SInt16 fcUsb_cmd_getTemperature ( int  camNum)

◆ fcUsb_cmd_nop()

int fcUsb_cmd_nop ( int  camNum)

◆ fcUsb_cmd_pulseRelay()

int fcUsb_cmd_pulseRelay ( int  camNum,
int  whichRelay,
int  onMs,
int  offMs,
bool  repeats 
)

◆ fcUsb_cmd_rdScanLine()

int fcUsb_cmd_rdScanLine ( int  camNum,
UInt16  lineNum,
UInt16  Xmin,
UInt16  Xmax,
UInt16 lineBuffer 
)

◆ fcUsb_cmd_rst()

int fcUsb_cmd_rst ( int  camNum)

◆ fcUsb_cmd_setBin()

int fcUsb_cmd_setBin ( int  camNum,
UInt16  binMode 
)

◆ fcUsb_cmd_setCameraGain()

int fcUsb_cmd_setCameraGain ( int  camNum,
UInt16  theGain 
)

◆ fcUsb_cmd_setCameraOffset()

int fcUsb_cmd_setCameraOffset ( int  camNum,
UInt16  theOffset 
)

◆ fcUsb_cmd_setCameraProperty()

void fcUsb_cmd_setCameraProperty ( int  camNum,
int  propertyType,
int  propertyValue 
)

◆ fcUsb_cmd_setFrameGrabberTestPattern()

int fcUsb_cmd_setFrameGrabberTestPattern ( int  camNum,
UInt16  state 
)

◆ fcUsb_cmd_setGuiderIntegrationTime()

int fcUsb_cmd_setGuiderIntegrationTime ( int  camNum,
UInt32  theTime 
)

◆ fcUsb_cmd_setImageFilter()

void fcUsb_cmd_setImageFilter ( int  camNum,
int  theImageFilter 
)

◆ fcUsb_cmd_setIntegrationTime()

int fcUsb_cmd_setIntegrationTime ( int  camNum,
UInt32  theTime 
)


special handling for the starfish guide camera if (gCamerasFound[camNum - 1].camFinalProduct == starfish_mono_rev2_final_deviceID) { tell the camera the new setting of the read black cols mode bit. We will read the black cols anytime the integration time is less than 2 seconds. fcUsb_cmd_setReadMode(camNum, gDataXfrReadMode[camNum - 1], gDataFormat[camNum - 1]); resend the ROI params. the fcUsb_cmd_setReadMode routine will have set the gReadBlack variable so the next routine will trick the camera into using a wider ROI. fcUsb_cmd_setRoi(camNum, gRoi_left[camNum - 1], gRoi_top[camNum - 1], gRoi_right[camNum - 1], gRoi_bottom[camNum - 1]); }

◆ fcUsb_cmd_setReadMode()

int fcUsb_cmd_setReadMode ( int  camNum,
int  DataXfrReadMode,
int  DataFormat 
)

◆ fcUsb_cmd_setRegister()

int fcUsb_cmd_setRegister ( int  camNum,
UInt16  regAddress,
UInt16  dataValue 
)

◆ fcUsb_cmd_setRelay()

int fcUsb_cmd_setRelay ( int  camNum,
int  whichRelay 
)

◆ fcUsb_cmd_setRoi()

int fcUsb_cmd_setRoi ( int  camNum,
UInt16  left,
UInt16  top,
UInt16  right,
UInt16  bottom 
)

◆ fcUsb_cmd_setTemperature()

int fcUsb_cmd_setTemperature ( int  camNum,
SInt16  theTemp 
)

◆ fcUsb_cmd_startExposure()

int fcUsb_cmd_startExposure ( int  camNum)

◆ fcUsb_cmd_startGuiderExposure()

int fcUsb_cmd_startGuiderExposure ( int  camNum)

◆ fcUsb_cmd_turnOffCooler()

int fcUsb_cmd_turnOffCooler ( int  camNum)

◆ fcUsb_FindCameras()

int fcUsb_FindCameras ( void  )

◆ fcUsb_GetCameraProductID()

int fcUsb_GetCameraProductID ( int  camNum)

◆ fcUsb_GetCameraSerialNum()

int fcUsb_GetCameraSerialNum ( int  camNum)

◆ fcUsb_GetCameraVendorID()

int fcUsb_GetCameraVendorID ( int  camNum)

◆ fcUsb_GetFindCamsPercentComplete()

float fcUsb_GetFindCamsPercentComplete ( void  )

◆ fcUsb_GetFindCamsState()

int fcUsb_GetFindCamsState ( void  )

◆ fcUsb_GetNumCameras()

int fcUsb_GetNumCameras ( void  )

◆ fcUsb_GetUsbCmdCksum()

UInt16 fcUsb_GetUsbCmdCksum ( UInt16 cmdParams)

◆ fcUsb_haveCamera()

bool fcUsb_haveCamera ( void  )

◆ fcUsb_init()

void fcUsb_init ( void  )

◆ fcUsb_OpenCamera()

int fcUsb_OpenCamera ( int  camNum)

◆ fcUsb_setLogging()

void fcUsb_setLogging ( bool  loggingState)

◆ fcUsb_setSimulation()

void fcUsb_setSimulation ( bool  simState)

◆ fcUsb_setStarfishDefaultRegs()

void fcUsb_setStarfishDefaultRegs ( int  camNum)

◆ getCameraDBIndex()

int getCameraDBIndex ( UInt16  vendor,
UInt16  rawProduct,
UInt16  finalProduct,
UInt16  release 
)

◆ GetLatestSrecFileRevNumber()

int GetLatestSrecFileRevNumber ( void  )

◆ getNextFreeDBIndex()

int getNextFreeDBIndex ( void  )

◆ haveStarfishLogFile()

bool haveStarfishLogFile ( )

◆ hexRead()

int hexRead ( INTEL_HEX_RECORD record,
FILE *  hexFile,
UInt16  vendor,
UInt16  product 
)

◆ openFile()

FILE* openFile ( UInt16  vendor,
UInt16  product 
)

◆ openSrecFile()

FILE* openSrecFile ( UInt16  vendor,
UInt16  rawProduct 
)

◆ printOutDiscoveredCamerasDB()

void printOutDiscoveredCamerasDB ( void  )

◆ RcvUSB()

int RcvUSB ( int  camNum,
unsigned char *  data,
int  maxBytes 
)

◆ sawThisCameraAlready()

bool sawThisCameraAlready ( UInt16  vendor,
UInt16  rawProduct,
UInt16  finalProduct,
UInt16  release 
)

◆ SendUSB()

int SendUSB ( int  camNum,
unsigned char *  data,
int  length 
)

◆ srecRead()

char* srecRead ( UInt8 record,
FILE *  srecFile 
)

◆ Starfish_Log()

void Starfish_Log ( char *  logString)

Variable Documentation

◆ driverSupportPath

char driverSupportPath[MAXRBUF]

◆ gBlackOffsets

SInt32 gBlackOffsets[1280]

◆ gBlackPedestal

UInt16 gBlackPedestal[kNumCamsSupported]

◆ gBuffer

char gBuffer[513]

◆ gCameraImageFilter

int gCameraImageFilter[kNumCamsSupported]

◆ gCamerasFound

◆ gCtx

struct libusb_context* gCtx

◆ gCurrentGuiderIntegrationTime

UInt32 gCurrentGuiderIntegrationTime[kNumCamsSupported]

◆ gCurrentIntegrationTime

UInt32 gCurrentIntegrationTime[kNumCamsSupported]

◆ gDataFormat

int gDataFormat[kNumCamsSupported]

◆ gDataXfrReadMode

int gDataXfrReadMode[kNumCamsSupported]

◆ gDoLogging

bool gDoLogging

◆ gDoSimulation

bool gDoSimulation

◆ gFindCamPercentComplete

float gFindCamPercentComplete

◆ gFindCamState

fcFindCamState gFindCamState

◆ gFrameBuffer

UInt16* gFrameBuffer

◆ gFWInitialized

bool gFWInitialized

◆ gNumCamerasDiscovered

int gNumCamerasDiscovered

◆ gProBlackColOffsets

SInt32 gProBlackColOffsets[4096]

◆ gProBlackRowOffsets

SInt32 gProBlackRowOffsets[4096]

◆ gProWantColNormalization

bool gProWantColNormalization

◆ gReadBlack

bool gReadBlack[kNumCamsSupported]

◆ gRelease

UInt16 gRelease

◆ gRoi_bottom

UInt16 gRoi_bottom[kNumCamsSupported]

◆ gRoi_left

◆ gRoi_right

◆ gRoi_top