diff options
-rw-r--r-- | include/qhy/config.h | 49 | ||||
-rw-r--r-- | include/qhy/qhyccd.h | 851 | ||||
-rw-r--r-- | include/qhy/qhyccdcamdef.h | 901 | ||||
-rw-r--r-- | include/qhy/qhyccderr.h | 40 | ||||
-rw-r--r-- | include/qhy/qhyccdstruct.h | 372 | ||||
-rw-r--r-- | lib/x64/libqhyccd.a | bin | 11608740 -> 8780588 bytes |
6 files changed, 1933 insertions, 280 deletions
diff --git a/include/qhy/config.h b/include/qhy/config.h new file mode 100644 index 0000000..6f3a5bb --- /dev/null +++ b/include/qhy/config.h @@ -0,0 +1,49 @@ +#ifndef __CONFIG_H__ +#define __CONFIG_H__ + + + + + + +#define CALLBACK_MODE_SUPPORT 1 +#define IMAGEQUEUE_ORIG_MODE 1 + + +#define version_year 20 +#define version_month 7 +#define version_day 26 +#define version_subday 1 + +#if defined (_WIN32) +#define QHYCCD_OPENCV_SUPPORT +#define WINDOWS_PTHREAD_SUPPORT 1 +#define WINPCAP_MODE_SUPPORT 0 +#define PCIE_MODE_SUPPORT 1 +#define CYUSB_MODE_SUPPORT 1 +#define WINUSB_MODE_SUPPORT 1 +#define LIBUSB_MODE_SUPPORT 0 +#define PCIE_MODE_TEST 1 +#else +#undef QHYCCD_OPENCV_SUPPORT +#define WINDOWS_PTHREAD_SUPPORT 0 +#define WINPCAP_MODE_SUPPORT 0 + +#if defined(__arm__) || defined (__arm64__) || defined (__aarch64__) || defined(__APPLE__)||defined (__ANDROID__) +#define PCIE_MODE_SUPPORT 0 +#elif defined(__i386__) || defined(__x86_64__) +#define PCIE_MODE_SUPPORT 1 +#else +#define PCIE_MODE_SUPPORT 0 +#endif + + +#define CYUSB_MODE_SUPPORT 0 +#define WINUSB_MODE_SUPPORT 0 +#define LIBUSB_MODE_SUPPORT 1 +#endif + + + +#endif + diff --git a/include/qhy/qhyccd.h b/include/qhy/qhyccd.h index 8f709e1..c14044b 100644 --- a/include/qhy/qhyccd.h +++ b/include/qhy/qhyccd.h @@ -1,139 +1,868 @@ -/*
- QHYCCD SDK
-
- Copyright (c) 2014 QHYCCD.
- All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along with
- this program; if not, write to the Free Software Foundation, Inc., 59
- Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- The full GNU General Public License is included in this distribution in the
- file called LICENSE.
- */
-#ifndef _QHYCCD_H_
-#define _QHYCCD_H_
-#include "qhycam.h"
#include "qhyccderr.h"
#include "qhyccdcamdef.h"
#include "qhyccdstruct.h"
#include "stdint.h"
-#include "qhydevice.h"
+#include "config.h"
+#include <functional>
+
+
+
-#ifdef WIN32
+
+#if defined (_WIN32)
#include "cyapi.h"
-typedef CCyUSBDevice qhyccd_handle;
-#else // Linux & Mac
-typedef struct libusb_device_handle qhyccd_handle;
-uint32_t DeviceIsQHYCCD(uint32_t index, qhyccd_device *pDevice);
-EXPORTC void STDCALL MutexInit();
-EXPORTC void STDCALL MutexDestroy();
-EXPORTC void STDCALL MutexLock();
-EXPORTC void STDCALL MutexUnlock();
-EXPORTC int STDCALL MutexTrylock();
-#endif // WIN32
-
-class QHYBASE;
-class QhyDevice;
-
-uint32_t DeviceIsQHYCCD(uint32_t index, uint32_t vid, uint32_t pid);
-uint32_t QHYCCDSeriesMatch(uint32_t index, qhyccd_handle *pHandle);
-uint32_t GetIdFromCam(qhyccd_handle *pHandle, char *id);
-
-EXPORTC QhyDevice* STDCALL GetCyDevBasedOnInstance(QHYBASE *pCam);
-EXPORTC QhyDevice* STDCALL GetCyDevBasedOnHandle(qhyccd_handle *pHandle);
-EXPORTC int GetCyDevIdxBasedOnInstance(QHYBASE *pCam);
-EXPORTC int GetCyDevIdxBasedOnHandle(qhyccd_handle *pHandle);
-EXPORTC uint32_t STDCALL GetReceivedRawDataLen(QHYBASE *pCam);
-EXPORTC bool STDCALL SetReceivedRawDataLen(QHYBASE *pCam, uint32_t value);
-EXPORTC bool STDCALL CleanUnlockImageQueue(QHYBASE *pCam);
-//EXPORTC bool STDCALL SetUnlockImageQueue(QHYBASE *pCam);
-EXPORTC uint32_t STDCALL InitQHYCCDClass(uint32_t camtype, uint32_t index);
+#endif
+
+#ifndef __QHYCCD_H__
+#define __QHYCCD_H__
+
+typedef void qhyccd_handle;
+
+
+EXPORTFUNC void STDCALL SetQHYCCDAutoDetectCamera(bool enable);
+
+EXPORTC void STDCALL SetQHYCCDLogLevel(uint8_t logLevel);
+
+#if defined(__linux__ )&&!defined (__ANDROID__)
+
+EXPORTC void STDCALL SetQHYCCDLogFunction(std::function<void(const std::string &message)> logFunction);
+EXPORTC void STDCALL SetQHYCCDBufferNumber(uint32_t BufNumber);
+
+#endif
+
+EXPORTC void STDCALL EnableQHYCCDMessage(bool enable);
+EXPORTC void STDCALL EnableQHYCCDLogFile(bool enable);
+
+EXPORTC uint32_t STDCALL SetQHYCCDSingleFrameTimeOut(qhyccd_handle *h,uint32_t time);
+
+
+EXPORTC const char* STDCALL GetTimeStamp();
+
+/** \fn uint32_t InitQHYCCDResource()
+ \brief initialize QHYCCD SDK resource
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ QHYCCD_ERROR_INITRESOURCE if the initialize failed \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL InitQHYCCDResource(void);
+
+/** \fn uint32_t ReleaseQHYCCDResource()
+ \brief release QHYCCD SDK resource
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ QHYCCD_ERROR_RELEASERESOURCE if the release failed \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL ReleaseQHYCCDResource(void);
+
+/** \fn uint32_t ScanQHYCCD()
+ \brief scan the connected cameras
+ \return
+ on success,return the number of connected cameras \n
+ QHYCCD_ERROR_NO_DEVICE,if no camera connect to computer
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL ScanQHYCCD(void);
-EXPORTC uint32_t STDCALL GetQHYCCDId(int index, char *id);
+
+/** \fn uint32_t GetQHYCCDId(uint32_t index,char *id)
+ \brief get the id from camera
+ \param index sequence number of the connected cameras
+ \param id the id for camera,each camera has only id
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
+EXPORTC uint32_t STDCALL GetQHYCCDId(uint32_t index,char *id);
+
+/** \fn uint32_t GetQHYCCDModel(char *id, char *model)
+ \brief get camera model name by id
+ \param id the id of the camera
+ \param model the camera model
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code in failure
+ */
EXPORTC uint32_t STDCALL GetQHYCCDModel(char *id, char *model);
+
+/** \fn qhyccd_handle *OpenQHYCCD(char *id)
+ \brief open camera by camera id
+ \param id the id for camera,each camera has only id
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC qhyccd_handle * STDCALL OpenQHYCCD(char *id);
+
+/** \fn uint32_t CloseQHYCCD(qhyccd_handle *handle)
+ \brief close camera by handle
+ \param handle camera handle
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL CloseQHYCCD(qhyccd_handle *handle);
+
+/**
+ @fn uint32_t SetQHYCCDStreamMode(qhyccd_handle *handle,uint8_t mode)
+ @brief Set the camera's mode to chose the way reading data from camera
+ @param handle camera control handle
+ @param mode the stream mode \n
+ 0x00:default mode,single frame mode \n
+ 0x01:live mode \n
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL SetQHYCCDStreamMode(qhyccd_handle *handle,uint8_t mode);
+
+/** \fn uint32_t InitQHYCCD(qhyccd_handle *handle)
+ \brief initialization specified camera by camera handle
+ \param handle camera control handle
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ on failed,return QHYCCD_ERROR_INITCAMERA \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL InitQHYCCD(qhyccd_handle *handle);
+
+/** @fn uint32_t IsQHYCCDControlAvailable(qhyccd_handle *handle,CONTROL_ID controlId)
+ @brief check the camera has the queried function or not
+ @param handle camera control handle
+ @param controlId function type
+ @return
+ on have,return QHYCCD_SUCCESS \n
+ on do not have,return QHYCCD_ERROR_NOTSUPPORT \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL IsQHYCCDControlAvailable(qhyccd_handle *handle,CONTROL_ID controlId);
+
+/** \fn uint32_t SetQHYCCDParam(qhyccd_handle *handle,CONTROL_ID controlId,double value)
+ \brief set params to camera
+ \param handle camera control handle
+ \param controlId function type
+ \param value value to camera
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ QHYCCD_ERROR_NOTSUPPORT,if the camera do not have the function \n
+ QHYCCD_ERROR_SETPARAMS,if set params to camera failed \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL SetQHYCCDParam(qhyccd_handle *handle,CONTROL_ID controlId, double value);
+
+/** \fn double GetQHYCCDParam(qhyccd_handle *handle,CONTROL_ID controlId)
+ \brief get the params value from camera
+ \param handle camera control handle
+ \param controlId function type
+ \return
+ on success,return the value\n
+ QHYCCD_ERROR_NOTSUPPORT,if the camera do not have the function \n
+ QHYCCD_ERROR_GETPARAMS,if get camera params'value failed \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC double STDCALL GetQHYCCDParam(qhyccd_handle *handle,CONTROL_ID controlId);
+
+/** \fn uint32_t GetQHYCCDParamMinMaxStep(qhyccd_handle *handle,CONTROL_ID controlId,double *min,double *max,double *step)
+ \brief get the params value from camera
+ \param handle camera control handle
+ \param controlId function type
+ \param *min the pointer to the function's min value
+ \param *max the pointer to the function's max value
+ \param *step the pointer to the function's single step value
+ \return
+ on success,return QHYCCD_SUCCESS\n
+ QHYCCD_ERROR_NOTSUPPORT,if the camera do not have the function \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL GetQHYCCDParamMinMaxStep(qhyccd_handle *handle,CONTROL_ID controlId,double *min,double *max,double *step);
+
+/** @fn uint32_t SetQHYCCDResolution(qhyccd_handle *handle,uint32_t x,uint32_t y,uint32_t xsize,uint32_t ysize)
+ @brief set camera ouput resolution
+ @param handle camera control handle
+ @param x the top left position x
+ @param y the top left position y
+ @param xsize the image width
+ @param ysize the image height
+ @return
+ on success,return QHYCCD_SUCCESS\n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL SetQHYCCDResolution(qhyccd_handle *handle,uint32_t x,uint32_t y,uint32_t xsize,uint32_t ysize);
+
+/** \fn uint32_t GetQHYCCDMemLength(qhyccd_handle *handle)
+ \brief get the minimum memory space for image data to save(byte)
+ \param handle camera control handle
+ \return
+ on success,return the total memory space for image data(byte) \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL GetQHYCCDMemLength(qhyccd_handle *handle);
+
+/** \fn uint32_t ExpQHYCCDSingleFrame(qhyccd_handle *handle)
+ \brief start to expose one frame
+ \param handle camera control handle
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ QHYCCD_ERROR_EXPOSING,if the camera is exposing \n
+ QHYCCD_ERROR_EXPFAILED,if start failed \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL ExpQHYCCDSingleFrame(qhyccd_handle *handle);
+
+/**
+ @fn uint32_t GetQHYCCDSingleFrame(qhyccd_handle *handle,uint32_t *w,uint32_t *h,uint32_t *bpp,uint32_t *channels,uint8_t *imgdata)
+ @brief get live frame data from camera
+ @param handle camera control handle
+ @param *w pointer to width of ouput image
+ @param *h pointer to height of ouput image
+ @param *bpp pointer to depth of ouput image
+ @param *channels pointer to channels of ouput image
+ @param *imgdata image data buffer
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ QHYCCD_ERROR_GETTINGFAILED,if get data failed \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL GetQHYCCDSingleFrame(qhyccd_handle *handle,uint32_t *w,uint32_t *h,uint32_t *bpp,uint32_t *channels,uint8_t *imgdata);
+
+/**
+ @fn uint32_t CancelQHYCCDExposing(qhyccd_handle *handle)
+ @param handle camera control handle
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL CancelQHYCCDExposing(qhyccd_handle *handle);
+
+/**
+ @fn uint32_t CancelQHYCCDExposingAndReadout(qhyccd_handle *handle)
+ @brief stop the camera exposing and readout
+ @param handle camera control handle
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL CancelQHYCCDExposingAndReadout(qhyccd_handle *handle);
+
+/** \fn uint32_t BeginQHYCCDLive(qhyccd_handle *handle)
+ \brief start continue exposing
+ \param handle camera control handle
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL BeginQHYCCDLive(qhyccd_handle *handle);
+
+/**
+ @fn uint32_t GetQHYCCDLiveFrame(qhyccd_handle *handle,uint32_t *w,uint32_t *h,uint32_t *bpp,uint32_t *channels,uint8_t *imgdata)
+ @brief get live frame data from camera
+ @param handle camera control handle
+ @param *w pointer to width of ouput image
+ @param *h pointer to height of ouput image
+ @param *bpp pointer to depth of ouput image
+ @param *channels pointer to channels of ouput image
+ @param *imgdata image data buffer
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ QHYCCD_ERROR_GETTINGFAILED,if get data failed \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL GetQHYCCDLiveFrame(qhyccd_handle *handle,uint32_t *w,uint32_t *h,uint32_t *bpp,uint32_t *channels,uint8_t *imgdata);
+
+/** \fn uint32_t StopQHYCCDLive(qhyccd_handle *handle)
+ \brief stop the camera continue exposing
+ \param handle camera control handle
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL StopQHYCCDLive(qhyccd_handle *handle);
+
+/** \
+ @fn uint32_t SetQHYCCDBinMode(qhyccd_handle *handle,uint32_t wbin,uint32_t hbin)
+ @brief set camera's bin mode for ouput image data
+ @param handle camera control handle
+ @param wbin width bin mode
+ @param hbin height bin mode
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+*/
EXPORTC uint32_t STDCALL SetQHYCCDBinMode(qhyccd_handle *handle,uint32_t wbin,uint32_t hbin);
+
+/**
+ @fn uint32_t SetQHYCCDBitsMode(qhyccd_handle *handle,uint32_t bits)
+ @brief set camera's depth bits for ouput image data
+ @param handle camera control handle
+ @param bits image depth
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL SetQHYCCDBitsMode(qhyccd_handle *handle,uint32_t bits);
+
+/** \fn uint32_t ControlQHYCCDTemp(qhyccd_handle *handle,double targettemp)
+ \brief This is a auto temprature control for QHYCCD cameras. \n
+ To control this,you need call this api every single second
+ \param handle camera control handle
+ \param targettemp the target control temprature
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL ControlQHYCCDTemp(qhyccd_handle *handle,double targettemp);
+
+/** \fn uint32_t ControlQHYCCDGuide(qhyccd_handle *handle,uint32_t direction,uint16_t duration)
+ \brief control the camera' guide port
+ \param handle camera control handle
+ \param direction direction \n
+ 0: EAST RA+ \n
+ 3: WEST RA- \n
+ 1: NORTH DEC+ \n
+ 2: SOUTH DEC- \n
+ \param duration duration of the direction
+ \return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL ControlQHYCCDGuide(qhyccd_handle *handle,uint32_t direction,uint16_t duration);
+
+/**
+ @fn uint32_t SendOrder2QHYCCDCFW(qhyccd_handle *handle,char *order,uint32_t length)
+ @brief control color filter wheel port
+ @param handle camera control handle
+ @param order order send to color filter wheel
+ @param length the order string length
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL SendOrder2QHYCCDCFW(qhyccd_handle *handle,char *order,uint32_t length);
+
+/**
+ @fn uint32_t GetQHYCCDCFWStatus(qhyccd_handle *handle,char *status)
+ @brief control color filter wheel port
+ @param handle camera control handle
+ @param status the color filter wheel position status
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL GetQHYCCDCFWStatus(qhyccd_handle *handle,char *status);
+
+/**
+ @fn uint32_t IsQHYCCDCFWPlugged(qhyccd_handle *handle)
+ @brief control color filter wheel port
+ @param handle camera control handle
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL IsQHYCCDCFWPlugged(qhyccd_handle *handle);
+
+/**
+ \fn uint32_t SetQHYCCDTrigerMode(qhyccd_handle *handle,uint32_t trigerMode)
+ \brief set camera triger mode
+ \param handle camera control handle
+ \param trigerMode triger mode
+ \return
+on success,return QHYCCD_SUCCESS \n
+another QHYCCD_ERROR code on other failures
+*/
EXPORTC uint32_t STDCALL SetQHYCCDTrigerMode(qhyccd_handle *handle,uint32_t trigerMode);
+
+/** \fn void Bits16ToBits8(qhyccd_handle *h,uint8_t *InputData16,uint8_t *OutputData8,uint32_t imageX,uint32_t imageY,uint16_t B,uint16_t W)
+ \brief turn 16bits data into 8bits
+ \param h camera control handle
+ \param InputData16 for 16bits data memory
+ \param OutputData8 for 8bits data memory
+ \param imageX image width
+ \param imageY image height
+ \param B for stretch balck
+ \param W for stretch white
+ */
EXPORTC void STDCALL Bits16ToBits8(qhyccd_handle *h,uint8_t *InputData16,uint8_t *OutputData8,uint32_t imageX,uint32_t imageY,uint16_t B,uint16_t W);
+
+/**
+ @fn void HistInfo192x130(qhyccd_handle *h,uint32_t x,uint32_t y,uint8_t *InBuf,uint8_t *OutBuf)
+ @brief make the hist info
+ @param h camera control handle
+ @param x image width
+ @param y image height
+ @param InBuf for the raw image data
+ @param OutBuf for 192x130 8bits 3 channels image
+ */
EXPORTC void STDCALL HistInfo192x130(qhyccd_handle *h,uint32_t x,uint32_t y,uint8_t *InBuf,uint8_t *OutBuf);
+
+
+/**
+ @fn uint32_t OSXInitQHYCCDFirmware(char *path)
+ @brief download the firmware to camera.(this api just need call in OSX system)
+ @param path path to HEX file
+ */
EXPORTC uint32_t STDCALL OSXInitQHYCCDFirmware(char *path);
+
+/**
+ @fn uint32_t OSXInitQHYCCDFirmware(char *path)
+ @brief download the firmware to camera.(this api just need call in OSX system)
+ @param path path to HEX file
+ */
+EXPORTC uint32_t STDCALL OSXInitQHYCCDFirmwareArray();
+
+
+
+EXPORTC uint32_t STDCALL OSXInitQHYCCDAndroidFirmwareArray(int idVendor,int idProduct,
+ qhyccd_handle *handle);
+
+
+
+/** @fn uint32_t GetQHYCCDChipInfo(qhyccd_handle *h,double *chipw,double *chiph,uint32_t *imagew,uint32_t *imageh,double *pixelw,double *pixelh,uint32_t *bpp)
+ @brief get the camera's ccd/cmos chip info
+ @param h camera control handle
+ @param chipw chip size width
+ @param chiph chip size height
+ @param imagew chip output image width
+ @param imageh chip output image height
+ @param pixelw chip pixel size width
+ @param pixelh chip pixel size height
+ @param bpp chip pixel depth
+ */
EXPORTC uint32_t STDCALL GetQHYCCDChipInfo(qhyccd_handle *h,double *chipw,double *chiph,uint32_t *imagew,uint32_t *imageh,double *pixelw,double *pixelh,uint32_t *bpp);
+
+/** @fn uint32_t GetQHYCCDEffectiveArea(qhyccd_handle *h,uint32_t *startX, uint32_t *startY, uint32_t *sizeX, uint32_t *sizeY)
+ @brief get the camera's ccd/cmos chip info
+ @param h camera control handle
+ @param startX the Effective area x position
+ @param startY the Effective area y position
+ @param sizeX the Effective area x size
+ @param sizeY the Effective area y size
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL GetQHYCCDEffectiveArea(qhyccd_handle *h,uint32_t *startX, uint32_t *startY, uint32_t *sizeX, uint32_t *sizeY);
+
+/** @fn uint32_t GetQHYCCDOverScanArea(qhyccd_handle *h,uint32_t *startX, uint32_t *startY, uint32_t *sizeX, uint32_t *sizeY)
+ @brief get the camera's ccd/cmos chip info
+ @param h camera control handle
+ @param startX the OverScan area x position
+ @param startY the OverScan area y position
+ @param sizeX the OverScan area x size
+ @param sizeY the OverScan area y size
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL GetQHYCCDOverScanArea(qhyccd_handle *h,uint32_t *startX, uint32_t *startY, uint32_t *sizeX, uint32_t *sizeY);
+
+
+/** @fn uint32_t SetQHYCCDFocusSetting(qhyccd_handle *h,uint32_t focusCenterX, uint32_t focusCenterY)
+ @brief Set the camera on focus mode
+ @param h camera control handle
+ @param focusCenterX
+ @param focusCenterY
+ @return
+ on success,return QHYCCD_SUCCESS \n
+
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL SetQHYCCDFocusSetting(qhyccd_handle *h,uint32_t focusCenterX, uint32_t focusCenterY);
+
+/** @fn uint32_t GetQHYCCDExposureRemaining(qhyccd_handle *h)
+ @brief Get remaining ccd/cmos expose time
+ @param h camera control handle
+ @return
+ 100 or less 100,it means exposoure is over \n
+ another is remaining time
+ */
EXPORTC uint32_t STDCALL GetQHYCCDExposureRemaining(qhyccd_handle *h);
+
+/** @fn uint32_t GetQHYCCDFWVersion(qhyccd_handle *h,uint8_t *buf)
+ @brief Get the QHYCCD's firmware version
+ @param h camera control handle
+ @param buf buffer for version info
+ @return
+ on success,return QHYCCD_SUCCESS \n
+
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL GetQHYCCDFWVersion(qhyccd_handle *h,uint8_t *buf);
+EXPORTC uint32_t STDCALL GetQHYCCDFPGAVersion(qhyccd_handle *h, uint8_t fpga_index, uint8_t *buf);
+
+/** @fn uint32_t SetQHYCCDInterCamSerialParam(qhyccd_handle *h,uint32_t opt)
+ @brief Set InterCam serial2 params
+ @param h camera control handle
+ @param opt the param \n
+ opt: \n
+ 0x00 baud rate 9600bps 8N1 \n
+ 0x01 baud rate 4800bps 8N1 \n
+ 0x02 baud rate 19200bps 8N1 \n
+ 0x03 baud rate 28800bps 8N1 \n
+ 0x04 baud rate 57600bps 8N1
+ @return
+ on success,return QHYCCD_SUCCESS \n
+
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL SetQHYCCDInterCamSerialParam(qhyccd_handle *h,uint32_t opt);
+
+/** @fn uint32_t QHYCCDInterCamSerialTX(qhyccd_handle *h,char *buf,uint32_t length)
+ @brief Send data to InterCam serial2
+ @param h camera control handle
+ @param buf buffer for data
+ @param length to send
+ @return
+ on success,return QHYCCD_SUCCESS \n
+
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL QHYCCDInterCamSerialTX(qhyccd_handle *h,char *buf,uint32_t length);
+
+/** @fn uint32_t QHYCCDInterCamSerialRX(qhyccd_handle *h,char *buf)
+ @brief Get data from InterCam serial2
+ @param h camera control handle
+ @param buf buffer for data
+ @return
+ on success,return the data number \n
+
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL QHYCCDInterCamSerialRX(qhyccd_handle *h,char *buf);
+
+/** @fn uint32_t QHYCCDInterCamOledOnOff(qhyccd_handle *handle,uint8_t onoff)
+ @brief turn off or turn on the InterCam's Oled
+ @param handle camera control handle
+ @param onoff on or off the oled \n
+ 1:on \n
+ 0:off \n
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL QHYCCDInterCamOledOnOff(qhyccd_handle *handle,uint8_t onoff);
+
+/**
+ @fn uint32_t SetQHYCCDInterCamOledBrightness(qhyccd_handle *handle,uint8_t brightness)
+ @brief send data to show on InterCam's OLED
+ @param handle camera control handle
+ @param brightness the oled's brightness
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+*/
EXPORTC uint32_t STDCALL SetQHYCCDInterCamOledBrightness(qhyccd_handle *handle,uint8_t brightness);
+
+/**
+ @fn uint32_t SendFourLine2QHYCCDInterCamOled(qhyccd_handle *handle,char *messagetemp,char *messageinfo,char *messagetime,char *messagemode)
+ @brief spilit the message to two line,send to camera
+ @param handle camera control handle
+ @param messagetemp message for the oled's 1st line
+ @param messageinfo message for the oled's 2nd line
+ @param messagetime message for the oled's 3rd line
+ @param messagemode message for the oled's 4th line
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+*/
EXPORTC uint32_t STDCALL SendFourLine2QHYCCDInterCamOled(qhyccd_handle *handle,char *messagetemp,char *messageinfo,char *messagetime,char *messagemode);
+/**
+ @fn uint32_t SendTwoLine2QHYCCDInterCamOled(qhyccd_handle *handle,char *messageTop,char *messageBottom)
+ @brief spilit the message to two line,send to camera
+ @param handle camera control handle
+ @param messageTop message for the oled's 1st line
+ @param messageBottom message for the oled's 2nd line
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+*/
EXPORTC uint32_t STDCALL SendTwoLine2QHYCCDInterCamOled(qhyccd_handle *handle,char *messageTop,char *messageBottom);
+
+/**
+ @fn uint32_t SendOneLine2QHYCCDInterCamOled(qhyccd_handle *handle,char *messageTop)
+ @brief spilit the message to two line,send to camera
+ @param handle camera control handle
+ @param messageTop message for all the oled
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+*/
EXPORTC uint32_t STDCALL SendOneLine2QHYCCDInterCamOled(qhyccd_handle *handle,char *messageTop);
+
+/**
+ @fn uint32_t GetQHYCCDCameraStatus(qhyccd_handle *h,uint8_t *buf)
+ @brief Get the camera statu
+ @param h camera control handle
+ @param buf camera's status save space
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+ */
EXPORTC uint32_t STDCALL GetQHYCCDCameraStatus(qhyccd_handle *h,uint8_t *buf);
+
+/**
+ @fn uint32_t GetQHYCCDShutterStatus(qhyccd_handle *handle)
+ @brief get the camera's shutter status
+ @param handle camera control handle
+ @return
+ on success,return status \n
+ 0x00:shutter turn to right \n
+ 0x01:shutter from right turn to middle \n
+ 0x02:shutter from left turn to middle \n
+ 0x03:shutter turn to left \n
+ 0xff:IDLE \n
+ another QHYCCD_ERROR code on other failures
+*/
EXPORTC uint32_t STDCALL GetQHYCCDShutterStatus(qhyccd_handle *handle);
+
+/**
+ @fn uint32_t ControlQHYCCDShutter(qhyccd_handle *handle,uint8_t status)
+ @brief control camera's shutter
+ @param handle camera control handle
+ @param status the shutter status \n
+ 0x00:shutter turn to right \n
+ 0x01:shutter from right turn to middle \n
+ 0x02:shutter from left turn to middle \n
+ 0x03:shutter turn to left \n
+ 0xff:IDLE
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+*/
EXPORTC uint32_t STDCALL ControlQHYCCDShutter(qhyccd_handle *handle,uint8_t status);
+
+/**
+ @fn uint32_t GetQHYCCDHumidity(qhyccd_handle *handle,double *hd)
+ @brief query cavity's humidity
+ @param handle control handle
+ @param hd the humidity value
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+*/
+EXPORTC uint32_t STDCALL GetQHYCCDPressure(qhyccd_handle *handle,double *pressure);
+/**
+ @fn uint32_t GetQHYCCDPressure(qhyccd_handle *handle,double *pressure)
+ @get the pressure of sensor chamber
+ @param handle control handle
+ @param pressure : the sensor chamber pressure . unit is mbar range 0.0-2000.0
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+*/
+
EXPORTC uint32_t STDCALL GetQHYCCDHumidity(qhyccd_handle *handle,double *hd);
+
+
+/**
+ @fn uint32_t QHYCCDI2CTwoWrite(qhyccd_handle *handle,uint16_t addr,uint16_t value)
+ @brief Set the value of the addr register in the camera.
+ @param handle camera control handle
+ @param addr the address of register
+ @param value the value of the address
+ @return
+ on success,return QHYCCD_SUCCESS \n
+ another QHYCCD_ERROR code on other failures
+*/
EXPORTC uint32_t STDCALL QHYCCDI2CTwoWrite(qhyccd_handle *handle,uint16_t addr,uint16_t value);
+
+/**
+ @fn uint32_t QHYCCDI2CTwoRead(qhyccd_handle *handle,uint16_t addr)
+ @brief Get the value of the addr register in the camera.
+ @param handle camera control handle
+ @param addr the address of register
+ @return value of the addr register
+*/
EXPORTC uint32_t STDCALL QHYCCDI2CTwoRead(qhyccd_handle *handle,uint16_t addr);
+
+/**
+ @fn double GetQHYCCDReadingProgress(qhyccd_handle *handle)
+ @brief get reading data from camera progress
+ @param handle camera control handle
+ @return current progress
+*/
EXPORTC double STDCALL GetQHYCCDReadingProgress(qhyccd_handle *handle);
-EXPORTC void STDCALL SetQHYCCDLogLevel(uint8_t logLevel);
+
+
+/**
+ test pid parameters
+*/
EXPORTC uint32_t STDCALL TestQHYCCDPIDParas(qhyccd_handle *h, double p, double i, double d);
+
EXPORTC uint32_t STDCALL SetQHYCCDTrigerFunction(qhyccd_handle *h,bool value);
+
EXPORTC uint32_t STDCALL DownloadFX3FirmWare(uint16_t vid,uint16_t pid,char *imgpath);
+
EXPORTC uint32_t STDCALL GetQHYCCDType(qhyccd_handle *h);
+
EXPORTC uint32_t STDCALL SetQHYCCDDebayerOnOff(qhyccd_handle *h,bool onoff);
+
EXPORTC uint32_t STDCALL SetQHYCCDFineTone(qhyccd_handle *h,uint8_t setshporshd,uint8_t shdloc,uint8_t shploc,uint8_t shwidth);
+
EXPORTC uint32_t STDCALL SetQHYCCDGPSVCOXFreq(qhyccd_handle *handle,uint16_t i);
+
EXPORTC uint32_t STDCALL SetQHYCCDGPSLedCalMode(qhyccd_handle *handle,uint8_t i);
+
EXPORTC void STDCALL SetQHYCCDGPSLedCal(qhyccd_handle *handle,uint32_t pos,uint8_t width);
+
EXPORTC void STDCALL SetQHYCCDGPSPOSA(qhyccd_handle *handle,uint8_t is_slave,uint32_t pos,uint8_t width);
+
EXPORTC void STDCALL SetQHYCCDGPSPOSB(qhyccd_handle *handle,uint8_t is_slave,uint32_t pos,uint8_t width);
+
EXPORTC uint32_t STDCALL SetQHYCCDGPSMasterSlave(qhyccd_handle *handle,uint8_t i);
+
EXPORTC void STDCALL SetQHYCCDGPSSlaveModeParameter(qhyccd_handle *handle,uint32_t target_sec,uint32_t target_us,uint32_t deltaT_sec,uint32_t deltaT_us,uint32_t expTime);
+
+EXPORTFUNC void STDCALL SetQHYCCDQuit();
+
EXPORTC uint32_t STDCALL QHYCCDVendRequestWrite(qhyccd_handle *h,uint8_t req,uint16_t value,uint16_t index1,uint32_t length,uint8_t *data);
+
EXPORTC uint32_t STDCALL QHYCCDReadUSB_SYNC(qhyccd_handle *pDevHandle, uint8_t endpoint, uint32_t length, uint8_t *data, uint32_t timeout);
+
EXPORTC uint32_t STDCALL QHYCCDLibusbBulkTransfer(qhyccd_handle *pDevHandle, uint8_t endpoint, uint8_t *data, uint32_t length, int32_t *transferred, uint32_t timeout);
+
EXPORTC uint32_t STDCALL GetQHYCCDSDKVersion(uint32_t *year,uint32_t *month,uint32_t *day,uint32_t *subday);
-EXPORTC void STDCALL print_cydev(const char *pTitle);
-EXPORTC const char* STDCALL GetTimeStamp();
-EXPORTC void STDCALL GetQHYCCDControlIdString(CONTROL_ID controlId, char *pStr);
-#endif // __QHYCCD_H__
+
+
+
+
+//APIs for the Readout Mode. One camera may have more than one readout mode. The different readout mode has different base-resolution. For example
+//The QHY42PRO support HDR and STD mode. HDR mode base-resolution is 4096*2048. While the STD mode is 2048*2048. In this case we need to use the
+//readout mode to set it. The host application need to get the readout mode and select one to set it. The sequece that call this fucntion need to be(......)
+
+
+EXPORTC uint32_t STDCALL GetQHYCCDNumberOfReadModes(qhyccd_handle *h,uint32_t *numModes);
+// Get the maximum resolution for a read mode
+EXPORTC uint32_t STDCALL GetQHYCCDReadModeResolution(qhyccd_handle *h,uint32_t modeNumber, uint32_t* width, uint32_t* height);
+// Get the name of a read mode
+EXPORTC uint32_t STDCALL GetQHYCCDReadModeName(qhyccd_handle *h,uint32_t modeNumber, char* name);
+// Set the read mode
+EXPORTC uint32_t STDCALL SetQHYCCDReadMode(qhyccd_handle *h,uint32_t modeNumber);
+// Get the read mode
+EXPORTC uint32_t STDCALL GetQHYCCDReadMode(qhyccd_handle *h,uint32_t* modeNumber);
+
+EXPORTC uint32_t STDCALL GetQHYCCDBeforeOpenParam(
+ QHYCamMinMaxStepValue *p,
+ CONTROL_ID controlId);
+/*
+EXPORTC uint32_t STDCALL GetQHYCCDBeforeOpenReadMode(QHYCamReadModeInfo *p);
+*/
+EXPORTC uint32_t STDCALL EnableQHYCCDBurstMode(qhyccd_handle *h,bool i);
+EXPORTC uint32_t STDCALL SetQHYCCDBurstModeStartEnd(qhyccd_handle *h,unsigned short start,unsigned short end);
+EXPORTC uint32_t STDCALL EnableQHYCCDBurstCountFun(qhyccd_handle *h,bool i);
+EXPORTC uint32_t STDCALL ResetQHYCCDFrameCounter(qhyccd_handle *h);
+EXPORTC uint32_t STDCALL SetQHYCCDBurstIDLE(qhyccd_handle *h);
+EXPORTC uint32_t STDCALL ReleaseQHYCCDBurstIDLE(qhyccd_handle *h);
+EXPORTC uint32_t STDCALL SetQHYCCDBurstModePatchNumber(qhyccd_handle *h,uint32_t value);
+EXPORTC uint32_t STDCALL SetQHYCCDEnableLiveModeAntiRBI(qhyccd_handle *h,uint32_t value);
+EXPORTC uint32_t STDCALL SetQHYCCDWriteFPGA(qhyccd_handle *h,uint8_t number,uint8_t regindex,uint8_t regvalue);
+/**
+ @fn uint32_t SetQHYCCDWriteFPGA(qhyccd_handle *h,uint8_t number,uint8_t regindex,uint8_t regvalue);
+ @brief Write FPGA register of the camera directly for advanced control
+ @param handle camera control handle
+ @param number: if there is multiple FPGA, this is the sequence number . default is 0.
+ @param regindex: register index. It is 8bit.
+ @param regindex: register value. It is 8bit.
+ @return QHYCCD_SUCCESS or QHYCCD_ERROR. If it is QHYCCD_ERROR, it means (1) this model may have not support this function or (2) the API failur to run.
+*/
+
+
+EXPORTC uint32_t STDCALL SetQHYCCDWriteCMOS(qhyccd_handle *h,uint8_t number,uint16_t regindex,uint16_t regvalue);
+/**
+ @fn uint32_t SetQHYCCDWriteCMOS(qhyccd_handle *h,uint8_t number,uint16_t regindex,uint16_t regvalue);
+ @brief Write CMOS register of the camera directly for advanced control
+ @param handle camera control handle
+ @param number: if there is multiple CMOS, this is the sequence number . default is 0.
+ @param regindex: register index. It is 16bit.
+ @param regindex: register value. It is 16bit.
+ @return QHYCCD_SUCCESS or QHYCCD_ERROR. If it is QHYCCD_ERROR, it means (1) this model may have not support this function or (2) the API failur to run.
+*/
+
+
+EXPORTFUNC uint32_t STDCALL SetQHYCCDTwoChannelCombineParameter(qhyccd_handle *handle, double x,double ah,double bh,double al,double bl);
+/**
+ @fn uint32_t SetQHYCCDTwoChannelCombineParameter(qhyccd_handle *handle, double x,double ah,double bh,double al,double bl);
+ @brief For the camera with high gain low gain two channel combine to 16bit function, this API can set the combination parameters
+ @param handle camera control handle
+ @param x: High gain low gain channel data switch point. (based on the high gain channel data)
+ @param ah: High gain channel ratio (y=ax+b)
+ @param bh: High gain channel offset (y=ax+b)
+ @param al: Low gain channel ratio (y=ax+b)
+ @param bl: Low gain channel offset (y=ax+b)
+ @return QHYCCD_SUCCESS or QHYCCD_ERROR. If it is QHYCCD_ERROR, it means (1) this model may have not support this function or (2) the API failur to run.
+*/
+
+EXPORTC uint32_t STDCALL EnableQHYCCDImageOSD(qhyccd_handle *h,uint32_t i);
+
+EXPORTC void STDCALL QHYCCDQuit();
+
+EXPORTC QHYDWORD STDCALL SetQHYCCDCallBack(QHYCCDProcCallBack ProcCallBack,
+ int32_t Flag);
+
+#if 0//PCIE_MODE_TEST
+
+#include "riffa.h"
+
+
+/**
+ * Populates the fpga_info_list pointer with all FPGAs registered in the system.
+ * Returns 0 on success, non-zero on error.
+ */
+EXPORTC int STDCALL QHYCCD_fpga_list(struct fpga_info_list &list);
+
+/**
+ * Initializes the FPGA specified by id. On success, returns a pointer to a
+ * fpga_t struct. On error, returns NULL. Each FPGA must be opened before any
+ * channels can be accessed. Once opened, any number of threads can use the
+ * fpga_t struct.
+ */
+EXPORTC uint32_t STDCALL QHYCCD_fpga_open(int id);
+
+/**
+ * Cleans up memory/resources for the FPGA specified by the fd descriptor.
+ */
+EXPORTC void STDCALL QHYCCD_fpga_close();
+
+/**
+ * Sends len words (4 byte words) from data to FPGA channel chnl using the
+ * fpga_t struct. The FPGA channel will be sent len, destoff, and last. If last
+ * is 1, the channel should interpret the end of this send as the end of a
+ * transaction. If last is 0, the channel should wait for additional sends
+ * before the end of the transaction. If timeout is non-zero, this call will
+ * send data and wait up to timeout ms for the FPGA to respond (between
+ * packets) before timing out. If timeout is zero, this call may block
+ * indefinitely. Multiple threads sending on the same channel may result in
+ * corrupt data or error. This function is thread safe across channels.
+ * Returns the number of words sent.
+ */
+EXPORTC int STDCALL QHYCCD_fpga_send(int chnl, void * data, int len,
+ int destoff, int last, uint64_t timeout);
+
+/**
+ * Receives data from the FPGA channel chnl to the data pointer, using the
+ * fpga_t struct. The FPGA channel can send any amount of data, so the data
+ * array should be large enough to accommodate. The len parameter specifies the
+ * actual size of the data buffer in words (4 byte words). The FPGA channel will
+ * specify an offset which will determine where in the data array the data will
+ * start being written. If the amount of data (plus offset) exceed the size of
+ * the data array (len), then that data will be discarded. If timeout is
+ * non-zero, this call will wait up to timeout ms for the FPGA to respond
+ * (between packets) before timing out. If timeout is zero, this call may block
+ * indefinitely. Multiple threads receiving on the same channel may result in
+ * corrupt data or error. This function is thread safe across channels.
+ * Returns the number of words received to the data array.
+ */
+EXPORTC int STDCALL QHYCCD_fpga_recv( int chnl, void * data, int len,
+ uint64_t timeout);
+
+/**
+ * Resets the state of the FPGA and all transfers across all channels. This is
+ * meant to be used as an alternative to rebooting if an error occurs while
+ * sending/receiving. Calling this function while other threads are sending or
+ * receiving will result in unexpected behavior.
+ */
+EXPORTC void STDCALL QHYCCD_fpga_reset();
+#endif
+
+#endif
diff --git a/include/qhy/qhyccdcamdef.h b/include/qhy/qhyccdcamdef.h index e7051f4..490b358 100644 --- a/include/qhy/qhyccdcamdef.h +++ b/include/qhy/qhyccdcamdef.h @@ -1,43 +1,12 @@ -/*
- QHYCCD SDK
- Copyright (c) 2014 QHYCCD.
- All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along with
- this program; if not, write to the Free Software Foundation, Inc., 59
- Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- The full GNU General Public License is included in this distribution in the
- file called LICENSE.
- */
-
-/*!
- @file qhyccdcamdef.h
- @brief QHYCCD SDK error define
- */
#ifndef __QHYCCDCAMDEF_H__
#define __QHYCCDCAMDEF_H__
-//#define GIGAESUPPORT
-
-//#define QHYCCD_OPENCV_SUPPORT
/* IMG series */
-
/**
* Type define for IMG0S */
#define DEVICETYPE_IMG0S 1000
@@ -121,8 +90,8 @@ #define DEVICETYPE_QHY5PII_C 3011
/**
- * Type define for QHY5RII-M */
-#define DEVICETYPE_QHY5RII_M 3012
+ * Type define for QHY5RII-C */
+#define DEVICETYPE_QHY5RII_C 3012
/**
* Type define for QHY5RII-M */
@@ -361,12 +330,44 @@ #define DEVICETYPE_QHY294 4054
#define DEVICETYPE_QHY2020 4055
#define DEVICETYPE_QHY4040 4056
-
+#define DEVICETYPE_QHY550 4057
+#define DEVICETYPE_QHY42PRO 4058
+#define DEVICETYPE_QHY6060 4059
+#define DEVICETYPE_QHY411 4060
+
+#define DEVICETYPE_QHY600 4061
+#define DEVICETYPE_QHY600C 4062
+#define DEVICETYPE_QHY600M 4063
+#define DEVICETYPE_QHY0204 4064
+
+#define DEVICETYPE_QHY411ERIS 4065
+#define DEVICETYPE_QHY411MERIS 4066
+#define DEVICETYPE_QHY411CERIS 4067
+
+#define DEVICETYPE_QHY367PROC 4068
+
+#define DEVICETYPE_QHY268C 4069
+#define DEVICETYPE_QHY410C 4070
+#define DEVICETYPE_QHY432 4071
+#define DEVICETYPE_QHY342 4072
+#define DEVICETYPE_QHY4040PRO 4073
+#define DEVICETYPE_QHY128PROC 4074
+
+#define DEVICETYPE_QHY5III462 4075
+#define DEVICETYPE_QHY5III462C 4076
+#define DEVICETYPE_QHY5III462M 4077
+
+#define DEVICETYPE_QHY533C 4078
+#define DEVICETYPE_QHY492M 4079
+
+#define DEVICETYPE_QHY461 4080
+#define DEVICETYPE_QHY461M 4081
+#define DEVICETYPE_QHY461C 4082
/**
* Type define for QHY5IIIEND*/
-#define DEVICETYPE_QHY5IIIEND 4999
+#define DEVICETYPE_QHY5IIIEND 4999
/**
* Type define for QHY16 */
@@ -520,9 +521,835 @@ #define DEVICETYPE_QHY50GX 9013
+/**
+ * Type define for QHYPCIEBEGIN*/
+#define DEVICETYPE_QHYPCIEBEGIN 0X66180000
+
+#define DEVICETYPE_QHY4040PROPCIE 0X66184043
+#define DEVICETYPE_QHY411ERISPCIE 0X6618c414
+#define DEVICETYPE_QHY600PCIE 0X6618c603
+
+
+
+#define DEVICETYPE_QHYPCIEEND 0X6618ffff
+
+
+/* IMG series */
+#define IMG132E_MAX_WIDTH 1280
+#define IMG132E_MAX_HEIGHT 1024
+
+/**
+ * Type define for IMG0H */
+#define IMG0H_MAX_WIDTH 640
+#define IMG0H_MAX_HEIGHT 480
+
+/**
+ * Type define for IMG0L */
+#define IMG0L_MAX_WIDTH -1
+#define IMG0L_MAX_HEIGHT -1
+
+/**
+ * Type define for IMG0X */
+
+#define IMG0X_MAX_WIDTH -1
+#define IMG0X_MAX_HEIGHT -1
+
+/**
+ * Type define for IMG1S */
+#define IMG1S_MAX_WIDTH -1
+#define IMG1S_MAX_HEIGHT -1
+
+/**
+ * Type define for IMG2S */
+#define IMG2S_MAX_WIDTH -1
+#define IMG2S_MAX_HEIGHT -1
+
+/**
+ * Type define for IMG1E */
+#define IMG1E_MAX_WIDTH -1
+#define IMG1E_MAX_HEIGHT -1
+
+
+/* QHY5 seires */
+
+/**
+ * Type define for QHY5 */
+#define QHY5_MAX_WIDTH 1280
+#define QHY5_MAX_HEIGHT 1024
+
+
+/* QHY5II series */
+
+/**
+ * Type define for QHY5II */
+#define QHY5II_MAX_WIDTH 1280
+#define QHY5II_MAX_HEIGHT 1024
+
+/**
+ * Type define for QHY5LII_M */
+#define QHY5LII_M_MAX_WIDTH 1280
+#define QHY5LII_M_MAX_HEIGHT 960
+
+/**
+ * Type define for QHY5LII_C */
+#define QHY5LII_C_MAX_WIDTH 1280
+#define QHY5LII_C_MAX_HEIGHT 960
+
+/**
+ * Type define for QHY5TII */
+#define QHY5TII_MAX_WIDTH -1
+#define QHY5TII_MAX_HEIGHT -1
+
+/**
+ * Type define for QHY5RII */
+#define QHY5RII_MAX_WIDTH -1
+#define QHY5RII_MAX_HEIGHT -1
+
+/**
+ * Type define for QHY5PII */
+#define QHY5PII_MAX_WIDTH -1
+#define QHY5PII_MAX_HEIGHT -1
+
+/**
+ * Type define for QHY5VII */
+#define QHY5VII_MAX_WIDTH -1
+#define QHY5VII_MAX_HEIGHT -1
+
+/**
+ * Type define for QHY5HII */
+#define QHY5HII_MAX_WIDTH 1280
+#define QHY5HII_MAX_HEIGHT 960
+
+/**
+ * Type define for QHYXXX */
+#define MINICAM5S_M_MAX_WIDTH 1280
+#define MINICAM5S_M_MAX_HEIGHT 960
+
+/**
+ * Type define for QHYXXX */
+#define MINICAM5S_C_MAX_WIDTH 1280
+#define MINICAM5S_C_MAX_HEIGHT 960
+
+/**
+ * Type define for QHY5PII_C */
+#define QHY5PII_C_MAX_WIDTH 2592
+#define QHY5PII_C_MAX_HEIGHT 1944
+
+/**
+ * Type define for QHY5RII-M */
+#define QHY5RII_C_MAX_WIDTH 728
+#define QHY5RII_C_MAX_HEIGHT 512
+
+/**
+ * Type define for QHY5RII-M */
+#define MINICAM5F_M_MAX_WIDTH 1280
+#define MINICAM5F_M_MAX_HEIGHT 960
+
+/**
+ * Type define for QHY5PII_M */
+#define QHY5PII_M_MAX_WIDTH 2592
+#define QHY5PII_M_MAX_HEIGHT 1944
+
+/**
+ * Type define for QHY5TII */
+#define QHY5TII_C_MAX_WIDTH 2048
+#define QHY5TII_C_MAX_HEIGHT 1536
+
+/**
+ * Type define for POLEMASTER */
+#define POLEMASTER_MAX_WIDTH 1280
+#define POLEMASTER_MAX_HEIGHT 960
+
+
+/* QHY5III seires */
+
+/**
+ * Type define for QHY5III174 */
+#define QHY5III174_MAX_WIDTH 1920
+#define QHY5III174_MAX_HEIGHT 1200
+
+
+/**
+ * Type define for QHY5III174 */
+#define QHY5III174M_MAX_WIDTH QHY5III174_MAX_WIDTH
+#define QHY5III174M_MAX_HEIGHT QHY5III174_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III174C*/
+#define QHY5III174C_MAX_WIDTH QHY5III174_MAX_WIDTH
+#define QHY5III174C_MAX_HEIGHT QHY5III174_MAX_HEIGHT
+
+/**
+ * Type define for QHY174*/
+#define QHY174_MAX_WIDTH 1920
+#define QHY174_MAX_HEIGHT 1200
+
+/**
+ * Type define for QHY174M*/
+#define QHY174M_MAX_WIDTH QHY174_MAX_WIDTH
+#define QHY174M_MAX_HEIGHT QHY174_MAX_HEIGHT
+
+/**
+ * Type define for QHY174C*/
+#define QHY174C_MAX_WIDTH QHY174_MAX_WIDTH
+#define QHY174C_MAX_HEIGHT QHY174_MAX_HEIGHT
+
+
+
+/**
+ * Type define for QHY5III174*/
+#define QHY5III174BASE_MAX_WIDTH QHY5III174_MAX_WIDTH
+#define QHY5III174BASE_MAX_HEIGHT QHY5III174_MAX_HEIGHT
+
+
+
+
+/**
+ * Type define for QHY5III178*/
+#define QHY5III178_MAX_WIDTH 3056
+#define QHY5III178_MAX_HEIGHT 2048
+
+/**
+ * Type define for QHY5III178C*/
+#define QHY5III178C_MAX_WIDTH QHY5III178_MAX_WIDTH
+#define QHY5III178C_MAX_HEIGHT QHY5III178_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III178M*/
+#define QHY5III178M_MAX_WIDTH QHY5III178_MAX_WIDTH
+#define QHY5III178M_MAX_HEIGHT QHY5III178_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III178*/
+#define QHY5III178BASE_MAX_WIDTH QHY5III178_MAX_WIDTH
+#define QHY5III178BASE_MAX_HEIGHT QHY5III178_MAX_HEIGHT
+
+
+/**
+ * Type define for QHY178*/
+#define QHY178_MAX_WIDTH 3056
+#define QHY178_MAX_HEIGHT 2048
+
+/**
+ * Type define for QHY178M*/
+#define QHY178M_MAX_WIDTH QHY178_MAX_WIDTH
+#define QHY178M_MAX_HEIGHT QHY178_MAX_HEIGHT
+
+/**
+ * Type define for QHY178C*/
+#define QHY178C_MAX_WIDTH QHY178_MAX_WIDTH
+#define QHY178C_MAX_HEIGHT QHY178_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III178*/
+#define QHY5III178COOLBASE_MAX_WIDTH QHY178_MAX_WIDTH
+#define QHY5III178COOLBASE_MAX_HEIGHT QHY178_MAX_HEIGHT
+
+
+/**
+ * Type define for QHY5III185*/
+#define QHY5III185_MAX_WIDTH 1920
+#define QHY5III185_MAX_HEIGHT 1200
+
+/**
+ * Type define for QHY5III185C*/
+#define QHY5III185C_MAX_WIDTH QHY5III185_MAX_WIDTH
+#define QHY5III185C_MAX_HEIGHT QHY5III185_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III185M*/
+#define QHY5III185M_MAX_WIDTH QHY5III185_MAX_WIDTH
+#define QHY5III185M_MAX_HEIGHT QHY5III185_MAX_HEIGHT
+
+
+/**
+ * Type define for QHY5III185M*/
+#define QHY5III185BASE_MAX_WIDTH QHY5III185_MAX_WIDTH
+#define QHY5III185BASE_MAX_HEIGHT QHY5III185_MAX_HEIGHT
+
+
+/**
+ * Type define for QHY185*/
+#define QHY185_MAX_WIDTH -1
+#define QHY185_MAX_HEIGHT -1
+
+/**
+ * Type define for QHY185M*/
+#define QHY185M_MAX_WIDTH -1
+#define QHY185M_MAX_HEIGHT -1
+
+/**
+ * Type define for QHY185C*/
+#define QHY185C_MAX_WIDTH -1
+#define QHY185C_MAX_HEIGHT -1
+
+/**
+ * Type define for QHY5III224*/
+#define QHY5III224_MAX_WIDTH 1280
+#define QHY5III224_MAX_HEIGHT 960
+
+/**
+ * Type define for QHY5III224C*/
+#define QHY5III224C_MAX_WIDTH QHY5III224_MAX_WIDTH
+#define QHY5III224C_MAX_HEIGHT QHY5III224_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III224M*/
+#define QHY5III224M_MAX_WIDTH QHY5III224_MAX_WIDTH
+#define QHY5III224M_MAX_HEIGHT QHY5III224_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III224M*/
+#define QHY5III224BASE_MAX_WIDTH QHY5III224_MAX_WIDTH
+#define QHY5III224BASE_MAX_HEIGHT QHY5III224_MAX_HEIGHT
+
+/**
+ * Type define for QHY224*/
+#define QHY224_MAX_WIDTH 1280
+#define QHY224_MAX_HEIGHT 960
+
+/**
+ * Type define for QHY224M*/
+#define QHY224M_MAX_WIDTH QHY224_MAX_WIDTH
+#define QHY224M_MAX_HEIGHT QHY224_MAX_HEIGHT
+
+/**
+ * Type define for QHY224C*/
+#define QHY224C_MAX_WIDTH QHY224_MAX_WIDTH
+#define QHY224C_MAX_HEIGHT QHY224_MAX_HEIGHT
+
+/**
+ * Type define for QHY224C*/
+#define QHY5III224COOLBASE_MAX_WIDTH QHY224_MAX_WIDTH
+#define QHY5III224COOLBASE_MAX_HEIGHT QHY224_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III290*/
+#define QHY5III290_MAX_WIDTH 1920
+#define QHY5III290_MAX_HEIGHT 1080
+
+/**
+ * Type define for QHY5III290C*/
+#define QHY5III290C_MAX_WIDTH QHY5III290_MAX_WIDTH
+#define QHY5III290C_MAX_HEIGHT QHY5III290_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III290M*/
+#define QHY5III290M_MAX_WIDTH QHY5III290_MAX_WIDTH
+#define QHY5III290M_MAX_HEIGHT QHY5III290_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III290M*/
+#define QHY5III290BASE_MAX_WIDTH QHY5III290_MAX_WIDTH
+#define QHY5III290BASE_MAX_HEIGHT QHY5III290_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III290*/
+#define QHY290_MAX_WIDTH 1920
+#define QHY290_MAX_HEIGHT 1080
+
+
+
+/**
+ * Type define for QHY290M*/
+#define QHY290M_MAX_WIDTH QHY290_MAX_WIDTH
+#define QHY290M_MAX_HEIGHT QHY290_MAX_HEIGHT
+
+/**
+ * Type define for QHY290C*/
+#define QHY290C_MAX_WIDTH QHY290_MAX_WIDTH
+#define QHY290C_MAX_HEIGHT QHY290_MAX_HEIGHT
+
+/**
+ * Type define for QHY290C*/
+#define QHY5III290COOLBASE_MAX_WIDTH QHY290_MAX_WIDTH
+#define QHY5III290COOLBASE_MAX_HEIGHT QHY290_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III236*/
+#define QHY5III236_MAX_WIDTH 1952
+#define QHY5III236_MAX_HEIGHT 1237
+
+/**
+ * Type define for QHY5III236C*/
+#define QHY5III236C_MAX_WIDTH QHY5III236_MAX_WIDTH
+#define QHY5III236C_MAX_HEIGHT QHY5III236_MAX_HEIGHT
+
+/**
+ * Type define for QHY5III290M*/
+#define QHY5III236M_MAX_WIDTH QHY5III236_MAX_WIDTH
+#define QHY5III236M_MAX_HEIGHT QHY5III236_MAX_HEIGHT
+
+/**
+ * Type define for QHY236*/
+#define QHY236_MAX_WIDTH -1
+#define QHY236_MAX_HEIGHT -1
+
+/**
+ * Type define for QHY236M*/
+#define QHY236M_MAX_WIDTH QHY236_MAX_WIDTH
+#define QHY236M_MAX_HEIGHT QHY236_MAX_HEIGHT
+
+/**
+ * Type define for QHY236C*/
+#define QHY236C_MAX_WIDTH QHY236_MAX_WIDTH
+#define QHY236C_MAX_HEIGHT QHY236_MAX_HEIGHT
+
+/**
+ * Type define for GSENSE400*/
+#define QHY5IIIG400M_MAX_WIDTH 2048
+#define QHY5IIIG400M_MAX_HEIGHT 2048
+
+/**
+ * Type define for QHY163*/
+#define QHY163_MAX_WIDTH 4656
+#define QHY163_MAX_HEIGHT 3522
+
+/**
+ * Type define for QHY163M*/
+#define QHY163M_MAX_WIDTH QHY163_MAX_WIDTH
+#define QHY163M_MAX_HEIGHT QHY163_MAX_HEIGHT
+
+/**
+ * Type define for QHY163C*/
+#define QHY163C_MAX_WIDTH QHY163_MAX_WIDTH
+#define QHY163C_MAX_HEIGHT QHY163_MAX_HEIGHT
+
+/**
+ * Type define for QHY165*/
+#define QHY165_MAX_WIDTH 4936
+#define QHY165_MAX_HEIGHT 3286
+
+/**
+ * Type define for QHY165C*/
+#define QHY165C_MAX_WIDTH QHY165_MAX_WIDTH
+#define QHY165C_MAX_HEIGHT QHY165_MAX_HEIGHT
+
+/**
+ * Type define for QHY367*/
+#define QHY367_MAX_WIDTH 7380
+#define QHY367_MAX_HEIGHT 4908
+
+/**
+ * Type define for QHY367C*/
+#define QHY367C_MAX_WIDTH QHY367_MAX_WIDTH
+#define QHY367C_MAX_HEIGHT QHY367_MAX_HEIGHT
+
+/**
+ * Type define for QHY183*/
+#define QHY183_MAX_WIDTH 5544
+#define QHY183_MAX_HEIGHT 3684
+
+/**
+ * Type define for QHY183C*/
+#define QHY183C_MAX_WIDTH QHY183_MAX_WIDTH
+#define QHY183C_MAX_HEIGHT QHY183_MAX_HEIGHT
+
+/**
+ * Type define for QHY-DevelopDev*/
+#define QHY5IIICOMMON_MAX_WIDTH 9000
+#define QHY5IIICOMMON_MAX_HEIGHT 7000
+
+/**
+ * Type define for QHY247*/
+#define QHY247_MAX_WIDTH 6088
+#define QHY247_MAX_HEIGHT 4052
+
+/**
+ * Type define for QHY247C*/
+#define QHY247C_MAX_WIDTH QHY247_MAX_WIDTH
+#define QHY247C_MAX_HEIGHT QHY247_MAX_HEIGHT
+
+/**
+ * Type define for QHY247C*/
+#define QHY5III247BASE_MAX_WIDTH QHY247_MAX_WIDTH
+#define QHY5III247BASE_MAX_HEIGHT QHY247_MAX_HEIGHT
+
+
+/**
+ * Type define for MINICAM6F*/
+#define MINICAM6F_MAX_WIDTH QHY5III178COOLBASE_MAX_WIDTH
+#define MINICAM6F_MAX_HEIGHT QHY5III178COOLBASE_MAX_HEIGHT
+
+/**
+ * Type define for QHY168C*/
+#define QHY168_MAX_WIDTH 5056
+#define QHY168_MAX_HEIGHT 3358
+
+#define QHY168C_MAX_WIDTH QHY168_MAX_WIDTH
+#define QHY168C_MAX_HEIGHT QHY168_MAX_HEIGHT
+
+#define QHY5III168BASE_MAX_WIDTH QHY168_MAX_WIDTH
+#define QHY5III168BASE_MAX_HEIGHT QHY168_MAX_HEIGHT
+
+/**
+ * Type define for QHY128C*/
+#define QHY128_MAX_WIDTH 6036
+#define QHY128_MAX_HEIGHT 4036
+
+#define QHY128C_MAX_WIDTH QHY128_MAX_WIDTH
+#define QHY128C_MAX_HEIGHT QHY128_MAX_HEIGHT
+
+#define QHY294_MAX_WIDTH 4212
+#define QHY294_MAX_HEIGHT 2850
+
+#define QHY2020_MAX_WIDTH 4096
+#define QHY2020_MAX_HEIGHT 2048
+
+#define QHY4040_MAX_WIDTH 4096
+#define QHY4040_MAX_HEIGHT 4118
+
+#define QHY4040PRO_MAX_WIDTH 4096
+#define QHY4040PRO_MAX_HEIGHT 4118
+
+
+#define QHY550_MAX_WIDTH 2496
+#define QHY550_MAX_HEIGHT 2080
+
+#define QHY42PRO_MAX_WIDTH 4096
+#define QHY42PRO_MAX_HEIGHT 2048
+
+#define QHY6060_MAX_WIDTH 7936
+#define QHY6060_MAX_HEIGHT 6134
+
+#define QHY411_MAX_WIDTH 14304
+#define QHY411_MAX_HEIGHT 10748
+
+#define QHY411ERIS_MAX_WIDTH 14304
+#define QHY411ERIS_MAX_HEIGHT 10748
+
+#define QHY600_MAX_WIDTH 9600
+#define QHY600_MAX_HEIGHT 6422
+
+
+#define QHY461_MAX_WIDTH 11760
+#define QHY461_MAX_HEIGHT 8842
+
+#define QHY268C_MAX_WIDTH 6280
+#define QHY268C_MAX_HEIGHT 4210
+
+#define QHY410C_MAX_WIDTH 6112
+#define QHY410C_MAX_HEIGHT 4140-100
+
+#define QHY432_MAX_WIDTH 1624
+#define QHY432_MAX_HEIGHT 1136
+
+#define QHY342_MAX_WIDTH 6512
+#define QHY342_MAX_HEIGHT 4870
+/**
+ * Type define for QHY16 */
+#define QHY16_MAX_WIDTH 4144
+#define QHY16_MAX_HEIGHT 4128
+
+/**
+ * Type define for QHY6 */
+#define QHY6_MAX_WIDTH 800
+#define QHY6_MAX_HEIGHT 596
+
+/**
+ * Type define for QHY7 */
+#define QHY7_MAX_WIDTH 2112
+#define QHY7_MAX_HEIGHT 2072
+
+/**
+ * Type define for QHY2PRO */
+#define QHY2PRO_MAX_WIDTH 1440
+#define QHY2PRO_MAX_HEIGHT 1050
+
+/**
+ * Type define for IMG2P */
+#define IMG2P_MAX_WIDTH 1436
+#define IMG2P_MAX_HEIGHT 1050
+
+/**
+ * Type define for QHY8 */
+#define QHY8_MAX_WIDTH 3328
+#define QHY8_MAX_HEIGHT 2030
+
+/**
+ * Type define for QHY8PRO */
+#define QHY8PRO_MAX_WIDTH 3328
+#define QHY8PRO_MAX_HEIGHT 2030
+
+/**
+ * Type define for QHY16000 */
+#define QHY16000_MAX_WIDTH 4960
+#define QHY16000_MAX_HEIGHT 3328
+
+/**
+ * Type define for QHY12 */
+#define QHY12_MAX_WIDTH 3328
+#define QHY12_MAX_HEIGHT 4640
+
+/**
+ * Type define for IC8300 */
+#define IC8300_MAX_WIDTH 3584
+#define IC8300_MAX_HEIGHT 2576
+
+/**
+ * Type define for QHY9S */
+#define QHY9S_MAX_WIDTH 3584
+#define QHY9S_MAX_HEIGHT 2574
/**
- * Type define for UNKNOWN */
-#define DEVICETYPE_UNKNOWN -1
+ * Type define for QHY10 */
+#define QHY10_MAX_WIDTH 2816
+#define QHY10_MAX_HEIGHT 3940
+
+
+/**
+ * Type define for QHY8L */
+#define QHY8L_MAX_WIDTH 3328
+#define QHY8L_MAX_HEIGHT 2030
+
+/**
+ * Type define for QHY11 */
+#define QHY11_MAX_WIDTH 4096
+#define QHY11_MAX_HEIGHT 2720
+
+/**
+ * Type define for QHY21 */
+#define QHY21_MAX_WIDTH 2048
+#define QHY21_MAX_HEIGHT 1500
+
+
+
+/**
+ * Type define for QHY23 */
+#define QHY23_MAX_WIDTH 3584
+#define QHY23_MAX_HEIGHT 2728
+
+/**
+ * Type define for QHY15 */
+#define QHY15_MAX_WIDTH 3108
+#define QHY15_MAX_HEIGHT 3086
+
+/**
+ * Type define for QHY27 */
+#define QHY27_MAX_WIDTH 5120
+#define QHY27_MAX_HEIGHT 3332
+
+
+/**
+ * Type define for QHY28 */
+#define QHY28_MAX_WIDTH 5120
+#define QHY28_MAX_HEIGHT 3332
+
+/**
+ * Type define for QHY9T */
+#define QHY9T_MAX_WIDTH 3584
+#define QHY9T_MAX_HEIGHT 2574
+
+/**
+ * Type define for QHY29 */
+#define QHY29_MAX_WIDTH 6656
+#define QHY29_MAX_HEIGHT 4452
+
+/**
+ * Type define for SOLAR1600 */
+#define SOLAR1600_MAX_WIDTH 4928
+#define SOLAR1600_MAX_HEIGHT 3264
+
+/* QHYA seires */
+
+/**
+ * Type define for QHY90A/IC90A */
+#define QHY90A_MAX_WIDTH 3584
+#define QHY90A_MAX_HEIGHT 2576
+
+/**
+ * Type define for QHY16200A/IC16200A */
+#define QHY16200A_MAX_WIDTH 5120
+#define QHY16200A_MAX_HEIGHT 3696
+
+/**
+ * Type define for QHY814A/IC814A */
+#define QHY814A_MAX_WIDTH 3584
+#define QHY814A_MAX_HEIGHT 2720
+
+/**
+ * Type define for 16803 */
+#define IC16803_MAX_WIDTH 4192
+#define IC16803_MAX_HEIGHT 4128
+
+/**
+ * Type define for 16803 */
+#define QHY09000_MAX_WIDTH 3140
+#define QHY09000_MAX_HEIGHT 3096
+
+
+/**
+ * Type define for 695A*/
+#define QHY695A_MAX_WIDTH 3072
+#define QHY695A_MAX_HEIGHT 2240
+
+
+/**
+ * Type define for QHY15GIGAE */
+#define QHY15G_MAX_WIDTH -1
+#define QHY15G_MAX_HEIGHT -1
+
+/**
+ * Type define for SOLAR800G */
+#define SOLAR800G_MAX_WIDTH 3584
+#define SOLAR800G_MAX_HEIGHT 2574
+
+#define A0340G_MAX_WIDTH -1
+#define A0340G_MAX_HEIGHT -1
+
+#define QHY08050G_MAX_WIDTH (3392 - 14)
+#define QHY08050G_MAX_HEIGHT 2560
+
+#define QHY694G_MAX_WIDTH -1
+#define QHY694G_MAX_HEIGHT -1
+
+#define QHY27G_MAX_WIDTH -1
+#define QHY27G_MAX_HEIGHT -1
+
+#define QHY23G_MAX_WIDTH -1
+#define QHY23G_MAX_HEIGHT -1
+
+#define QHY16000G_MAX_WIDTH 4960
+#define QHY16000G_MAX_HEIGHT 3328
+
+#define QHY160002AD_MAX_WIDTH 5120
+#define QHY160002AD_MAX_HEIGHT 3328
+
+#define QHY814G_MAX_WIDTH 3584
+#define QHY814G_MAX_HEIGHT 2728
+
+#define QHY45GX_MAX_WIDTH 1280
+#define QHY45GX_MAX_HEIGHT 1024
+
+
+
+#define QHY50GX_MAX_WIDTH 8400
+#define QHY50GX_MAX_HEIGHT 6220
+
+
+
+/**
+ * Type define for UNKNOW */
+#define DEVICETYPE_UNKNOW -1
+
+#define MAX_EXPOSURE_TIMES (3600) //s
+
+#define REMAINING_MIN_EXPOSURETIMES (3000)//ms
+
+#define MAX_CAMERA_NUMBER 200
+#define CAMERA_ID_LENGTH 64
+#define MAXDEVICES 8
+
+
+#define MAX_READMODE_NAME 256
+#define MAX_READMODE_CAM_NUMBER 6
+
+
+#define SEND_CAMERA_NO_MESSAGE 0
+
+
+#define SEND_CAMERA_ID 9501
+#define SEND_CAMERA_STATUS 9502
+#define SEND_CAMERA_LIVE 9503
+#define SEND_CAMERA_SINGLE 9504
+#define SEND_CAMERA_CAPABLE 9505
+#define SEND_CAMERA_MAXMINSTEP 9506
+#define SEND_CAMERA_EXPOSING 9507
+
+#define CAMERA_HANDLE_INVALID 9508
+#define HANDLE_IS_NULL 9509
+#define USB_PORT_ERROR 9510
+
+
+
+
+#define CAMERA_LOSE 10001
+#define CAMERA_INSERT 10002
+
+#define CAMERA_LIVE_ERROR 10003
+#define CAMERA_LIVE_DATA_AVAILABLE 10004
+#define CAMERA_LIVE_STOP 10005
+#define CAMERA_LIVE_TIMEOUT 10006
+
+#define CAMERA_SINGLE_ERROR 10011
+#define CAMERA_SINGLE_DATA_AVAILABLE 10012
+#define CAMERA_SINGLE_STOP 10013
+#define CAMERA_SINGLE_TIMEOUT 10014
+
+#define SEND_MSG_NONE 0
+#define SEND_MSG_WHOLE 1
+#define SEND_MSG_PART 2
+
+
+#define SINGLE_MODE 0
+#define LIVE_MODE 1
+
+#define GET_IMAGE_TIMEOUT 60000 //QHY09000 DRIFT SCAN MOD 600000
+//#define GET_IMAGE_TIMEOUT 900000 //QHY09000 DRIFT SCAN MOD 600000
+
+#define IS_OPERATOR_NONE 0
+#define IS_CAMARA_INIT 1
+#define IS_CAMARA_OPEN 2
+#define IS_CAMARA_CLOSE 3
+#define IS_CAMARA_STOP_LIVE 4
+#define IS_CAMARA_CAN_EXP 5
+#define IS_CAMARA_ERROR 6
+#define IS_GET_SINGLEPICTURE 7
+#define IS_GET_LIVEPICTURE 8
+
+
+
+#define COMMAND_QUEUE_PUSH 1
+#define COMMAND_QUEUE_POP 2
+
+
+
+
+#define DEMO_MAXDEVICES 6
+#define MESSAGE_SIZS 1000
+
+
+#define CFWSLOTS_NUM9 9
+#define CFWSLOTS_NUM8 8
+#define CFWSLOTS_NUM7 7
+#define CFWSLOTS_NUM6 6
+
+#define CFWSLOTS_DELAY 4000
+
+#define RESET_USB_PIPE 1
+#define ABORT_USB_PIPE 2
+
+
+
+#define MAX_PCIE_CHANNEL 4
+
+#define FPGA_CAMARA_LENGTH 256
+
+#define CAM_SCAN_INTERVAL 1000
+
+#define CRC32_POLY (0x04C11DB7)
+
+
+
+#define PCIE_CARD_HEAD (0x55EEAACC)
+
+#define PCIE_CARD_READ_C (0x00005555)
+#define PCIE_CARD_WRITE_C (0x00003333)
+
+#define PCIE_COMMAND_HEAD (0xAAEE3322)
+
+#define PCIE_FPGA_WRITE_C (0x00008881)
+#define PCIE_NIOS_READ_C (0x00007770)
+#define PCIE_NIOS_WRITE_C (0x00007771)
+
+#define PCIE_CAPTURE_WRITE_C (0x66666665)
+
+
+#define PCIE_DWORD (4)
+
+#define FRAME_BUFF_NUM 3
+
+#define IS_WRITE 1
+#define IS_READ 2
#endif
diff --git a/include/qhy/qhyccderr.h b/include/qhy/qhyccderr.h index be24b3a..9652bc7 100644 --- a/include/qhy/qhyccderr.h +++ b/include/qhy/qhyccderr.h @@ -1,30 +1,3 @@ -/*
- QHYCCD SDK
-
- Copyright (c) 2014 QHYCCD.
- All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along with
- this program; if not, write to the Free Software Foundation, Inc., 59
- Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- The full GNU General Public License is included in this distribution in the
- file called LICENSE.
- */
-
-/*! \file qhyccderr.h
- \brief QHYCCD SDK error define
- */
#ifndef __QHYCCDERR_H__
#define __QHYCCDERR_H__
@@ -32,6 +5,17 @@ #define QHYCCD_READ_DIRECTLY 0x2001
#define QHYCCD_DELAY_200MS 0x2000
+
+/**
+ * It means the camera using PCIE transfer data */
+#define QHYCCD_PCIE 9
+
+
+/**
+ * It means the camera using WINPCAP transfer data */
+#define QHYCCD_WINPCAP 8
+
+
/**
* It means the camera using GiGaE transfer data */
#define QHYCCD_QGIGAE 7
@@ -164,6 +148,6 @@ /**
* Set cam white balance blue failed */
#define QHYCCD_ERROR -25
-#endif // #if 0
+#endif
#endif
diff --git a/include/qhy/qhyccdstruct.h b/include/qhy/qhyccdstruct.h index c226926..2f08cf7 100644 --- a/include/qhy/qhyccdstruct.h +++ b/include/qhy/qhyccdstruct.h @@ -1,85 +1,72 @@ -/*
- QHYCCD SDK
-
- Copyright (c) 2014 QHYCCD.
- All Rights Reserved.
-
- This program is free software; you can redistribute it and/or modify it
- under the terms of the GNU General Public License as published by the Free
- Software Foundation; either version 2 of the License, or (at your option)
- any later version.
-
- This program is distributed in the hope that it will be useful, but WITHOUT
- ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
- more details.
-
- You should have received a copy of the GNU General Public License along with
- this program; if not, write to the Free Software Foundation, Inc., 59
- Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- The full GNU General Public License is included in this distribution in the
- file called LICENSE.
- */
-/*!
- * @file qhyccdstruct.h
- * @brief QHYCCD SDK struct define
- */
+#include "config.h"
+
+
+
-#ifndef WIN32
- #define LINUX
-#else
- #define QHYCCD_OPENCV_SUPPORT
-#endif
-#ifdef WIN32
- #include <windows.h>
-#else // Linux & Mac
- #include <pthread.h>
-#endif
#ifndef __QHYCCDSTRUCTDEF_H__
#define __QHYCCDSTRUCTDEF_H__
-#ifdef WIN32
-
+#if defined (_WIN32)
#ifndef EXPORTFUNC
#define EXPORTFUNC extern "C" __declspec(dllexport)
#endif
-
#ifndef STDCALL
#define STDCALL __stdcall
#endif
-
#ifndef EXPORTC
#define EXPORTC extern "C"
#endif
-
#else
-
#define EXPORTFUNC extern "C"
#define STDCALL
#define EXPORTC extern "C"
-
#endif
#include "stdint.h"
+
+#if defined (_WIN32)
+
+#ifdef _M_IX86
+typedef uint32_t QHYDWORD;
+#else
+typedef uint64_t QHYDWORD;
+#endif
+
+#else
+
+#ifdef __i386__
+typedef uint32_t QHYDWORD;
+#else
+typedef uint64_t QHYDWORD;
+#endif
+
+#endif
+
+
/**
* usb vendor request command
*/
-#define QHYCCD_REQUEST_READ (0xC0)
+#define QHYCCD_REQUEST_READ 0xC0
/**
* usb vendor request command
*/
-#define QHYCCD_REQUEST_WRITE (0x40)
+#define QHYCCD_REQUEST_WRITE 0x40
#define MACHANICALSHUTTER_OPEN 0
#define MACHANICALSHUTTER_CLOSE 1
#define MACHANICALSHUTTER_FREE 2
+
+
+#define MAX_READMODE_NUMBER 8
+#define MAX_READMODE_CAMARA_NUMBER 8
+
+
/**
* @brief CCDREG struct define
*
@@ -87,51 +74,86 @@ */
typedef struct ccdreg
{
- uint8_t Gain; //!< ccd gain
- uint8_t Offset; //!< ccd offset
- uint32_t Exptime; //!< expose time
- uint8_t HBIN; //!< width bin
- uint8_t VBIN; //!< height bin
- uint16_t LineSize; //!< almost match image width
- uint16_t VerticalSize; //!< almost match image height
- uint16_t SKIP_TOP; //!< Reserved
- uint16_t SKIP_BOTTOM; //!< Reserved
- uint16_t LiveVideo_BeginLine;//!< Reserved
- uint16_t AnitInterlace; //!< Reserved
- uint8_t MultiFieldBIN; //!< Reserved
- uint8_t AMPVOLTAGE; //!< Reserved
- uint8_t DownloadSpeed; //!< transfer speed
- uint8_t TgateMode; //!< Reserved
- uint8_t ShortExposure; //!< Reserved
- uint8_t VSUB; //!< Reserved
- uint8_t CLAMP; //!< Reserved
- uint8_t TransferBIT; //!< Reserved
- uint8_t TopSkipNull; //!< Reserved
- uint16_t TopSkipPix; //!< Reserved
- uint8_t MechanicalShutterMode;//!< Reserved
- uint8_t DownloadCloseTEC; //!< Reserved
- uint8_t SDRAM_MAXSIZE; //!< Reserved
- uint16_t ClockADJ; //!< Reserved
- uint8_t Trig; //!< Reserved
- uint8_t MotorHeating; //!< Reserved
- uint8_t WindowHeater; //!< Reserved
- uint8_t ADCSEL; //!< Reserved
-}CCDREG;
+ uint8_t Gain; //!< ccd gain
+ uint8_t Offset; //!< ccd offset
+ uint32_t Exptime; //!< expose time
+ uint8_t HBIN; //!< width bin
+ uint8_t VBIN; //!< height bin
+ uint16_t LineSize; //!< almost match image width
+ uint16_t VerticalSize; //!< almost match image height
+ uint16_t SKIP_TOP; //!< Reserved
+ uint16_t SKIP_BOTTOM; //!< Reserved
+ uint16_t LiveVideo_BeginLine;//!< Reserved
+ uint16_t AnitInterlace; //!< Reserved
+ uint8_t MultiFieldBIN; //!< Reserved
+ uint8_t AMPVOLTAGE; //!< Reserved
+ uint8_t DownloadSpeed; //!< transfer speed
+ uint8_t TgateMode; //!< Reserved
+ uint8_t ShortExposure; //!< Reserved
+ uint8_t VSUB; //!< Reserved
+ uint8_t CLAMP; //!< Reserved
+ uint8_t TransferBIT; //!< Reserved
+ uint8_t TopSkipNull; //!< Reserved
+ uint16_t TopSkipPix; //!< Reserved
+ uint8_t MechanicalShutterMode;//!< Reserved
+ uint8_t DownloadCloseTEC; //!< Reserved
+ uint8_t SDRAM_MAXSIZE; //!< Reserved
+ uint16_t ClockADJ; //!< Reserved
+ uint8_t Trig; //!< Reserved
+ uint8_t MotorHeating; //!< Reserved
+ uint8_t WindowHeater; //!< Reserved
+ uint8_t ADCSEL; //!< Reserved
+}
+CCDREG;
struct BIOREG
{
- uint16_t LineSize;
- uint16_t PatchNumber;
- uint8_t AMPVOLTAGE;
- uint8_t ShortExposure;
- uint8_t SDRAM_MAXSIZE;
- uint8_t DownloadSpeed;
- uint8_t TransferBIT;
- uint8_t BIOCCD_Mode;
- uint8_t BIOCCD_Video;
- uint8_t SDRAM_Bypass;
+ uint16_t LineSize;
+ uint16_t PatchNumber;
+ uint8_t AMPVOLTAGE;
+ uint8_t ShortExposure;
+ uint8_t SDRAM_MAXSIZE;
+ uint8_t DownloadSpeed;
+ uint8_t TransferBIT;
+ uint8_t BIOCCD_Mode;
+ uint8_t BIOCCD_Video;
+ uint8_t SDRAM_Bypass;
};
+
+
+
+#if 0
+//lowlevelstatus is used for QHYCCD LowLevelProtocol to readout the camera status from 0XD2 command.
+//see QHYCCD Low Level Protocol White Paper.
+typedef struct lowlevelstatus
+{
+ uint8_t speed; //!< ccd gain
+ uint32_t restExpTime; //!< ccd offset
+ uint32_t ExpTime; //!< expose time
+ uint8_t FwVersionYear; //!< width bin
+ uint8_t FwVersionMonth; //!< height bin
+ uint8_t FwVersionDay; //!< almost match image width
+ uint8_t TempType; //!< almost match image height
+ uint16_t CurrentTempADU; //!< Reserved
+ uint16_t TargetTempADU; //!< Reserved
+ uint8_t CurrentPWM;//!< Reserved
+ uint8_t TempControlMode; //!< Reserved
+ uint32_t DataInDDR; //!< Reserved
+ double CurrentTempC; //!< Reserved
+ double TargetTempC; //!< transfer speed
+ uint16_t ImageX; //!< Reserved
+ uint16_t ImageY; //!< Reserved
+ uint8_t ImageBitDepth; //!< Reserved
+ uint8_t USBSpeed; //!< Reserved
+ uint8_t cfwbuffer[8]; //!< Reserved
+ uint8_t cameraSubModel; //!< Reserved
+ uint8_t cameraColorType; //!< Reserved
+ uint8_t cameraSeriesNumber[16];//!< Reserved
+}
+LowLevelStatus;
+#endif
+
/**
* @brief CONTROL_ID enum define
*
@@ -139,84 +161,126 @@ struct BIOREG */
enum CONTROL_ID
{
- CONTROL_BRIGHTNESS = 0, //!< image brightness
- CONTROL_CONTRAST, //1 image contrast
- CONTROL_WBR, //2 red of white balance
- CONTROL_WBB, //3 blue of white balance
- CONTROL_WBG, //4 the green of white balance
- CONTROL_GAMMA, //5 screen gamma
- CONTROL_GAIN, //6 camera gain
- CONTROL_OFFSET, //7 camera offset
- CONTROL_EXPOSURE, //8 expose time (us)
- CONTROL_SPEED, //9 transfer speed
- CONTROL_TRANSFERBIT, //10 image depth bits
- CONTROL_CHANNELS, //11 image channels
- CONTROL_USBTRAFFIC, //12 hblank
- CONTROL_ROWNOISERE, //13 row denoise
- CONTROL_CURTEMP, //14 current cmos or ccd temprature
- CONTROL_CURPWM, //15 current cool pwm
- CONTROL_MANULPWM, //16 set the cool pwm
- CONTROL_CFWPORT, //17 control camera color filter wheel port
- CONTROL_COOLER, //18 check if camera has cooler
- CONTROL_ST4PORT, //19 check if camera has st4port
- CAM_COLOR, //20
- CAM_BIN1X1MODE, //21 check if camera has bin1x1 mode
- CAM_BIN2X2MODE, //22 check if camera has bin2x2 mode
- CAM_BIN3X3MODE, //23 check if camera has bin3x3 mode
- CAM_BIN4X4MODE, //24 check if camera has bin4x4 mode
- CAM_MECHANICALSHUTTER, //25 mechanical shutter
- CAM_TRIGER_INTERFACE, //26 triger
- CAM_TECOVERPROTECT_INTERFACE, //27 tec overprotect
- CAM_SINGNALCLAMP_INTERFACE, //28 singnal clamp
- CAM_FINETONE_INTERFACE, //29 fine tone
- CAM_SHUTTERMOTORHEATING_INTERFACE, //30 shutter motor heating
- CAM_CALIBRATEFPN_INTERFACE, //31 calibrated frame
- CAM_CHIPTEMPERATURESENSOR_INTERFACE, //32 chip temperaure sensor
- CAM_USBREADOUTSLOWEST_INTERFACE, //33 usb readout slowest
-
- CAM_8BITS, //34 8bit depth
- CAM_16BITS, //35 16bit depth
- CAM_GPS, //36 check if camera has gps
-
- CAM_IGNOREOVERSCAN_INTERFACE, //37 ignore overscan area
-
- QHYCCD_3A_AUTOBALANCE, //38
- QHYCCD_3A_AUTOEXPOSURE, //39
- QHYCCD_3A_AUTOFOCUS, //40
- CONTROL_AMPV, //41 ccd or cmos ampv
- CONTROL_VCAM, //42 Virtual Camera on off
- CAM_VIEW_MODE, //43
-
- CONTROL_CFWSLOTSNUM, //44 check CFW slots number
- IS_EXPOSING_DONE, //45
- ScreenStretchB, //46
- ScreenStretchW, //47
- CONTROL_DDR, //47
- CAM_LIGHT_PERFORMANCE_MODE, //49
-
- CAM_QHY5II_GUIDE_MODE, //50
- DDR_BUFFER_CAPACITY, //51
- DDR_BUFFER_READ_THRESHOLD, //52
-
- DefaultOffset, //53
- OutputDataActualBits, //54
- OutputDataAlignment //55
+/*0*/ CONTROL_BRIGHTNESS = 0, //!< image brightness
+/*1*/ CONTROL_CONTRAST, //!< image contrast
+/*2*/ CONTROL_WBR, //!< red of white balance
+/*3*/ CONTROL_WBB, //!< blue of white balance
+/*4*/ CONTROL_WBG, //!< the green of white balance
+/*5*/ CONTROL_GAMMA, //!< screen gamma
+/*6*/ CONTROL_GAIN, //!< camera gain
+/*7*/ CONTROL_OFFSET, //!< camera offset
+/*8*/ CONTROL_EXPOSURE, //!< expose time (us)
+/*9*/ CONTROL_SPEED, //!< transfer speed
+/*10*/ CONTROL_TRANSFERBIT, //!< image depth bits
+/*11*/ CONTROL_CHANNELS, //!< image channels
+/*12*/ CONTROL_USBTRAFFIC, //!< hblank
+/*13*/ CONTROL_ROWNOISERE, //!< row denoise
+/*14*/ CONTROL_CURTEMP, //!< current cmos or ccd temprature
+/*15*/ CONTROL_CURPWM, //!< current cool pwm
+/*16*/ CONTROL_MANULPWM, //!< set the cool pwm
+/*17*/ CONTROL_CFWPORT, //!< control camera color filter wheel port
+/*18*/ CONTROL_COOLER, //!< check if camera has cooler
+/*19*/ CONTROL_ST4PORT, //!< check if camera has st4port
+/*20*/ CAM_COLOR,
+/*21*/ CAM_BIN1X1MODE, //!< check if camera has bin1x1 mode
+/*22*/ CAM_BIN2X2MODE, //!< check if camera has bin2x2 mode
+/*23*/ CAM_BIN3X3MODE, //!< check if camera has bin3x3 mode
+/*24*/ CAM_BIN4X4MODE, //!< check if camera has bin4x4 mode
+/*25*/ CAM_MECHANICALSHUTTER, //!< mechanical shutter
+/*26*/ CAM_TRIGER_INTERFACE, //!< triger
+/*27*/ CAM_TECOVERPROTECT_INTERFACE, //!< tec overprotect
+/*28*/ CAM_SINGNALCLAMP_INTERFACE, //!< singnal clamp
+/*29*/ CAM_FINETONE_INTERFACE, //!< fine tone
+/*30*/ CAM_SHUTTERMOTORHEATING_INTERFACE, //!< shutter motor heating
+/*31*/ CAM_CALIBRATEFPN_INTERFACE, //!< calibrated frame
+/*32*/ CAM_CHIPTEMPERATURESENSOR_INTERFACE, //!< chip temperaure sensor
+/*33*/ CAM_USBREADOUTSLOWEST_INTERFACE, //!< usb readout slowest
+
+/*34*/ CAM_8BITS, //!< 8bit depth
+/*35*/ CAM_16BITS, //!< 16bit depth
+/*36*/ CAM_GPS, //!< check if camera has gps
+
+/*37*/ CAM_IGNOREOVERSCAN_INTERFACE, //!< ignore overscan area
+
+/*38*/ QHYCCD_3A_AUTOBALANCE,
+/*39*/ QHYCCD_3A_AUTOEXPOSURE,
+/*40*/ QHYCCD_3A_AUTOFOCUS,
+/*41*/ CONTROL_AMPV, //!< ccd or cmos ampv
+/*42*/ CONTROL_VCAM, //!< Virtual Camera on off
+/*43*/ CAM_VIEW_MODE,
+
+/*44*/ CONTROL_CFWSLOTSNUM, //!< check CFW slots number
+/*45*/ IS_EXPOSING_DONE,
+/*46*/ ScreenStretchB,
+/*47*/ ScreenStretchW,
+/*48*/ CONTROL_DDR,
+/*49*/ CAM_LIGHT_PERFORMANCE_MODE,
+
+/*50*/ CAM_QHY5II_GUIDE_MODE,
+/*51*/ DDR_BUFFER_CAPACITY,
+/*52*/ DDR_BUFFER_READ_THRESHOLD,
+/*53*/ DefaultGain,
+/*54*/ DefaultOffset,
+/*55*/ OutputDataActualBits,
+/*56*/ OutputDataAlignment,
+
+/*57*/ CAM_SINGLEFRAMEMODE,
+/*58*/ CAM_LIVEVIDEOMODE,
+ /*59*/ CAM_IS_COLOR,
+/*60*/ hasHardwareFrameCounter,
+/*61*/ CONTROL_MAX_ID,
+/*62*/ CAM_HUMIDITY, //!<check if camera has humidity sensor 20191021 LYL Unified humidity function
+/*63*/ CAM_PRESSURE //check if camera has pressure sensor
+
};
/**
* debayer mode for mono to color */
enum BAYER_ID
{
- BAYER_GB = 1,
- BAYER_GR,
- BAYER_BG,
- BAYER_RG
+ BAYER_GB = 1,
+ BAYER_GR,
+ BAYER_BG,
+ BAYER_RG
};
enum CodecID
{
- NONE_CODEC,
- H261_CODEC
+ NONE_CODEC,
+ H261_CODEC
};
+
+
+
+typedef struct _QHYCamMinMaxStepValue
+{
+ const char *name;
+ double min;
+ double max;
+ double step;
+}
+QHYCamMinMaxStepValue;
+
+typedef struct _QHYGetImageParam
+{
+ void *handle;
+ uint8_t *imgdata;
+ uint32_t w;
+ uint32_t h;
+ uint32_t bpp;
+ uint32_t channels;
+ bool HaveImgData;
+}
+QHYGetImageParam;
+
+
+#if CALLBACK_MODE_SUPPORT
+typedef QHYDWORD (*QHYCCDProcCallBack) (void *handle,
+ QHYDWORD message,
+ QHYDWORD wParam,
+ QHYDWORD lParam);
+#endif
+
+
#endif
diff --git a/lib/x64/libqhyccd.a b/lib/x64/libqhyccd.a Binary files differindex 19f23ed..228eeac 100644 --- a/lib/x64/libqhyccd.a +++ b/lib/x64/libqhyccd.a |