From 1647b4be28dc49f41aa74fc0977cd6aeab4d12fe Mon Sep 17 00:00:00 2001 From: lihui Date: Thu, 21 Nov 2024 20:01:15 +0800 Subject: [PATCH 1/3] Add Revealer Scientific Camera Adapter --- DeviceAdapters/Revealer/MMSCCam.cpp | 1512 +++++++++++++++++ DeviceAdapters/Revealer/MMSCCam.h | 290 ++++ DeviceAdapters/Revealer/Revealer.vcxproj | 172 ++ .../Revealer/Revealer.vcxproj.filters | 60 + DeviceAdapters/Revealer/framework.h | 5 + 5 files changed, 2039 insertions(+) create mode 100644 DeviceAdapters/Revealer/MMSCCam.cpp create mode 100644 DeviceAdapters/Revealer/MMSCCam.h create mode 100644 DeviceAdapters/Revealer/Revealer.vcxproj create mode 100644 DeviceAdapters/Revealer/Revealer.vcxproj.filters create mode 100644 DeviceAdapters/Revealer/framework.h diff --git a/DeviceAdapters/Revealer/MMSCCam.cpp b/DeviceAdapters/Revealer/MMSCCam.cpp new file mode 100644 index 000000000..20e203325 --- /dev/null +++ b/DeviceAdapters/Revealer/MMSCCam.cpp @@ -0,0 +1,1512 @@ +/////////////////////////////////////////////////////////////////////////////// +// FILE: MMSCCam.cpp +// PROJECT: Micro-Manager +// SUBSYSTEM: DeviceAdapters +//----------------------------------------------------------------------------- +// DESCRIPTION: The example implementation of the demo camera. +// Simulates generic digital camera and associated automated +// microscope devices and enables testing of the rest of the +// system without the need to connect to the actual hardware. +// +// AUTHOR: +// +// COPYRIGHT: +// LICENSE: This file is distributed under the BSD license. +// License text is included with the source distribution. +// +// This file 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. +// +// IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES. + +#include "MMSCCam.h" +#include "ModuleInterface.h" +#include "SCDefines.h" + + +const double SCCamera::nominalPixelSizeUm_ = 1.0; + +const char* gCameraDeviceName = "Revealer"; +const char* g_PixelType_8bit = "8bit"; +const char* g_PixelType_16bit = "16bit"; +const char* g_feature_xoffset = "OffsetX"; +const char* g_feature_yoffset = "OffsetY"; +const char* g_feature_width = "Width"; +const char* g_feature_height = "Height"; +const char* g_feature_pixelFormat = "PixelFormat"; +const char* g_feature_sensorWidth = "SensorWidth"; +const char* g_feature_sensorHeight = "SensorHeight"; +const char* g_feature_binning = "BinningMode"; +const char* g_feature_readoutMode = "ReadoutMode"; +const char* g_feature_triggerInType = "TriggerInType"; +const char* g_feature_triggerActivation = "TriggerActivation"; +const char* g_feature_triggerDelay = "TriggerDelay"; + +const char* g_feature_triggerOutSelector = "TriggerOutSelector"; +const char* g_feature_triggerOutType = "TriggerOutType"; +const char* g_feature_triggerOutActivation = "TriggerOutActivation"; +const char* g_feature_triggerOutDelay = "TriggerOutDelay"; +const char* g_feature_triggerOutPulseWidth = "TriggerOutPulseWidth"; +const char* NoHubError = "Parent Hub not defined."; + +const char* g_trigger_off = "off"; +const char* g_trigger_external_edge = "External_Edge_Trigger"; +const char* g_trigger_external_level = "External_Level_Trigger"; +const char* g_trigger_rising_edge = "RisingEdge"; +const char* g_trigger_falling_edge = "FallEdge"; +const char* g_trigger_level_high = "LevelHigh"; +const char* g_trigger_level_low = "LevelLow"; +const char* g_trigger_global_reset_external_edge = "Global_Reset_External_Edge_Trigger"; +const char* g_trigger_global_reset_external_level = "Global_Reset_External_Level_Trigger"; + +const char* g_triggerout1 = "TriggerOut1"; +const char* g_triggerout2 = "TriggerOut2"; +const char* g_triggerout3 = "TriggerOut3"; + +//const char* g_property_triggerOutIFType1 = "TriggerOutIFType1"; +//const char* g_property_triggerOutType1 = "TriggerOutType1"; +//const char* g_property_triggerOutAct1 = "TriggerOutAct1"; +//const char* g_property_triggerOutDelay1 = "TriggerOutAct1"; +//const char* g_property_triggerOutPulseWidth1 = "TriggerOutPulseWidth1"; +//const char* g_trigger_if_name1 = "triggerOut1"; +// +//const char* g_property_triggerOutIFType2 = "TriggerOutIFType2"; +//const char* g_property_triggerOutType2 = "TriggerOutType2"; +//const char* g_property_triggerOutAct2 = "TriggerOutAct2"; +//const char* g_property_triggerOutDelay2 = "TriggerOutAct2"; +//const char* g_property_triggerOutPulseWidth2 = "TriggerOutPulseWidth2"; +//const char* g_trigger_if_name2 = "triggerOut2"; +// +//const char* g_property_triggerOutIFType3 = "TriggerOutIFType3"; +//const char* g_property_triggerOutType3 = "TriggerOutType3"; +//const char* g_property_triggerOutAct3 = "TriggerOutAct3"; +//const char* g_property_triggerOutDelay3 = "TriggerOutAct3"; +//const char* g_property_triggerOutPulseWidth3 = "TriggerOutPulseWidth3"; +//const char* g_trigger_if_name3 = "triggerOut3"; + +const char* g_trigger_exposure_start = "Exposure_Start"; +const char* g_trigger_vsync = "VSYNC"; +const char* g_trigger_readout_end = "Readout_End"; +const char* g_trigger_ready = "Trigger_Ready"; +const char* g_trigger_global_exposure = "Global_Exposure"; +const char* g_trigger_high = "High"; +const char* g_trigger_low = "Low"; + +/////////////////////////////////////////////////////////////////////////////// +// Exported MMDevice API +/////////////////////////////////////////////////////////////////////////////// + +MODULE_API void InitializeModuleData() +{ + RegisterDevice(gCameraDeviceName, MM::CameraDevice, "Scientific Camera Adapter"); +} + +MODULE_API MM::Device* CreateDevice(const char* deviceName) +{ + if (deviceName == 0) + return 0; + + // decide which device class to create based on the deviceName parameter + if (strcmp(deviceName, gCameraDeviceName) == 0) + { + // create camera + return new SCCamera(); + } + + // ...supplied name not recognized + return 0; +} + +MODULE_API void DeleteDevice(MM::Device* pDevice) +{ + delete pDevice; +} + + +/////////////////////////////////////////////////////////////////////////////// +// SCCamera implementation +// ~~~~~~~~~~~~~~~~~~~~~~~~~~ + +/** +* SCCamera constructor. +* Setup default all variables and create device properties required to exist +* before intialization. In this case, no such properties were required. All +* properties will be created in the Initialize() method. +* +* As a general guideline Micro-Manager devices do not access hardware in the +* the constructor. We should do as little as possible in the constructor and +* perform most of the initialization in the Initialize() method. +*/ +SCCamera::SCCamera() : + CCameraBase (), + insertCount_(0), + initialized_(false), + devHandle_(nullptr), + isAcqusition_(false), + xoffset_(0), + yoffset_(0), + depth_(0), + rawBuffer_(nullptr), + recvImage_(nullptr), + thd_(nullptr), + stopOnOverflow_(false), + isSequenceable_(false), + sequenceMaxLength_(100), + sequenceRunning_(false), + sequenceIndex_(0) +{ + CreateHubIDProperty(); +} + +SCCamera::~SCCamera() +{ + StopSequenceAcquisition(); + if (thd_) { + delete thd_; + thd_ = nullptr; + } + + if (recvImage_) { + delete recvImage_; + recvImage_ = nullptr; + } + +} + +/** +* Obtains device name. +* Required by the MM::Device API. +*/ +void SCCamera::GetName(char* name) const +{ + CDeviceUtils::CopyLimitedString(name, gCameraDeviceName); +} + +/** +* Intializes the hardware. +* Required by the MM::Device API. +* Typically we access and initialize hardware at this point. +* Device properties are typically created here as well, except +* the ones we need to use for defining initialization parameters. +* Such pre-initialization properties are created in the constructor. +* (This device does not have any pre-initialization properties) +*/ +int SCCamera::Initialize() +{ + if (initialized_) return DEVICE_OK; + DemoHub* pHub = static_cast(GetParentHub()); + if (pHub) + { + char hubLabel[MM::MaxStrLength]; + pHub->GetLabel(hubLabel); + SetParentID(hubLabel); // for backward comp. + } + else + LogMessage(NoHubError); + + + LogMessage("init start"); + // init + SC_Init(SCLogLevel::eInfo); + + // enum device + SC_DeviceList deviceInfoList; + auto ret = SC_EnumDevices(&deviceInfoList, eInterfaceTypeAll, nullptr); + if (ret != SC_OK) { + LogMessage("enumDevice failed"); + return DEVICE_ERR; + } + + if (deviceInfoList.nDevNum < 1) { + LogMessage("on device online"); + return DEVICE_NOT_CONNECTED; + } + + for (uint32_t i = 0; i < deviceInfoList.nDevNum; i++) { + if (deviceInfoList.pDevInfo[i].nCameraType == eTypeVirtual) { + continue; + } + ret = SC_CreateHandle(&devHandle_, eModeByCameraKey, deviceInfoList.pDevInfo[i].cameraKey); + if (ret != SC_OK) { + LogMessage("create device handle failed"); + return DEVICE_NOT_CONNECTED; + } + break; + } + + ret = SC_OpenEx(devHandle_, SC_ECameraAccessPermission::accessPermissionMonitor); + if (ret != SC_OK) { + LogMessage("create device handle failed"); + return DEVICE_NOT_CONNECTED; + } + + int nRet = CreateProperty(MM::g_Keyword_Name, gCameraDeviceName, MM::String, true); + if (DEVICE_OK != nRet) + return nRet; + + // Description + nRet = CreateProperty(MM::g_Keyword_Description, "ZKJS Camera Device ", MM::String, true); + if (DEVICE_OK != nRet) + return nRet; + + // CameraName + nRet = CreateProperty(MM::g_Keyword_CameraName, "ZKJS Camera", MM::String, true); + assert(nRet == DEVICE_OK); + + // CameraID + nRet = CreateProperty(MM::g_Keyword_CameraID, "V1.0", MM::String, true); + assert(nRet == DEVICE_OK); + + // exposure + double exp = 0; + nRet = SC_GetFloatFeatureValue(devHandle_, "ExposureTime", &exp); + nRet = CreateProperty(MM::g_Keyword_Exposure, std::to_string(exp/1000.0f).c_str(), MM::Float, false); + assert(nRet == DEVICE_OK); + + // binning + CPropertyAction *pAct = new CPropertyAction (this, &SCCamera::OnBinning); + nRet = CreateProperty(MM::g_Keyword_Binning, "1", MM::Integer, false, pAct); + assert(nRet == DEVICE_OK); + + std::vector binValues; + binValues.push_back("1"); // off + + nRet = SetAllowedValues(MM::g_Keyword_Binning, binValues); + if (nRet != DEVICE_OK) + return nRet; + + // pixelType + pAct = new CPropertyAction (this, &SCCamera::OnPixelType); + nRet = CreateProperty(MM::g_Keyword_PixelType, g_PixelType_16bit, MM::String, false, pAct); + assert(nRet == DEVICE_OK); + + std::vector pixelValues; + pixelValues.push_back(g_PixelType_16bit); + + nRet = SetAllowedValues(MM::g_Keyword_PixelType, pixelValues); + if (nRet != DEVICE_OK) + return nRet; + + // trigger in type + nRet = createTriggerProperty(); + if (nRet != DEVICE_OK) + return nRet; + + nRet = createTriggerOutProperty(); + if (nRet != DEVICE_OK) + return nRet; + + // readoutMode + uint64_t readOutMode = 0; + readOutModes_.clear(); + readOutModes_.push_back("bit11_HS_Low"); + readOutModes_.push_back("bit11_HS_High"); + readOutModes_.push_back("bit11_HDR_Low"); + readOutModes_.push_back("bit11_HDR_High"); + readOutModes_.push_back("bit12_HDR_Low"); + readOutModes_.push_back("bit12_HDR_High"); + readOutModes_.push_back("bit12_CMS"); + readOutModes_.push_back("bit16_From11"); + readOutModes_.push_back("bit16_From12"); + //readOutModes_.push_back("bit11_HDR_2F"); + //readOutModes_.push_back("bit12_HDR_2F"); + //readOutModes_.push_back("CMS_2F"); + + std::string value = "bit11_HS_Low"; + nRet = SC_GetEnumFeatureValue(devHandle_, g_feature_readoutMode, &readOutMode); + if (nRet == SC_OK && readOutMode < readOutModes_.size()) { + value = readOutModes_[readOutMode]; + } + pAct = new CPropertyAction (this, &SCCamera::OnReadOutMode); + nRet = CreateProperty(g_feature_readoutMode, value.c_str(), MM::String, false, pAct); + assert(nRet == DEVICE_OK); + + nRet = SetAllowedValues(g_feature_readoutMode, readOutModes_); + if (nRet != DEVICE_OK) + return nRet; + + + // Whether or not to use exposure time sequencing + pAct = new CPropertyAction (this, &SCCamera::OnIsSequenceable); + std::string propName = "UseExposureSequences"; + CreateStringProperty(propName.c_str(), "No", false, pAct); + AddAllowedValue(propName.c_str(), "Yes"); + AddAllowedValue(propName.c_str(), "No"); + + // resizeBuffer + int64_t width = 0, height = 0; + uint64_t pixelFormat = 0, binningMode = 0; + SC_GetIntFeatureValue(devHandle_, g_feature_width, &width); + SC_GetIntFeatureValue(devHandle_, g_feature_height, &height); + SC_GetEnumFeatureValue(devHandle_, g_feature_pixelFormat, &pixelFormat); + SC_GetEnumFeatureValue(devHandle_, g_feature_binning, &binningMode); + auto binningValue = convertBinningModeToBinningValue((int)binningMode); + auto depth = convertPixelFormatToDepth((SC_EPixelType)pixelFormat); + ResizeImageBuffer((int)width, (int)height, depth/8, binningValue); + + nRet = UpdateStatus(); + if (nRet != DEVICE_OK) + return nRet; + + thd_ = new CameraRecvThread(this); + recvImage_ = new SC_Frame(); + + initialized_ = true; + LogMessage("init end"); + return DEVICE_OK; +} + +/** +* Shuts down (unloads) the device. +* Required by the MM::Device API. +* Ideally this method will completely unload the device and release all resources. +* Shutdown() may be called multiple times in a row. +* After Shutdown() we should be allowed to call Initialize() again to load the device +* without causing problems. +*/ +int SCCamera::Shutdown() +{ + StopSequenceAcquisition(); + SC_Close(devHandle_); + SC_DestroyHandle(devHandle_); + SC_Release(); + return DEVICE_OK; +} + + +int SCCamera::SnapImage() +{ + if (!isAcqusition_) { + SC_StartGrabbingEx(devHandle_, 0, SC_EGrabStrategy::grabStrartegySequential); + } + isAcqusition_ = true; + + if (sequenceRunning_ && IsCapturing()){ + double exp = GetSequenceExposure(); + SetExposure(exp); + } + + auto rslt = getNextFrame(); + if (rslt != DEVICE_OK) { + LogMessage("getFrame failed"); + return rslt; + } + + auto ret = SC_StopGrabbing(devHandle_); + if (ret != SC_OK) { + LogMessage("stop grabbing failed"); + return DEVICE_ERR; + } + isAcqusition_ = false; + return DEVICE_OK; +}; + +const unsigned char* SCCamera::GetImageBuffer() +{ + MMThreadGuard g(imgPixelsLock_); + unsigned char *pB = (unsigned char*)(image_.GetPixels()); + return pB; +} + +unsigned SCCamera::GetImageWidth() const +{ + return image_.Width(); +} + +unsigned SCCamera::GetImageHeight() const { + return image_.Height(); +} + +unsigned SCCamera::GetImageBytesPerPixel() const { + return image_.Depth(); +} + +unsigned SCCamera::GetBitDepth() const { + return 8 * GetImageBytesPerPixel(); +} + +long SCCamera::GetImageBufferSize() const { + auto size = image_.Width() * image_.Height() * image_.Depth(); + return size; +} + +double SCCamera::GetExposure() const { + char buf[MM::MaxStrLength]; + int ret = GetProperty(MM::g_Keyword_Exposure, buf); + if (ret != DEVICE_OK) + return 0.0; + + std::ostringstream msg; + msg << "GetExposure:" << atof(buf); + LogMessage(msg.str().c_str()); + return atof(buf); +} + +void SCCamera::SetExposure(double exp) { + double realExp = 0; + SC_SetFloatFeatureValue(devHandle_, "ExposureTime", exp * 1000); + SC_GetFloatFeatureValue(devHandle_, "ExposureTime", &realExp); + SetProperty(MM::g_Keyword_Exposure, CDeviceUtils::ConvertToString(realExp/1000)); + GetCoreCallback()->OnExposureChanged(this, realExp/1000); + + std::ostringstream msg; + msg << "SetExposure:" << exp << "," << realExp/1000; + LogMessage(msg.str().c_str()); + return; +} + +int SCCamera::SetROI(unsigned x, unsigned y, unsigned xSize, unsigned ySize) { + + int32_t rslt = SC_ERROR; + std::ostringstream errMsg; + unsigned actualX = x, actualY = y, actualXSize = xSize, actualYSize = ySize; + + // close binning + auto origBinningValue = GetBinning(); + auto origBinningMode = convertBinningValueToBinningMode(origBinningValue); + + auto binningValue = 1; + auto binningMode = convertBinningValueToBinningMode(binningValue); + SC_SetEnumFeatureValue(devHandle_, g_feature_binning, binningMode); + + // TODO: + getActualRoi(actualX, actualY, actualXSize, actualYSize); + + rslt = SC_SetIntFeatureValue(devHandle_, g_feature_xoffset, (uint64_t)actualX); + if (rslt != SC_OK) { + errMsg << "set xoffset failed:" << x << std::endl; + LogMessage(errMsg.str().c_str()); + return DEVICE_INVALID_PROPERTY_VALUE; + } + + rslt = SC_SetIntFeatureValue(devHandle_, g_feature_yoffset, (uint64_t)actualY); + if (rslt != SC_OK) { + errMsg << "set yoffset failed:" << y << std::endl; + LogMessage(errMsg.str().c_str()); + return DEVICE_INVALID_PROPERTY_VALUE; + } + + rslt = SC_SetIntFeatureValue(devHandle_, g_feature_width, (uint64_t)actualXSize); + if (rslt != SC_OK) { + errMsg << "set width failed:" << xSize << std::endl; + LogMessage(errMsg.str().c_str()); + return DEVICE_INVALID_PROPERTY_VALUE; + } + + rslt = SC_SetIntFeatureValue(devHandle_, g_feature_height, (uint64_t)actualYSize); + if (rslt != SC_OK) { + errMsg << "set height failed:" << ySize << std::endl; + LogMessage(errMsg.str().c_str()); + return DEVICE_INVALID_PROPERTY_VALUE; + } + + SC_SetEnumFeatureValue(devHandle_, g_feature_binning, origBinningMode); + GetROI(actualX, actualY, actualXSize, actualYSize); + xoffset_ = actualX; + yoffset_ = actualY; + + char buf[MM::MaxStrLength]; + auto ret = GetProperty(MM::g_Keyword_PixelType, buf); + if (ret != DEVICE_OK) + return ret; + + int depth = 1; + ret = getDepth(buf, depth); + if (ret != DEVICE_OK) return ret; + + return ResizeImageBuffer(actualXSize, actualYSize, depth, 1); +} + +int SCCamera::GetROI(unsigned& x, unsigned& y, unsigned& xSize, unsigned& ySize) +{ + int64_t xoffset = x; + int64_t yoffset = y; + int64_t width = xSize; + int64_t height = ySize; + auto rslt = SC_GetIntFeatureValue(devHandle_, g_feature_xoffset, &xoffset); + SC_GetIntFeatureValue(devHandle_, g_feature_yoffset, &yoffset); + SC_GetIntFeatureValue(devHandle_, g_feature_width, &width); + SC_GetIntFeatureValue(devHandle_, g_feature_height, &height); + return DEVICE_OK; +} + +int SCCamera::ClearROI() { + int64_t width = 0; + int64_t height = 0; + SC_GetIntFeatureValue(devHandle_, g_feature_sensorWidth, &width); + SC_GetIntFeatureValue(devHandle_, g_feature_sensorHeight, &height); + SetROI(0, 0, width, height); + return DEVICE_OK; +} + +double SCCamera::GetSequenceExposure() +{ + if (exposureSequence_.size() == 0) { + return this->GetExposure(); + } + + double exposure = exposureSequence_[sequenceIndex_]; + sequenceIndex_++; + if (sequenceIndex_ >= exposureSequence_.size()) { + sequenceIndex_ = 0; + } + return exposure; +} + +int SCCamera::StartSequenceAcquisition(double interval) { + return StartSequenceAcquisition(LONG_MAX, interval, false); +} + +int SCCamera::StartSequenceAcquisition(long numImages, double interval_ms, bool stopOnOverflow) { + if (IsCapturing()) { + //return DEVICE_CAMERA_BUSY_ACQUIRING; + StopSequenceAcquisition(); + } + + if (!isAcqusition_) { + auto rslt = SC_StartGrabbingEx(devHandle_, numImages, SC_EGrabStrategy::grabStrartegySequential); + if (rslt != SC_OK) { + return rslt; + } + } + + stopOnOverflow_ = stopOnOverflow; + int ret = GetCoreCallback()->PrepareForAcq(this); + if (ret != DEVICE_OK) + return ret; + + //auto bret = GetCoreCallback()->InitializeImageBuffer(10, 1, GetImageWidth(), GetImageHeight(), GetImageBytesPerPixel()); + //if (!bret) { + // LogMessage("InitializeImageBuffer failed"); + //} + thd_->Start(numImages, interval_ms); + isAcqusition_ = true; + LogMessage("StartSequenceAcquisition"); + return DEVICE_OK; +} + +int SCCamera::StopSequenceAcquisition() { + if (!thd_->IsStopped()) { + thd_->Stop(); + thd_->wait(); + } + + auto rslt = SC_StopGrabbing(devHandle_); + if (rslt != SC_OK) { + LogMessage("stop aquisition failed"); + return DEVICE_ERR; + } + isAcqusition_ = false; + LogMessage("stop aquisition"); + return DEVICE_OK; +} + + + + +int SCCamera::ResizeImageBuffer( + int imageSizeW, + int imageSizeH, + int byteDepth, + int binSize) +{ + std::ostringstream msg; + msg << "ResizeImageBuffer: (" << imageSizeW << "," << imageSizeH << "," << binSize << "," << byteDepth << ")" << std::endl; + LogMessage(msg.str().c_str()); + + image_.Resize(imageSizeW / binSize, imageSizeH / binSize, byteDepth); + return DEVICE_OK; +} + +void SCCamera::getActualRoi( + unsigned& actualX, + unsigned& actualY, + unsigned& actualXSize, + unsigned& actualYSize) +{ + actualX = (actualX >> 6) << 6; + actualY = (actualY >> 1) << 1; + actualXSize = (actualXSize >> 6) << 6; + actualYSize = (actualYSize >> 1) << 1; + if (actualXSize == 0) actualXSize = (1 >> 6); + if (actualYSize == 0) actualYSize = (1 >> 2); +} + + +int SCCamera::getDepth(const char* pixelType, int &byteDepth) +{ + std::ostringstream errMsg; + if (strcmp(pixelType, g_PixelType_8bit) == 0) { + byteDepth = 1; + } + else if (strcmp(pixelType, g_PixelType_16bit) == 0) { + byteDepth = 2; + } + else { + errMsg << "invalid pixeltype : " << pixelType << std::endl; + LogMessage(errMsg.str().c_str()); + return DEVICE_UNSUPPORTED_DATA_FORMAT; + } + return DEVICE_OK; +} + +int SCCamera::RunSequenceOnThread(MM::MMTime startTime) +{ + auto rslt = getNextFrame(); + if (rslt != DEVICE_OK) { + LogMessage("getNextFrame failed"); + return rslt; + } + LogMessage("GetOneFrame end"); + rslt = InsertImage(); + if (rslt != DEVICE_OK) { + LogMessage("insertFrame failed"); + } + + ++insertCount_; + std::ostringstream msg; + msg << "InsertOneFrame end (" << GetImageWidth() << ',' << GetImageHeight() << ',' << GetImageBytesPerPixel() << "," << insertCount_ << ')'; + LogMessage(msg.str().c_str()); + return rslt; +} + +int SCCamera::InsertImage() +{ + auto width = GetImageWidth(); + auto height = GetImageHeight(); + unsigned int bytePerPixel = GetImageBytesPerPixel(); + + MM::MMTime timeStamp = this->GetCurrentMMTime(); + char label[MM::MaxStrLength]; + this->GetLabel(label); + + Metadata md; + md.put(MM::g_Keyword_Metadata_CameraLabel, label); + //md.put(MM::g_Keyword_Metadata_ROI_X, CDeviceUtils::ConvertToString( (long) xoffset_)); + //md.put(MM::g_Keyword_Metadata_ROI_Y, CDeviceUtils::ConvertToString( (long) yoffset_)); + MMThreadGuard g(imgPixelsLock_); + const unsigned char* data = GetImageBuffer(); + + auto coreCallback = GetCoreCallback(); + auto rslt = GetCoreCallback()->InsertImage(this, data, width, height, bytePerPixel,1, md.Serialize().c_str()); + if (!stopOnOverflow_ && rslt == DEVICE_BUFFER_OVERFLOW) + { + // do not stop on overflow - just reset the buffer + GetCoreCallback()->ClearImageBuffer(this); + // don't process this same image again... + rslt = GetCoreCallback()->InsertImage(this, data, width, height, bytePerPixel, 1, md.Serialize().c_str(), false); + } + return rslt; +} + +int SCCamera::getNextFrame() { + auto rslt = SC_GetFrame(devHandle_, recvImage_, 1000); + if (rslt == SC_TIMEOUT) { + LogMessage("recv frame timeout"); + return DEVICE_OK; + } + else if (rslt != SC_OK) { + LogMessage("recv frame failed"); + return DEVICE_ERR; + } + + auto height = recvImage_->frameInfo.height; + auto width = recvImage_->frameInfo.width; + auto pixelFormat = recvImage_->frameInfo.pixelFormat; + auto depth = convertPixelFormatToDepth(pixelFormat); + + if (height == 0 || width == 0 || depth == 0) + return DEVICE_OUT_OF_MEMORY; + + if (height != GetImageHeight() || width != GetImageWidth() || depth/8 != GetImageBytesPerPixel()) { + ResizeImageBuffer(width, height, depth/8, 1); + } + + std::ostringstream msg; + msg << "getFrame:(" << height << "," << width << "," << recvImage_->frameInfo.size << "," << GetImageBufferSize() <<"," << depth << ")" << std::endl; + LogMessage(msg.str().c_str()); + + auto dst = image_.GetPixelsRW(); + memcpy(dst, recvImage_->pData, recvImage_->frameInfo.size); + SC_ReleaseFrame(devHandle_, recvImage_); + + return DEVICE_OK; +} + +void SCCamera::OnThreadExiting() throw() +{ + try + { + LogMessage(g_Msg_SEQUENCE_ACQUISITION_THREAD_EXITING); + if (GetCoreCallback()) GetCoreCallback()->AcqFinished(this,0); + } + catch(...) + { + LogMessage(g_Msg_EXCEPTION_IN_ON_THREAD_EXITING, false); + } +} + +bool SCCamera::IsCapturing(){ + if (!thd_) return false; + std::ostringstream msg; + msg << "IsCapturing" << ":" << !thd_->IsStopped(); + LogMessage(msg.str().c_str()); + return !thd_->IsStopped(); +} + +double SCCamera::GetNominalPixelSizeUm() const{ + return nominalPixelSizeUm_; +} + +double SCCamera::GetPixelSizeUm() const { + return nominalPixelSizeUm_ * GetBinning(); +} + +int SCCamera::GetBinning() const { + uint64_t binning = 0; + SC_GetEnumFeatureValue(devHandle_, "BinningMode", &binning); + auto value = convertBinningModeToBinningValue((int)binning); + return value; +} + +int SCCamera::SetBinning(int bS) { + std::ostringstream msg; + auto mode = convertBinningValueToBinningMode(bS); + auto rslt = SC_SetEnumFeatureValue(devHandle_, g_feature_binning, mode); + if (rslt != SC_OK) { + msg << "SetBinning value:" << bS << ", mode:" << mode << "failed"; + LogMessage(msg.str().c_str()); + } + LogMessage(std::string("setBinning ").append(std::to_string(mode)).data()); + return SC_OK; + //return SetProperty(MM::g_Keyword_Binning, CDeviceUtils::ConvertToString(bS)); +} + +int SCCamera::IsExposureSequenceable(bool& isSequenceable) const { + isSequenceable = isSequenceable_; + LogMessage("IsExposureSequenceable"); + return DEVICE_OK; +} + +int SCCamera::GetExposureSequenceMaxLength(long& length) const { + if (!isSequenceable_) { + return DEVICE_UNSUPPORTED_COMMAND; + } + + length = sequenceMaxLength_; + LogMessage("GetExposureSequenceMaxLength"); + return DEVICE_OK; +} + +int SCCamera::StartExposureSequence() { + if (!isSequenceable_) { + return DEVICE_UNSUPPORTED_COMMAND; + } + + sequenceRunning_ = true; + LogMessage("StartExposureSequence"); + return DEVICE_OK; +} + +int SCCamera::StopExposureSequence() { + if (!isSequenceable_) + { + return DEVICE_UNSUPPORTED_COMMAND; + } + + sequenceRunning_ = false; + sequenceIndex_ = 0; + LogMessage("StopExposureSequence"); + return DEVICE_OK; +} + +int SCCamera::ClearExposureSequence() { + if (!isSequenceable_) { + return DEVICE_UNSUPPORTED_COMMAND; + } + + exposureSequence_.clear(); + std::ostringstream msg; + LogMessage("ClearExposureSequence"); + return DEVICE_OK; +} + +int SCCamera::AddToExposureSequence(double exposureTime_ms) { + if (!isSequenceable_) { + return DEVICE_UNSUPPORTED_COMMAND; + } + + exposureSequence_.push_back(exposureTime_ms); + LogMessage("AddToExposureSequence"); + return DEVICE_OK; +} + +int SCCamera::SendExposureSequence() const { + if (!isSequenceable_) { + return DEVICE_UNSUPPORTED_COMMAND; + } + LogMessage("SendExposureSequence"); + return DEVICE_OK; +} + +unsigned SCCamera::GetNumberOfComponents() const { + LogMessage("GetNumberOfComponents"); + return 1; +} + +int SCCamera::OnIsSequenceable(MM::PropertyBase* pProp, MM::ActionType eAct) +{ + std::string val = "Yes"; + if (eAct == MM::BeforeGet) + { + if (!isSequenceable_) + { + val = "No"; + } + pProp->Set(val.c_str()); + } + else if (eAct == MM::AfterSet) + { + isSequenceable_ = false; + pProp->Get(val); + if (val == "Yes") + { + isSequenceable_ = true; + } + } + return DEVICE_OK; +} + +int SCCamera::OnBinning(MM::PropertyBase* pProp, MM::ActionType eAct) +{ + int ret = DEVICE_ERR; + switch (eAct) + { + case MM::AfterSet: + { + if (IsCapturing()) { + return DEVICE_CAMERA_BUSY_ACQUIRING; + } + long binFactor; + pProp->Get(binFactor); + if (binFactor == 1 || binFactor == 2 || binFactor == 4) + { + // calculate ROI using the previous bin settings + ResizeImageBuffer(GetImageWidth(), GetImageHeight(), GetImageBytesPerPixel(), binFactor); + + std::ostringstream os; + os << binFactor; + OnPropertyChanged("Binning", os.str().c_str()); + ret = DEVICE_OK; + } + else { + LogMessage("invalid binning value"); + } + break; + } + + case MM::BeforeGet: { + ret = DEVICE_OK; + break; + } + } + return ret; +} + +int SCCamera::OnReadOutMode(MM::PropertyBase* pProp, MM::ActionType eAct) +{ + auto ret = DEVICE_ERR; + switch (eAct) { + case MM::AfterSet: + { + if (IsCapturing()) { + return DEVICE_CAN_NOT_SET_PROPERTY; + } + + std::string readOutMode; + pProp->Get(readOutMode); + auto mode = getReadOutModeEnum(readOutMode.c_str()); + if (mode == bit12_HDR_Low || mode == bit12_HDR_High || mode == bit12_CMS) { + AddAllowedValue(g_feature_triggerInType, g_trigger_global_reset_external_edge); + AddAllowedValue(g_feature_triggerInType, g_trigger_global_reset_external_level); + } + ret = DEVICE_OK; + }break; + + case MM::BeforeGet: { + ret = DEVICE_OK;; + }break; + + } + return ret; +} + +int SCCamera::OnTriggerSelector(MM::PropertyBase* pProp, MM::ActionType eAct) +{ + auto ret = DEVICE_ERR; + switch (eAct) + { + case MM::AfterSet: { + std::string selector; + pProp->Get(selector); + auto rslt = SC_SetEnumFeatureValue(devHandle_, g_feature_triggerOutSelector, convertTriggerOutSeletorToEnum(selector.c_str())); + if (rslt != SC_OK) { + LogMessage("set selector failed"); + return ret; + } + + uint64_t triggerOutType = 0, triggerOutAct = 0; + double delay = 0, pulseWidth = 0; + SC_GetEnumFeatureValue(devHandle_, g_feature_triggerOutType, &triggerOutType); + SetProperty(g_feature_triggerOutType, triggerOutTypes_[triggerOutType].c_str()); + + SC_GetEnumFeatureValue(devHandle_, g_feature_triggerOutActivation, &triggerOutAct); + SetProperty(g_feature_triggerOutActivation, triggerActivations_[triggerOutAct].c_str()); + + SC_GetFloatFeatureValue(devHandle_, g_feature_triggerOutDelay, &delay); + SetProperty(g_feature_triggerOutDelay, std::to_string(delay).c_str()); + + SC_GetFloatFeatureValue(devHandle_, g_feature_triggerOutPulseWidth, &pulseWidth); + SetProperty(g_feature_triggerOutPulseWidth, std::to_string(pulseWidth).c_str()); + ret = DEVICE_OK; + }break; + + case MM::BeforeGet: + { + ret = DEVICE_OK; + }break; + } + return ret; +} + +int SCCamera::OnTriggerOut(MM::PropertyBase* pProp, MM::ActionType eAct) +{ + auto ret = DEVICE_ERR; + switch (eAct) + { + case MM::AfterSet: + { + if (IsCapturing()) + return DEVICE_CAN_NOT_SET_PROPERTY; + std::string type; + pProp->Get(type); + + std::vector values; + if (type == g_trigger_exposure_start || type == g_trigger_vsync || type == g_trigger_readout_end) { + values.push_back(g_trigger_falling_edge); + values.push_back(g_trigger_rising_edge); + SetAllowedValues(g_feature_triggerOutActivation, values); + SetPropertyLimits(g_feature_triggerOutDelay, 0, 1e6); // us + SetProperty(g_feature_triggerOutActivation, g_trigger_rising_edge); + } + else if (type == g_trigger_ready || type == g_trigger_global_exposure) { + values.push_back(g_trigger_level_high); + values.push_back(g_trigger_level_low); + SetAllowedValues(g_feature_triggerOutActivation, values); + SetPropertyLimits(g_feature_triggerOutDelay, 0, 1e6); // us + SetProperty(g_feature_triggerOutActivation, g_trigger_level_high); + } + else { + ClearAllowedValues(g_feature_triggerActivation); + } + ret = DEVICE_OK; + } break; + + case MM::BeforeGet: + { + ret = DEVICE_OK; + }break; + } + return ret; +} + +int SCCamera::OnTriggerIn(MM::PropertyBase* pProp, MM::ActionType eAct) { + auto ret = DEVICE_ERR; + switch (eAct) + { + case MM::AfterSet: + { + if (IsCapturing()) + return DEVICE_CAN_NOT_SET_PROPERTY; + std::string type; + pProp->Get(type); + + std::vector values; + if (type == g_trigger_external_edge) { + values.push_back(g_trigger_falling_edge); + values.push_back(g_trigger_rising_edge); + SetAllowedValues(g_feature_triggerActivation, values); + SetPropertyLimits(g_feature_triggerDelay, 0, 1e6); // us + SetProperty(g_feature_triggerActivation, g_trigger_rising_edge); + } + else if (type == g_trigger_external_level) { + values.push_back(g_trigger_level_high); + values.push_back(g_trigger_level_low); + SetAllowedValues(g_feature_triggerActivation, values); + SetPropertyLimits(g_feature_triggerDelay, 0, 1e6); // us + SetProperty(g_feature_triggerActivation, g_trigger_level_high); + } + else { + ClearAllowedValues(g_feature_triggerActivation); + SetPropertyLimits(g_feature_triggerDelay, 0, 0); // disable + } + ret = DEVICE_OK; + } break; + + case MM::BeforeGet: + { + ret = DEVICE_OK; + }break; + } + return ret; +} + +int SCCamera::OnPixelType(MM::PropertyBase* pProp, MM::ActionType eAct) +{ + int ret = DEVICE_ERR; + switch(eAct) + { + case MM::AfterSet: + { + if(IsCapturing()) + return DEVICE_CAN_NOT_SET_PROPERTY; + + std::string pixelType; + pProp->Get(pixelType); + + int depth; + auto rslt = getDepth(pixelType.c_str(), depth); + if (rslt == DEVICE_OK) { + rslt = ResizeImageBuffer(image_.Width(), image_.Height(), depth/8, 1); + } + else + { + // on error switch to default pixel type + pProp->Set(g_PixelType_8bit); + ResizeImageBuffer(image_.Width(), image_.Height(), 1); + ret = DEVICE_UNSUPPORTED_DATA_FORMAT; + } + + }break; + case MM::BeforeGet: + { + ret=DEVICE_OK; + }break; + } + return ret; +} + +int SCCamera::convertPixelFormatToDepth(SC_EPixelType pixel) { + switch (pixel) { + case SC_EPixelType::gvspPixelMono12: + case SC_EPixelType::gvspPixelMono16: + return 16; + + default: + LogMessage("invalid pixel"); + return 0; + } + return 0; +} + +int32_t SCCamera::convertTriggerOutSeletorToEnum(const char* selector) +{ + if (strcmp(selector, g_triggerout1) == 0) return 1; + if (strcmp(selector, g_triggerout2) == 0) return 2; + if (strcmp(selector, g_triggerout3) == 0) return 3; + return 0; +} + +std::string SCCamera::convertTriggerOutSelectorToVal(int32_t selector) +{ + if (selector == 1) return g_triggerout1; + if (selector == 2) return g_triggerout2; + if (selector == 3) return g_triggerout3; + return ""; +} + +int32_t SCCamera::convertTriggerOutTypeToEnum(const char* type) +{ + for (int32_t i = 0; i < triggerOutTypes_.size(); ++i) { + if (strcmp(triggerOutTypes_[i].c_str(), type) == 0) return i; + } + return -1; +} + +int SCCamera::convertBinningModeToBinningValue(int binningMode) const +{ + if (binningMode == 0) return 1; // off + if (binningMode == 1) return 2; // 2*2 + if (binningMode == 2) return 4; // 4*4 + return 1; +} + +int SCCamera::convertBinningValueToBinningMode(int binningValue) const +{ + if (binningValue == 1) return 0; // off + if (binningValue == 2) return 1; // 2*2 + if (binningValue == 4) return 2; // 4*4 + return 0; +} + +uint32_t SCCamera::getReadOutModeEnum(const char* vvStr) const +{ + for (uint32_t i = 0; i < readOutModes_.size(); ++i) { + if (strcmp(vvStr, readOutModes_[i].c_str()) == 0) { + return i; + } + } + return (uint32_t)readOutModes_.size(); +} + +uint32_t SCCamera::convertReadOutModeEnum(const char* name, const char* vvStr) const +{ + if (strcmp(vvStr, "bit11_HS_Low") == 0) return bit11_HS_Low; + if (strcmp(vvStr, "bit11_HS_High") == 0) return bit11_HS_High; + if (strcmp(vvStr, "bit11_HDR_Low") == 0) return bit11_HDR_Low; + if (strcmp(vvStr, "bit11_HDR_High") == 0) return bit11_HDR_High; + if (strcmp(vvStr, "bit12_HDR_Low") == 0) return bit12_HDR_Low; + if (strcmp(vvStr, "bit12_HDR_High") == 0) return bit12_HDR_High; + if (strcmp(vvStr, "bit12_CMS") == 0) return bit12_CMS; + if (strcmp(vvStr, "bit16_From11") == 0) return bit16_From11; + if (strcmp(vvStr, "bit16_From12") == 0) return bit16_From12; + //if (strcmp(vvStr, "bit11_HDR_2F") == 0) return 9; + //if (strcmp(vvStr, "bit12_HDR_2F") == 0) return 10; + //if (strcmp(vvStr, "CMS_2F") == 0) return 11; + return 0; +} + +std::string SCCamera::convertReadOutModeStr(const char* name, uint64_t vv) const +{ + switch (vv) { + case bit11_HS_Low: + return "bit11_HS_Low"; + case bit11_HS_High: + return "bit11_HS_High"; + case bit11_HDR_Low: + return "bit11_HDR_Low"; + case bit11_HDR_High: + return "bit11_HDR_High"; + case bit12_HDR_Low: + return "bit12_HDR_Low"; + case bit12_HDR_High: + return "bit12_HDR_High"; + case bit12_CMS: + return "bit12_CMS"; + case bit16_From11: + return "bit16_From11"; + case bit16_From12: + return "bit16_From12"; + default: + return "bit11_HS_Low"; + } +} + +std::string SCCamera::convertTriggerTypeToValue(int32_t type) +{ + if (type == 0) return g_trigger_off; + if (type == 1) return g_trigger_external_edge; + if (type == 3) return g_trigger_external_level; + return g_trigger_off; +} + +int32_t SCCamera::convertTriggerValueToType(const char* value) { + if (strcmp(value, g_trigger_off) == 0) return 0; + if (strcmp(value, g_trigger_external_edge) == 0) return 1; + if (strcmp(value, g_trigger_external_level) == 0) return 3; + return 0; +} + +int SCCamera::GetProperty(const char* name, char* value) const +{ + if (strcmp(g_feature_readoutMode, name) == 0) { + uint64_t vv; + auto rslt = SC_GetEnumFeatureValue(devHandle_, name, &vv); + if (rslt != SC_OK) { + LogMessage("getProperty failed"); + return DEVICE_OK; + } + auto valueStr = convertReadOutModeStr(name, vv); + memcpy(value, valueStr.data(), valueStr.length()); + return DEVICE_OK; + } + return CDeviceBase::GetProperty(name, value); +} + + +int SCCamera::SetProperty(const char* name, const char* value) +{ + int32_t rslt = SC_ERROR; + if (strcmp(g_feature_readoutMode, name) == 0) { + auto mode = convertReadOutModeEnum(name, value); + rslt = SC_SetEnumFeatureValue(devHandle_, name, mode); + } + + else if (strcmp(g_feature_triggerOutSelector, name) == 0) { + auto selector = convertTriggerOutSeletorToEnum(value); + rslt = SC_SetEnumFeatureValue(devHandle_, name, selector); + } + + else if (strcmp(g_feature_triggerInType, name) == 0) { + auto type = convertTriggerValueToType(value); + rslt = SC_SetEnumFeatureValue(devHandle_, name, type); + } + + else if (strcmp(g_feature_triggerActivation, name) == 0 || strcmp(g_feature_triggerOutActivation, name) == 0) { + for (uint32_t i = 0; i < triggerActivations_.size(); ++i) { + if (strcmp(triggerActivations_[i].data(), value) == 0) { + rslt = SC_SetEnumFeatureValue(devHandle_, name, i); + } + } + } + else if (strcmp(g_feature_triggerDelay, name) == 0 || strcmp(g_feature_triggerOutDelay, name) == 0) { + double vv = atof(value); + rslt = SC_SetFloatFeatureValue(devHandle_, name, vv); + } + + else if (strcmp(g_feature_triggerOutPulseWidth, name) == 0) { + double vv = atof(value); + rslt = SC_SetFloatFeatureValue(devHandle_, name, vv); + } + else if (strcmp(g_feature_triggerOutType, name) == 0) { + auto type = convertTriggerOutTypeToEnum(value); + rslt = SC_SetEnumFeatureValue(devHandle_, name, type); + } + else if (strcmp("Binning", name) == 0) { + int32_t vv = atoi(value); + rslt = SetBinning(vv); + } + else { + rslt = SC_OK; + } + + if (rslt != SC_OK) { + LogMessage("setProperty failed"); + return DEVICE_OK; + } + return CDeviceBase::SetProperty(name, value); +} + +int32_t SCCamera::createTriggerOutProperty() +{ + uint64_t selector = 1; + auto rslt = SC_SetEnumFeatureValue(devHandle_, g_feature_triggerOutSelector, selector); + assert(rslt == SC_OK); + + // trigger out selector + std::vector selectors; + std::string value = convertTriggerOutSelectorToVal((uint32_t)selector); + auto pAct = new CPropertyAction(this, &SCCamera::OnTriggerSelector); + auto nRet = CreateProperty(g_feature_triggerOutSelector, value.c_str(), MM::String, false, pAct); + assert(nRet == DEVICE_OK); + selectors.push_back(g_triggerout1); + selectors.push_back(g_triggerout2); + selectors.push_back(g_triggerout3); + SetAllowedValues(g_feature_triggerOutSelector, selectors); + + // trigger out type + uint64_t triggerOutType = 0; + rslt = SC_GetEnumFeatureValue(devHandle_, g_feature_triggerOutType, &triggerOutType); + assert(rslt == SC_OK); + + triggerOutTypes_.push_back(g_trigger_exposure_start); + triggerOutTypes_.push_back(g_trigger_vsync); + triggerOutTypes_.push_back(g_trigger_readout_end); + triggerOutTypes_.push_back(g_trigger_ready); + triggerOutTypes_.push_back(g_trigger_global_exposure); + triggerOutTypes_.push_back(g_trigger_high); + triggerOutTypes_.push_back(g_trigger_low); + + value = g_trigger_exposure_start; + if (triggerOutType < triggerOutTypes_.size()) value = triggerOutTypes_[triggerOutType]; + pAct = new CPropertyAction(this, &SCCamera::OnTriggerOut); + nRet = CreateProperty(g_feature_triggerOutType, value.c_str(), MM::String, false, pAct); + assert(nRet == DEVICE_OK); + + nRet = SetAllowedValues(g_feature_triggerOutType, triggerOutTypes_); + if (nRet != DEVICE_OK) + return nRet; + + // trigger out activation + uint64_t triggerActivation = 0; + value = g_trigger_rising_edge; + rslt = SC_GetEnumFeatureValue(devHandle_, g_feature_triggerOutActivation, &triggerActivation); + if (rslt == SC_OK && triggerActivation < triggerActivations_.size()) { + value = triggerActivations_[triggerActivation]; + } + + nRet = CreateProperty(g_feature_triggerOutActivation, value.c_str(), MM::String, false); + assert(nRet == DEVICE_OK); + + // trigger out delay + double delay = 0; + rslt = SC_GetFloatFeatureValue(devHandle_, g_feature_triggerOutDelay, &delay); + + nRet = CreateProperty(g_feature_triggerOutDelay, std::to_string(delay).c_str(), MM::Float, false); + assert(nRet == DEVICE_OK); + + // trigger out pulse width + double pulseWidth = 0; + rslt = SC_GetFloatFeatureValue(devHandle_, g_feature_triggerOutPulseWidth, &delay); + + nRet = CreateProperty(g_feature_triggerOutPulseWidth, std::to_string(pulseWidth).c_str(), MM::Float, false); + assert(nRet == DEVICE_OK); + + return DEVICE_OK; + +} + +int SCCamera::createTriggerProperty() +{ + uint64_t triggerInType = 0; + auto rslt = SC_GetEnumFeatureValue(devHandle_, g_feature_triggerInType, &triggerInType); + if (rslt != SC_OK) { + LogMessage("set trigger off failed"); + } + std::string value = convertTriggerTypeToValue((uint32_t)triggerInType); + auto pAct = new CPropertyAction (this, &SCCamera::OnTriggerIn); + auto nRet = CreateProperty(g_feature_triggerInType, value.c_str(), MM::String, false, pAct); + assert(nRet == DEVICE_OK); + + std::vector triggerInValues; + triggerInValues.push_back(g_trigger_off); + triggerInValues.push_back(g_trigger_external_edge); + triggerInValues.push_back(g_trigger_external_level); + + nRet = SetAllowedValues(g_feature_triggerInType, triggerInValues); + if (nRet != DEVICE_OK) + return nRet; + + // trigger activation + uint64_t triggerActivation = 0; + value = g_trigger_rising_edge; + triggerActivations_.push_back(g_trigger_rising_edge); + triggerActivations_.push_back(g_trigger_falling_edge); + triggerActivations_.push_back(g_trigger_level_high); + triggerActivations_.push_back(g_trigger_level_low); + rslt = SC_GetEnumFeatureValue(devHandle_, g_feature_triggerActivation, &triggerActivation); + if (rslt == SC_OK && triggerActivation < triggerActivations_.size()) { + value = triggerActivations_[triggerActivation]; + } + + nRet = CreateProperty(g_feature_triggerActivation, value.c_str(), MM::String, false); + assert(nRet == DEVICE_OK); + + // trigger delay + double delay = 0; + rslt = SC_GetFloatFeatureValue(devHandle_, g_feature_triggerDelay, &delay); + + nRet = CreateProperty(g_feature_triggerDelay, std::to_string(delay).c_str(), MM::Float, false); + assert(nRet == DEVICE_OK); + + return DEVICE_OK; +} + +int SCCamera::ThreadRun() { + LogMessage("ThreadRun"); + return 0; +} + +CameraRecvThread::CameraRecvThread(SCCamera* pCam) + :camera_(pCam) + ,stop_(true) + ,suspend_(false) + ,numImages_(default_numImages) + ,imageCounter_(0) + ,intervalMs_(default_intervalMS) + ,startTime_(0) + ,actualDuration_(0) + ,lastFrameTime_(0) +{ +} + +CameraRecvThread::~CameraRecvThread() { +} + +void CameraRecvThread::Stop() { + MMThreadGuard(this->stopLock_); + stop_ = true; +} + +void CameraRecvThread::Start(long numImages, double intervalMs) +{ + MMThreadGuard(this->stopLock_); + MMThreadGuard(this->suspendLock_); + numImages_ = numImages; + intervalMs_ = intervalMs; + imageCounter_ = 0; + stop_ = false; + suspend_ = false; + activate(); + actualDuration_ = MM::MMTime{}; + startTime_ = camera_->GetCurrentMMTime(); + lastFrameTime_ = MM::MMTime{}; +} + +bool CameraRecvThread::IsStopped() { + MMThreadGuard(this->stopLock_); + return stop_; +} +void CameraRecvThread::Suspend() { + MMThreadGuard(this->suspendLock_); + suspend_ = true; +} +bool CameraRecvThread::IsSuspended() { + MMThreadGuard(this->suspendLock_); + return suspend_; +} +void CameraRecvThread::Resume() { + MMThreadGuard(this->suspendLock_); + suspend_ = false; +} + +double CameraRecvThread::GetIntervalMs() { + return intervalMs_; +} + +void CameraRecvThread::SetLength(long images) { + numImages_ = images; +} + +long CameraRecvThread::GetLength() const { + return numImages_; +} + +long CameraRecvThread::GetImageCounter() { + return imageCounter_; +} + +MM::MMTime CameraRecvThread::GetStartTime() { + return startTime_; +} + +MM::MMTime CameraRecvThread::GetActualDuration() { + return actualDuration_; +} + +int CameraRecvThread::svc(void) throw() +{ + int ret = DEVICE_ERR; + try + { + MM::MMTime startTime = camera_->GetCurrentMMTime(); + do + { + ret = camera_->RunSequenceOnThread(startTime); + } while (DEVICE_OK == ret && !IsStopped() && imageCounter_++ < numImages_ - 1); + + if (IsStopped()) { + camera_->LogMessage("SeqAcquisition interrupted by the user\n"); + } + } + catch (...) { + camera_->LogMessage(g_Msg_EXCEPTION_IN_THREAD, false); + } + stop_ = true; + actualDuration_ = camera_->GetCurrentMMTime() - startTime_; + camera_->OnThreadExiting(); + return ret; +} diff --git a/DeviceAdapters/Revealer/MMSCCam.h b/DeviceAdapters/Revealer/MMSCCam.h new file mode 100644 index 000000000..971b20742 --- /dev/null +++ b/DeviceAdapters/Revealer/MMSCCam.h @@ -0,0 +1,290 @@ +/////////////////////////////////////////////////////////////////////////////// +// FILE: MMSCCam.h +// PROJECT: Micro-Manager +// SUBSYSTEM: DeviceAdapters +//----------------------------------------------------------------------------- +// DESCRIPTION: The example implementation of the demo camera. +// Simulates generic digital camera and associated automated +// microscope devices and enables testing of the rest of the +// system without the need to connect to the actual hardware. +// +// AUTHOR: fandayu, fandayu@tucsen.com 2024 +// +// Karl Hoover (stuff such as programmable CCD size & the various image processors) +// Arther Edelstein ( equipment error simulation) +// +// COPYRIGHT: Tucsen Photonics Co., Ltd., 2024 +// +// +// LICENSE: This file is distributed under the BSD license. +// License text is included with the source distribution. +// +// This file 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. +// +// IN NO EVENT SHALL THE COPYRIGHT OWNER OR +// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES. + +#ifndef _MMTUCAM_H_ +#define _MMTUCAM_H_ + +#include "DeviceBase.h" +#include "ImgBuffer.h" +#include "DeviceThreads.h" +#include "SCApi.h" +#include +#include +#include + +////////////////////////////////////////////////////////////////////////////// +// Error codes +// + + +//////////////////////// +// DemoHub +////////////////////// + +class DemoHub : public HubBase +{ +public: + DemoHub() : + initialized_(false), + busy_(false) + {} + ~DemoHub() {} + + // Device API + // --------- + int Initialize(); + int Shutdown() {return DEVICE_OK;}; + void GetName(char* pName) const; + bool Busy() { return busy_;} ; + + // HUB api + int DetectInstalledDevices(); + +private: + void GetPeripheralInventory(); + + std::vector peripherals_; + bool initialized_; + bool busy_; +}; + +////////////////////////////////////////////////////////////////////////////// +// CMMTUCam class +// Simulation of the Camera device +////////////////////////////////////////////////////////////////////////////// + +enum ReadoutMode { + bit11_HS_Low = 0, + bit11_HS_High, + bit11_HDR_Low, + bit11_HDR_High, + bit12_HDR_Low, + bit12_HDR_High, + bit12_CMS, + bit16_From11, + bit16_From12 +}; +class SCCamera : public CCameraBase +{ +public: + SCCamera(); + ~SCCamera(); + + // MMDevice API + // ------------ + int Initialize(); + int Shutdown(); + + void GetName(char* name) const; + + // MMCamera API + // ------------ + int SnapImage(); + const unsigned char* GetImageBuffer(); + unsigned GetImageWidth() const; + unsigned GetImageHeight() const ; + unsigned GetImageBytesPerPixel() const; + unsigned GetBitDepth() const; + long GetImageBufferSize() const; + double GetExposure() const; + void SetExposure(double exp); + int SetROI(unsigned x, unsigned y, unsigned xSize, unsigned ySize) ; + int GetROI(unsigned& x, unsigned& y, unsigned& xSize, unsigned& ySize); + int ClearROI(); + virtual int GetProperty(const char* name, char* value) const; + virtual int SetProperty(const char* name, const char* value); + + int PrepareSequenceAcqusition() { return DEVICE_OK; } + int StartSequenceAcquisition(double interval); + int StartSequenceAcquisition(long numImages, double interval_ms, bool stopOnOverflow); + int StopSequenceAcquisition(); + int InsertImage(); + int RunSequenceOnThread(MM::MMTime startTime); + bool IsCapturing(); + void OnThreadExiting() throw(); + double GetNominalPixelSizeUm() const; + double GetPixelSizeUm() const; + int GetBinning() const; + int SetBinning(int bS); + + int IsExposureSequenceable(bool& isSequenceable) const; + int GetExposureSequenceMaxLength(long& length) const; + int StartExposureSequence(); + int StopExposureSequence(); + int ClearExposureSequence(); + int AddToExposureSequence(double exposureTime_ms); + int SendExposureSequence() const; + + //double LineIntervalTime(int nLineDelayTm); + //int LineIntervalCal(int nVal, bool bExpChange = true); + + unsigned GetNumberOfComponents() const; + //bool Busy() { return true; } + virtual int ThreadRun(void); + + + // action interface + // ---------------- + // floating point read-only properties for testing + int OnTestProperty(MM::PropertyBase* pProp, MM::ActionType eAct, long){ return 0; }; + + int OnBinning(MM::PropertyBase* pProp, MM::ActionType eAct); + int OnBinningSum(MM::PropertyBase* pProp, MM::ActionType eAct){ return 0; }; + int OnExposure(MM::PropertyBase* pProp, MM::ActionType eAct){ return 0; }; + int OnFrameRate(MM::PropertyBase* pProp, MM::ActionType eAct){ return 0; }; + int OnImageMode(MM::PropertyBase* pProp, MM::ActionType eAct){ return 0; }; + int OnPixelType(MM::PropertyBase* pProp, MM::ActionType eAct); + int OnIsSequenceable(MM::PropertyBase* pProp, MM::ActionType eAct); + int OnReadOutMode(MM::PropertyBase* pProp, MM::ActionType eAct); + int OnTriggerIn(MM::PropertyBase* pProp, MM::ActionType eAct); + int OnTriggerSelector(MM::PropertyBase* pProp, MM::ActionType eAct); + int OnTriggerOut(MM::PropertyBase* pProp, MM::ActionType eAct); + + MM::MMTime GetCurrentMMTime() + { + return CCameraBase::GetCurrentMMTime(); + }; + +private: + static const double nominalPixelSizeUm_; + int32_t insertCount_ = 0; + + bool initialized_ = false; + SC_DEV_HANDLE devHandle_ = nullptr; + bool isAcqusition_ = false; + + unsigned xoffset_ = 0; + unsigned yoffset_ = 0; + unsigned depth_ = 0; + ImgBuffer image_; + uint8_t* rawBuffer_ = nullptr; + SC_Frame *recvImage_ = nullptr; + + friend class CameraRecvThread; + CameraRecvThread* thd_ = nullptr; + MMThreadLock imgPixelsLock_; + bool stopOnOverflow_; + + bool isSequenceable_ = false; + int32_t sequenceMaxLength_ = 100; + bool sequenceRunning_ = false; + int32_t sequenceIndex_ = 0; + std::vector exposureSequence_; + + std::vector triggerOutTypes_; + std::vector triggerActivations_; + std::vector readOutModes_; + +private: + int ResizeImageBuffer( + int imageSizeW, + int imageSizeH, + int byteDepth, + int binSize = 1); + + void getActualRoi( + unsigned& actualX, + unsigned& actualY, + unsigned& actualXSize, + unsigned& actualYSize); + + int getDepth(const char* pixelType, int &dyteDepth); + + // acquisition + int getNextFrame(); + double GetSequenceExposure(); + int convertPixelFormatToDepth(SC_EPixelType pixel); + int convertBinningModeToBinningValue(int binngingMode) const; + int convertBinningValueToBinningMode(int binngingValue) const; + + std::string convertReadOutModeStr(const char* name, uint64_t vv) const; + uint32_t convertReadOutModeEnum(const char* name, const char* vvStr) const; + uint32_t getReadOutModeEnum(const char*vvStr) const; + + std::string convertTriggerTypeToValue(int32_t type); + int32_t convertTriggerValueToType(const char* value); + std::string convertTriggerOutSelectorToVal(int32_t selector); + int32_t convertTriggerOutSeletorToEnum(const char* selector); + int32_t convertTriggerOutTypeToEnum(const char* type); + + + int32_t createTriggerProperty(); + int32_t createTriggerOutProperty(); + //const char* ifname, + //const char* triggerOutTypeName, + //const char* triggerOutActName, + //const char* triggerOutDelayName, + //const char* triggerOutPulseWidthName); + + int32_t updateTriggerInActivation(const char *name, const std::vector &AllowPropertiesValue); +}; + + +class CameraRecvThread : public MMDeviceThreadBase +{ + friend class SCCamera; + enum { default_numImages=1, default_intervalMS = 100 }; +public: + CameraRecvThread(SCCamera* pCam); + + ~CameraRecvThread(); + + void Stop(); + + void Start(long numImages, double intervalMs); + bool IsStopped(); + void Suspend(); + bool IsSuspended(); + void Resume(); + double GetIntervalMs(); + void SetLength(long images); + long GetLength() const; + + long GetImageCounter(); + MM::MMTime GetStartTime(); + MM::MMTime GetActualDuration(); + +private: + int svc(void) throw(); + +protected: + SCCamera* camera_; + bool stop_; + bool suspend_; + long numImages_; + long imageCounter_; + double intervalMs_; + MM::MMTime startTime_; + MM::MMTime actualDuration_; + MM::MMTime lastFrameTime_; + MMThreadLock stopLock_; + MMThreadLock suspendLock_; +}; + +#endif //_MMTUCAM_H_ diff --git a/DeviceAdapters/Revealer/Revealer.vcxproj b/DeviceAdapters/Revealer/Revealer.vcxproj new file mode 100644 index 000000000..b6541c13f --- /dev/null +++ b/DeviceAdapters/Revealer/Revealer.vcxproj @@ -0,0 +1,172 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + 16.0 + Win32Proj + {F32DD52C-3406-4B8E-BFFC-5E2FB18D652B} + Revealer + 10.0 + + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + DynamicLibrary + true + v143 + Unicode + + + DynamicLibrary + false + v143 + true + Unicode + + + + + + + + + + + + + + + + + + + + + + + + + + Level3 + true + WIN32;_DEBUG;REVEALER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + false + + + + + Level3 + true + true + true + WIN32;NDEBUG;REVEALER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + Use + pch.h + + + Windows + true + true + true + false + + + + + Level3 + true + _DEBUG;REVEALER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + NotUsing + + + F:\git_src\SCSDK\scsdk\out\install\2019-x64-Release\sdk\include;%(AdditionalIncludeDirectories) + + + Windows + true + false + F:\git_src\SCSDK\scsdk\out\install\2019-x64-Debug\sdk\lib;%(AdditionalLibraryDirectories) + scsdk.lib;%(AdditionalDependencies) + + + + + Level3 + true + true + true + NDEBUG;REVEALER_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions) + true + NotUsing + pch.h + F:\git_src\SCSDK\scsdk\out\install\2019-x64-Release\sdk\include;%(AdditionalIncludeDirectories) + + + Windows + true + true + true + false + F:\git_src\SCSDK\scsdk\out\install\2019-x64-Release\sdk\lib;%(AdditionalLibraryDirectories) + scsdk.lib;%(AdditionalDependencies) + + + + + + \ No newline at end of file diff --git a/DeviceAdapters/Revealer/Revealer.vcxproj.filters b/DeviceAdapters/Revealer/Revealer.vcxproj.filters new file mode 100644 index 000000000..fdc781c60 --- /dev/null +++ b/DeviceAdapters/Revealer/Revealer.vcxproj.filters @@ -0,0 +1,60 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;c++;cppm;ixx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;h++;hm;inl;inc;ipp;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + 源文件 + + + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + 头文件 + + + \ No newline at end of file diff --git a/DeviceAdapters/Revealer/framework.h b/DeviceAdapters/Revealer/framework.h new file mode 100644 index 000000000..80cbbc9b0 --- /dev/null +++ b/DeviceAdapters/Revealer/framework.h @@ -0,0 +1,5 @@ +#pragma once + +#define WIN32_LEAN_AND_MEAN // 从 Windows 头文件中排除极少使用的内容 +// Windows 头文件 +#include From 2eeceb4e4c1cc039736e2e0d4f565a831f889b9f Mon Sep 17 00:00:00 2001 From: lihui Date: Thu, 12 Dec 2024 17:48:37 +0800 Subject: [PATCH 2/3] Revealer Scientific Camera Adapter Add LICENSE --- DeviceAdapters/Revealer/LICENSE | 184 ++++++ DeviceAdapters/Revealer/MMSCCam.cpp | 9 +- DeviceAdapters/Revealer/SCApi.h | 947 ++++++++++++++++++++++++++++ DeviceAdapters/Revealer/SCDefines.h | 922 +++++++++++++++++++++++++++ DeviceAdapters/Revealer/scsdk.lib | Bin 0 -> 11404038 bytes micromanager.sln | 6 + 6 files changed, 2064 insertions(+), 4 deletions(-) create mode 100644 DeviceAdapters/Revealer/LICENSE create mode 100644 DeviceAdapters/Revealer/SCApi.h create mode 100644 DeviceAdapters/Revealer/SCDefines.h create mode 100644 DeviceAdapters/Revealer/scsdk.lib diff --git a/DeviceAdapters/Revealer/LICENSE b/DeviceAdapters/Revealer/LICENSE new file mode 100644 index 000000000..a16958aed --- /dev/null +++ b/DeviceAdapters/Revealer/LICENSE @@ -0,0 +1,184 @@ +木兰公共许可证, 第2版 + +2021年5月 http://license.coscl.org.cn/MulanPubL-2.0 + +您对“贡献”的复制、使用、修改及分发受木兰公共许可证,第2版(以下简称“本许可证”)的如下条款的约束: + +0. 定义 + +“贡献” 是指由“贡献者”许可在“本许可证”下的受版权法保护的作品,包括最初“贡献者”许可在“本许可证”下的作品及后续“贡献者”许可在“本许可证”下的“衍生作品”。 + +“贡献者” 是指将受版权法保护的作品许可在“本许可证”下的自然人或“法人实体”。 + +“法人实体” 是指提交贡献的机构及其“关联实体”。 + +“关联实体” 是指,对“本许可证”下的行为方而言,控制、受控制或与其共同受控制的机构,此处的“控制”是指拥有受控方或共同受控方至少50%直接或间接的投票权、资金或其他有价证券。 + +“衍生作品” 是指基于“贡献”创作的作品,具体包括对全部或部分“贡献”进行修改、重写、翻译、注释、组合或与之链接(包括动态链接或静态链接)而形成的作品。仅与“贡献”进行进程间通信或系统调用的作品是独立作品,不属于“衍生作品”。 + +“对应源代码” 是指生成、安装和(对于可执行作品)运行目标代码所需的所有源文件和与之关联的接口定义文件,以及控制这些活动的脚本,但不包括编译环境、编译工具、云服务平台(如果有)。 + +“分发” 是指通过任何媒介向他人提供“贡献”或“衍生作品”的行为,以及利用“贡献”或“衍生作品”通过网络远程给用户提供服务的行为,例如:通过利用“贡献”或“衍生作品”搭建的云服务平台提供在线服务的行为。 + +1. 授予版权许可 + +每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的版权许可,您可以复制、使用、修改、“分发”其“贡献”或“衍生作品”,不论修改与否。 + +2. 授予专利许可 + +每个“贡献者”根据“本许可证”授予您永久性的、全球性的、免费的、非独占的、不可撤销的(根据本条规定撤销的情形除外)专利许可,供您使用、制造、委托制造、销售、许诺销售、进口其“贡献”或以其他方式转移其“贡献”。前述专利许可仅限于“贡献者”现在或将来拥有或控制的其“贡献”中的专利权利要求,而不包括仅因您对“贡献”的修改而将必然会侵犯到的专利权利要求。如果您或您的“关联实体”直接或间接地,就“贡献”对任何人发起专利侵权诉讼(包括在诉讼中提出反诉请求或交叉请求)或发起其他专利维权行动,则“贡献者”根据“本许可证”授予您的专利许可自您发起专利诉讼或专利维权行动之日终止。 + +3. 无商标许可 + +“贡献者”在“本许可证”下不提供对其商品名称、商标、服务标识或产品名称的商标许可,但您为满足第4条规定的声明义务而必须使用的情形除外。 + +4. 分发限制 + +您可以将您接收到的“贡献”或您的“衍生作品”以源程序形式或可执行形式重新“分发”,但必须满足下列条件: + +(1)您必须向接收者提供“本许可证”的副本,并保留“贡献”中的版权、商标、专利及免责声明;并且, + +(2)如果您“分发”您接收到的“贡献”,您必须使用“本许可证”提供该“贡献”的源代码副本;如果您 “分发”您的“衍生作品”,您必须: + +(i)随“衍生作品”提供使用“本许可证”“分发”的您的“衍生作品”的“对应源代码”。如果您通过下载链接提供前述“对应源代码”,则您应将下载链接地址置于“衍生作品”或其随附文档中的明显位置,有效期自该“衍生作品”“分发”之日起不少于三年,并确保接收者可以获得“对应源代码”;或者, + +(ii)随“衍生作品”向接收者提供一个书面要约,表明您愿意提供根据“本许可证”“分发”的您“衍生作品”的“对应源代码”。该书面要约应置于“衍生作品”中的明显位置,并确保接收者根据书面要约可获取“对应源代码”的时间从您接到该请求之日起不得超过三个月,且有效期自该“衍生作品”“分发”之日起不少于三年。 + +5. 违约与终止 + +如果您违反“本许可证”,任何“贡献者”有权书面通知您终止其根据“本许可证”授予您的许可。该“贡献者”授予您的许可自您接到其终止通知之日起终止。仅在如下两种情形下,即使您收到“贡献者”的通知也并不终止其授予您的许可: + +(1)您在接到该终止通知之前已停止所有违反行为; + +(2)您是首次收到该“贡献者”根据“本许可证”发出的书面终止通知,并且您在收到该通知后30天内已停止所有违反行为。 + +只要您下游的接收者遵守“本许可证”的相关规定,即使您在“本许可证”下被授予的许可终止,不影响下游的接收者根据“本许可证”享有的权利。 + +6. 例外 + +如果您将“贡献”与采用GNU AFFERO GENERAL PUBLIC LICENSE Version 3(以下简称“AGPLv3”)或其后续版本的作品结合形成新的“衍生作品”,且根据“AGPLv3”或其后续版本的要求您有义务将新形成的“衍生作品”以“AGPLv3”或其后续版本进行许可的,您可以根据“AGPLv3”或其后续版本进行许可,只要您在“分发”该“衍生作品”的同时向接收者提供“本许可证”的副本,并保留“贡献”中的版权、商标、专利及免责声明。但任何“贡献者”不会因您选择“AGPLv3”或其后续版本而授予该“衍生作品”的接收者更多权利。 + +7. 免责声明与责任限制 + +“贡献”在提供时不带有任何明示或默示的担保。在任何情况下,“贡献者”或版权人不对任何人因使用“贡献”而引发的任何直接或间接损失承担任何责任,不论该等损失因何种原因导致或者基于何种法律理论,即使其曾被告知有该等损失的可能性。 + +8. 语言 + +“本许可证”以中英文双语表述,中英文版本具有同等法律效力。如果中英文版本存在任何不一致,以中文版为准。 + +条款结束 + +如何将木兰公共许可证,第2版,应用到您的软件 + +如果您希望将木兰公共许可证,第2版,应用到您的软件,为了方便接收者查阅,建议您完成如下三步: + +1, 请您补充如下声明中的空白,包括软件名、软件的首次发表年份以及您作为版权人的名字; + +2, 请您在软件包的一级目录下创建以“LICENSE”为名的文件,将整个许可证文本放入该文件中; + +3, 请将如下声明文本放入每个源文件的头部注释中。 + +Copyright (c) [2024] [HF Agile Device Co., Ltd.] +[Revealer:Scientific Camera Adapter] is licensed under Mulan PubL v2. +You can use this software according to the terms and conditions of the Mulan PubL v2. +You may obtain a copy of Mulan PubL v2 at: + http://license.coscl.org.cn/MulanPubL-2.0 +THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +See the Mulan PubL v2 for more details. + + +Mulan Public License,Version 2 + +Mulan Public License,Version 2 (Mulan PubL v2) + +May 2021 http://license.coscl.org.cn/MulanPubL-2.0 + +Your reproduction, use, modification and Distribution of the Contribution shall be subject to Mulan Public License, Version 2 (this License) with following terms and conditions: + +0. Definition + +Contribution means the copyrightable work licensed by a particular Contributor under this License, including the work licensed by the initial Contributor under this License and its Derivative Work licensed by any subsequent Contributor under this License. + +Contributor means the Individual or Legal Entity who licenses its copyrightable work under this License. + +Legal Entity means the entity making a Contribution and all its Affiliates. + +Affiliates mmeans entities that control, are controlled by, or are under common control with the acting entity under this License, ‘control’ means direct or indirect ownership of at least fifty percent (50%) of the voting power, capital or other securities of controlled or commonly controlled entity. + +Derivative Work means works created based on Contribution, specifically including works formed by modifying, rewriting, translating, annotating, combining or linking to all or part of Contribution (including dynamic linking or static linking). Works which only communicate with Contribution through inter-process communication or system call, are independent works, rather than Derivative Work. + +Corresponding Source Code means all the source code needed to generate, install, and (for an executable work) run the object code including the interface definition files associated with source files for the work, and scripts to control those activities, excluding of compilation environment and compilation tools, cloud services platform (if any). + +Distribute (or Distribution) means the act of making the Contribution or Derivative Work available to others through any medium, and using the Contribution or Derivative Work to provide online services to users, such as the act of providing online services through a cloud service platform built using Contributions or Derivative Works. + +1. Grant of Copyright License + +Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable copyright license to reproduce, use, modify, or Distribute its Contribution or Derivative Work, with modification or not. + +2. Grant of Patent License + +Subject to the terms and conditions of this License, each Contributor hereby grants to you a perpetual, worldwide, royalty-free, non-exclusive, irrevocable (except for revocation under this Section) patent license to use, make, have made, sell, offer for sale, import or otherwise transfer its Contribution, where such patent license is only limited to the patent claims owned or controlled by such Contributor now or in future which will be necessarily infringed by its Contribution alone, excluding of any patent claims solely be infringed by your modification. If you or your Affiliates directly or indirectly institute patent litigation (including a cross claim or counterclaim in a litigation) or other patent enforcement activities against any individual or entity by alleging that any Contribution infringes patents, then any patent license granted to you under this License for the Contribution shall terminate as of the date such litigation or activity is filed or taken. + +3. No Trademark License + +No trademark license is granted to use the trade names, trademarks, service marks, or product names of Contributor, except as required to fulfill notice requirements in Section 4. + +4. Distribution Restriction + +You may Distribute the Contribution you received or your Derivative Work, whether in source or executable forms, provided that you meet the following conditions: + +1) You must provide recipients with a copy of this License and retain copyright, trademark, patent and disclaimer statements in the Contribution; and, + +2) If you Distribute the Contribution you received, you must provide copies of the Contribution’s source code under this License; + +If you Distribute your Derivative Work, you have to: + +(i) accompanying the Derivative work, provide recipients with Corresponding Source Code of your Derivative Work under this License. If you provide the Corresponding Source Code through a download link, you should place such link address prominently in the Derivative Work or its accompanying documents, and be valid no less than three years from your Distribution of the particular Derivative Work, and ensure that the recipients can acquire the Corresponding Source Code through the link; or, + +(ii) accompanying the Derivative Work, provide recipients with a written offer indicating your willingness to provide the Corresponding Source Code of the Derivative Work licensed under this License. Such written offer shall be placed prominently in the Derivative Work or its accompanying documents. Without reasonable excuse, the recipient shall be able to acquire the Corresponding Source code of the Derivative work for no more than three months from your receipt of a valid request, and be valid no less than three years from your Distribution of the particular Derivative Work. + +5. Breach and Termination + +If you breach this License, any Contributor has the right to notify you in writing to terminate its license granted to you under this License. The license granted to you by such Contributor terminates upon your receipt of such notice of termination. Notwithstanding the foregoing, your license will not be terminated even if you receive a notice of termination from Contributor, provided that: + +1) you have cured all the breaches prior to receiving such notice of termination; or, + +2) it’s your first time to receive a notice of termination from such Contributor pursuant to this License, and you have cured all the breaches within 30 days of receipt of such notice. + +Termination of your license under this License shall not affect the downstream recipient's rights under this License, provided that the downstream recipient complies with this License. + +6. Exceptions + +If you combine Contribution or your Derivative Work with a work licensed under the GNU AFFERO GENERAL PUBLIC LICENSE Version 3 (hereinafter referred to as “AGPLv3”) or its subsequent versions, and according to the AGPLv3 or its subsequent versions, you have an obligation to make the combined work to be licensed under the corresponding license, you can license such combined work under the license, provided that when you Distribute the combined work, you also provide a copy of this License to the recipients, and retain copyright, trademarks, patents, and disclaimer statements in the Contribution. No Contributor will grant additional rights to the recipients of the combined work for your license under AGPLv3 or its subsequent versions. + +7. Disclaimer of Warranty and Limitation of liability + +CONTRIBUTION ARE PROVIDED WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED. IN NO EVENT SHALL ANY CONTRIBUTOR OR COPYRIGHT HOLDER BE LIABLE TO YOU FOR ANY DAMAGES, INCLUDING, BUT NOT LIMITED TO ANY DIRECT, OR INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING FROM YOUR USE OR INABILITY TO USE THE CONTRIBUTION, NO MATTER HOW IT’S CAUSED OR BASED ON WHICH LEGAL THEORY, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +8. Language + +THIS LICENSE IS WRITTEN IN BOTH CHINESE AND ENGLISH, AND THE CHINESE VERSION AND ENGLISH VERSION SHALL HAVE THE SAME LEGAL EFFECT. IN THE CASE OF DIVERGENCE BETWEEN THE CHINESE AND ENGLISH VERSIONS, THE CHINESE VERSION SHALL PREVAIL. + +END OF THE TERMS AND CONDITIONS + +How to apply the Mulan Public License,Version 2 (Mulan PubL v2), to your software + +To apply the Mulan Public License,Version 2 to your work, for easy identification by recipients, you are suggested to complete following three steps: + +Fill in the blanks in following statement, including insert your software name, the year of the first publication of your software, and your name identified as the copyright owner; + +Create a file named “LICENSE” which contains the whole context of this License in the first directory of your software package; + +Attach the statement to the appropriate annotated syntax at the beginning of each source file. + +Copyright (c) [2024] [HF Agile Device Co., Ltd.] +[Revealer:Scientific Camera Adapter] is licensed under Mulan PubL v2. +You can use this software according to the terms and conditions of the Mulan PubL v2. +You may obtain a copy of Mulan PubL v2 at: + http://license.coscl.org.cn/MulanPubL-2.0 +THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, +EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, +MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE. +See the Mulan PubL v2 for more details. \ No newline at end of file diff --git a/DeviceAdapters/Revealer/MMSCCam.cpp b/DeviceAdapters/Revealer/MMSCCam.cpp index 20e203325..8f5b77e43 100644 --- a/DeviceAdapters/Revealer/MMSCCam.cpp +++ b/DeviceAdapters/Revealer/MMSCCam.cpp @@ -369,6 +369,7 @@ int SCCamera::Initialize() */ int SCCamera::Shutdown() { + LogMessage("Shutdown"); StopSequenceAcquisition(); SC_Close(devHandle_); SC_DestroyHandle(devHandle_); @@ -589,7 +590,7 @@ int SCCamera::StartSequenceAcquisition(long numImages, double interval_ms, bool } int SCCamera::StopSequenceAcquisition() { - if (!thd_->IsStopped()) { + if (thd_ && !thd_->IsStopped()) { thd_->Stop(); thd_->wait(); } @@ -1078,9 +1079,9 @@ int SCCamera::OnPixelType(MM::PropertyBase* pProp, MM::ActionType eAct) pProp->Get(pixelType); int depth; - auto rslt = getDepth(pixelType.c_str(), depth); - if (rslt == DEVICE_OK) { - rslt = ResizeImageBuffer(image_.Width(), image_.Height(), depth/8, 1); + ret = getDepth(pixelType.c_str(), depth); + if (ret == DEVICE_OK) { + ret = ResizeImageBuffer(image_.Width(), image_.Height(), depth, 1); } else { diff --git a/DeviceAdapters/Revealer/SCApi.h b/DeviceAdapters/Revealer/SCApi.h new file mode 100644 index 000000000..81efe77b8 --- /dev/null +++ b/DeviceAdapters/Revealer/SCApi.h @@ -0,0 +1,947 @@ +/// \mainpage +/// \~chinese +/// \htmlinclude mainpage_chs.html +/// \~english +/// \htmlinclude mainpage_eng.html + +#ifndef __SC_API_H__ +#define __SC_API_H__ + + + +#include "SCDefines.h" +#define PRIVATE_ + +/// \~chinese +/// \brief 动态库导入导出定义 +/// \~english +/// \brief Dynamic library import and export definition +#if (defined(_WIN32) || defined(WIN64)) +#ifdef SC_API_DLL_BUILD +#define SC_API _declspec(dllexport) +#else +#define SC_API _declspec(dllimport) +#endif + +#define SC_CALL __stdcall +#else +#define SC_API +#define SC_CALL +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/// \~chinese +/// \brief 获取版本信息 +/// \return 成功时返回版本信息,失败时返回NULL +/// \~english +/// \brief get version information +/// \return Success, return version info. Failure, return NULL +SC_API const char* SC_CALL SC_GetVersion(void); + +/// \~chinese +/// \brief 初始化SDK +/// \param level [IN] 日志级别 +/// \param logPath [IN] 日志路径 +/// \param fileSize [IN] 日志文件大小 +/// \param fileNum [IN] 日志文件个数 +/// \return 成功时返回0,错误码 +/// \~english +/// \param level [IN] log level +/// \param logPath [IN] log path +/// \param fileSize [IN] log file size +/// \param fileNum [IN] number of log file +/// \brief nitialize sdk +/// \Success, return 0. Failure, return ERRCode +SC_API int SC_CALL SC_Init(SCLogLevel level, const char *logPath=nullptr, unsigned int fileSize = 10485760, unsigned int fileNum = 30); + +/// \~chinese +/// \brief 释放SDK资源 +/// \return 成功时返回0,错误码 +/// \~english +/// \brief release sdk +/// \Success, return 0. Failure, return ERRCode +SC_API int SC_CALL SC_Release(); + +/// \~chinese +/// \brief 枚举设备 +/// \param pDeviceList [OUT] 设备列表 +/// \param interfaceType [IN] 待枚举的接口类型 +/// \param ctiPath [IN] cti搜索路径, 如果ctiPath不为空搜索参数指定路径下的cti, ctiPath为空搜索GENICAM_GENTL64_PATH环境变量下路径 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 1、当interfaceType = eInterfaceTypeAll 时,枚举所有接口下的在线设备\n +/// 2、当interfaceType = eInterfaceTypeCXP 时,枚举所有CXP接口下的在线设备\n +/// 3、当interfaceType = eInterfaceTypeUsb3 时,枚举所有USB接口下的在线设备\n +/// 4、当interfaceType = eInterfaceTypeCustom 时,枚举虚拟设备\n +/// \~english +/// \brief Enumerate Device +/// \param pDeviceList [OUT] Device list +/// \param interfaceType [IN] The interface type you want to find +/// \param ctiPath [IN] if ctiPath is empty, search cti from GENICAM_GENTL64_PATH, if not search cti from ctiPath +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// 1、when interfaceType = eInterfaceTypeAll, enumerate devices in all interface types\n +/// 2、when interfaceType = eInterfaceTypeCXP, enumerate devices in CXP interface \n +/// 3、when interfaceType = eInterfaceTypeUsb3, enumerate devices in USB interface\n +/// 4、when interfaceType =eInterfaceTypeCustom , enumerate virtual devices\n +SC_API int SC_CALL SC_EnumDevices(OUT SC_DeviceList* pDeviceList, IN unsigned int interfaceType, IN const char* ctiPath); + + +/// \~chinese +/// \brief 通过指定标示符创建设备句柄,如指定索引、设备键、设备自定义名 +/// \param handle [OUT] 设备句柄 +/// \param mode [IN] 创建设备方式 +/// \param pIdentifier [IN] 指定标示符(设备键、设备自定义名、索引为unsigned int类型指针强转void类型指针) +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Create device handle by specifying identifiers, such as specifying index, device key, device userID +/// \param handle [OUT] Device handle +/// \param mode [IN] Create handle mode +/// \param pIdentifier [IN] Specifying identifiers(device key, device userID, index is unsigned int* forced to void*) +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_CreateHandle(OUT SC_DEV_HANDLE* handle, IN SC_ECreateHandleMode mode, IN void* pIdentifier); + +/// \~chinese +/// \brief 销毁设备句柄 +/// \param handle [IN] 设备句柄 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Destroy device handle +/// \param handle [IN] Device handle +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_DestroyHandle(IN SC_DEV_HANDLE handle); + +/// \~chinese +/// \brief 获取设备信息 +/// \param handle [IN] 设备句柄 +/// \param pDevInfo [OUT] 设备信息 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get device information +/// \param handle [IN] Device handle +/// \param pDevInfo [OUT] Device information +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetDeviceInfo(IN SC_DEV_HANDLE handle, OUT SC_DeviceInfo* pDevInfo); + +/// \~chinese +/// \brief 打开设备 +/// \param handle [IN] 设备句柄 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Open Device +/// \param handle [IN] Device handle +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_Open(IN SC_DEV_HANDLE handle); + +/// \~chinese +/// \brief 打开设备 +/// \param handle [IN] 设备句柄 +/// \param accessPermission [IN] 控制通道权限(SC_Open默认使用accessPermissionControl权限) +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Open Device +/// \param handle [IN] Device handle +/// \param accessPermission [IN] Control access permission(Default used accessPermissionControl in SC_Open) +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_OpenEx(IN SC_DEV_HANDLE handle, IN SC_ECameraAccessPermission accessPermission); + +/// \~chinese +/// \brief 判断设备是否已打开 +/// \param handle [IN] 设备句柄 +/// \return 打开状态,返回true;关闭状态或者掉线状态,返回false +/// \~english +/// \brief Check whether device is opened or not +/// \param handle [IN] Device handle +/// \return Opened, return true. Closed or Offline, return false +SC_API bool SC_CALL SC_IsOpen(IN SC_DEV_HANDLE handle); + +/// \~chinese +/// \brief 关闭设备 +/// \param handle [IN] 设备句柄 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Close Device +/// \param handle [IN] Device handle +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_Close(IN SC_DEV_HANDLE handle); + + +/// \~chinese +/// \brief 设备连接状态事件回调注册 +/// \param handle [IN] 设备句柄,handle为NULL,对所有USB设备注册该事件 +/// \param proc [IN] 设备连接状态事件回调函数 +/// \param pUser [IN] 用户自定义数据, 可设为NULL +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 只支持一个回调函数,且设备关闭后,注册会失效,打开设备后需重新注册 +/// \~english +/// \brief Register call back function of device connection status event. +/// \param handle [IN] Device handle, if handle is NULL, register the event for all usb devices +/// \param proc [IN] Call back function of device connection status event +/// \param pUser [IN] User defined data,It can be set to NULL +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// Only one call back function is supported.\n +/// Registration becomes invalid after the device is closed, , and need to re-register after the device is opened +SC_API int SC_CALL SC_SubscribeConnectArg(IN SC_DEV_HANDLE handle, IN SC_ConnectCallBack proc, IN void* pUser); + +/// \~chinese +/// \brief 参数更新事件回调注册 +/// \param handle [IN] 设备句柄 +/// \param proc [IN] 参数更新注册的事件回调函数 +/// \param pUser [IN] 用户自定义数据, 可设为NULL +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 只支持一个回调函数,且设备关闭后,注册会失效,打开设备后需重新注册 +/// \~english +/// \brief Register call back function of parameter update event. +/// \param handle [IN] Device handle +/// \param proc [IN] Call back function of parameter update event +/// \param pUser [IN] User defined data,It can be set to NULL +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// Only one call back function is supported.\n +/// Registration becomes invalid after the device is closed, , and need to re-register after the device is opened +SC_API int SC_CALL SC_SubscribeParamUpdateArg(IN SC_DEV_HANDLE handle, IN SC_ParamUpdateCallBack proc, IN void* pUser); + +/// \~chinese +/// \brief 流通道事件回调注册 +/// \param handle [IN] 设备句柄 +/// \param proc [IN] 流通道事件回调注册函数 +/// \param pUser [IN] 用户自定义数据, 可设为NULL +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 只支持一个回调函数,且设备关闭后,注册会失效,打开设备后需重新注册 +/// \~english +/// \brief Register call back function of stream channel event. +/// \param handle [IN] Device handle +/// \param proc [IN] Call back function of stream channel event +/// \param pUser [IN] User defined data,It can be set to NULL +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// Only one call back function is supported.\n +/// Registration becomes invalid after the device is closed, , and need to re-register after the device is opened +SC_API int SC_CALL SC_SubscribeStreamArg(IN SC_DEV_HANDLE handle, IN SC_StreamCallBack proc, IN void* pUser); + +/// \~chinese +/// \brief 事件回调注册 +/// \param handle [IN] 设备句柄 +/// \param proc [IN] 事件回调注册函数 +/// \param pUser [IN] 用户自定义数据, 可设为NULL +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 只支持一个回调函数,且设备关闭后,注册会失效,打开设备后需重新注册 +/// \~english +/// \brief Register call back function of stream channel event. +/// \param handle [IN] Device handle +/// \param proc [IN] Call back function of stream channel event +/// \param pUser [IN] User defined data,It can be set to NULL +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// Only one call back function is supported.\n +/// Registration becomes invalid after the device is closed, , and need to re-register after the device is opened +SC_API int SC_CALL SC_SubscribeMessage(IN SC_DEV_HANDLE handle, IN SC_MessageCallBack proc, IN void* pUser); + + +/// \~chinese +/// \brief 设置帧数据缓存个数 +/// \param handle [IN] 设备句柄 +/// \param nSize [IN] 缓存数量 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 不能在拉流过程中设置 +/// \~english +/// \brief Set frame buffer count +/// \param handle [IN] Device handle +/// \param nSize [IN] The buffer count +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// It can not be set during frame grabbing +SC_API int SC_CALL SC_SetBufferCount(IN SC_DEV_HANDLE handle, IN unsigned int nSize); + +/// \~chinese +/// \brief 清除帧数据缓存 +/// \param handle [IN] 设备句柄 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Clear frame buffer +/// \param handle [IN] Device handle +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_ClearFrameBuffer(IN SC_DEV_HANDLE handle); + + +/// \~chinese +/// \brief 开始取流 +/// \param handle [IN] 设备句柄 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Start grabbing +/// \param handle [IN] Device handle +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_StartGrabbing(IN SC_DEV_HANDLE handle); + +/// \~chinese +/// \brief 开始取流 +/// \param handle [IN] 设备句柄 +/// \param maxImagesGrabbed [IN] 允许最多的取帧数,达到指定取帧数后停止取流,如果为0,表示忽略此参数连续取流(SC_StartGrabbing默认0) +/// \param strategy [IN] 取流策略,(SC_StartGrabbing默认使用grabStrartegySequential策略取流) +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Start grabbing +/// \param handle [IN] Device handle +/// \param maxImagesGrabbed [IN] Maximum images allowed to grab, once it reaches the limit then stop grabbing; +/// If it is 0, then ignore this parameter and start grabbing continuously(default 0 in SC_StartGrabbing) +/// \param strategy [IN] Image grabbing strategy; (Default grabStrartegySequential in SC_StartGrabbing) +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_StartGrabbingEx(IN SC_DEV_HANDLE handle, IN uint64_t maxImagesGrabbed, IN SC_EGrabStrategy strategy); + +/// \~chinese +/// \brief 判断设备是否正在取流 +/// \param handle [IN] 设备句柄 +/// \return 正在取流,返回true;不在取流,返回false +/// \~english +/// \brief Check whether device is grabbing or not +/// \param handle [IN] Device handle +/// \return Grabbing, return true. Not grabbing, return false +SC_API bool SC_CALL SC_IsGrabbing(IN SC_DEV_HANDLE handle); + +/// \~chinese +/// \brief 停止取流 +/// \param handle [IN] 设备句柄 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Stop grabbing +/// \param handle [IN] Device handle +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_StopGrabbing(IN SC_DEV_HANDLE handle); + +/// \~chinese +/// \brief 注册帧数据回调函数(异步获取帧数据机制) +/// \param handle [IN] 设备句柄 +/// \param proc [IN] 帧数据信息回调函数,建议不要在该函数中处理耗时的操作,否则会阻塞后续帧数据的实时性 +/// \param pUser [IN] 用户自定义数据, 可设为NULL +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 该异步获取帧数据机制和同步获取帧数据机制(SC_GetFrame)互斥,对于同一设备,系统中两者只能选其一\n +/// 只支持一个回调函数, 且设备关闭后,注册会失效,打开设备后需重新注册 +/// \~english +/// \brief Register frame data callback function( asynchronous getting frame data mechanism); +/// \param handle [IN] Device handle +/// \param proc [IN] Frame data information callback function; It is advised to not put time-cosuming operation in this function, +/// otherwise it will block follow-up data frames and affect real time performance +/// \param pUser [IN] User defined data,It can be set to NULL +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// This asynchronous getting frame data mechanism and synchronous getting frame data mechanism(SC_GetFrame) are mutually exclusive,\n +/// only one method can be choosed between these two in system for the same device.\n +/// Only one call back function is supported.\n +/// Registration becomes invalid after the device is closed, , and need to re-register after the device is opened +SC_API int SC_CALL SC_AttachGrabbing(IN SC_DEV_HANDLE handle, IN SC_FrameCallBack proc, IN void* pUser); + +/// \~chinese +/// \brief 获取一帧图像(同步获取帧数据机制) +/// \param handle [IN] 设备句柄 +/// \param pFrame [OUT] 帧数据信息 +/// \param timeoutMS [IN] 获取一帧图像的超时时间,INFINITE时表示无限等待,直到收到一帧数据或者停止取流。单位是毫秒 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 该接口不支持多线程调用。\n +/// 该同步获取帧机制和异步获取帧机制(SC_AttachGrabbing)互斥,对于同一设备,系统中两者只能选其一。\n +/// 使用内部缓存获取图像,需要SC_ReleaseFrame进行释放图像缓存。 +/// \~english +/// \brief Get a frame image(synchronous getting frame data mechanism) +/// \param handle [IN] Device handle +/// \param pFrame [OUT] Frame data information +/// \param timeoutMS [IN] The time out of getting one image, INFINITE means infinite wait until the one frame data is returned or stop grabbing.unit is MS +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// This interface does not support multi-threading.\n +/// This synchronous getting frame data mechanism and asynchronous getting frame data mechanism(SC_AttachGrabbing) are mutually exclusive,\n +/// only one method can be chose between these two in system for the same device.\n +/// Use internal cache to get image, need to release image buffer by SC_ReleaseFrame +SC_API int SC_CALL SC_GetFrame(IN SC_DEV_HANDLE handle, OUT SC_Frame* pFrame, IN unsigned int timeoutMS); + +/// \~chinese +/// \brief 释放图像缓存 +/// \param handle [IN] 设备句柄 +/// \param pFrame [IN] 帧数据信息 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Free image buffer +/// \param handle [IN] Device handle +/// \param pFrame [IN] Frame image data information +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_ReleaseFrame(IN SC_DEV_HANDLE handle, IN SC_Frame* pFrame); + +/// \~chinese +/// \brief 帧数据深拷贝克隆 +/// \param handle [IN] 设备句柄 +/// \param pFrame [IN] 克隆源帧数据信息 +/// \param pCloneFrame [OUT] 新的帧数据信息 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 使用SC_ReleaseFrame进行释放图像缓存。 +/// \~english +/// \brief Frame data deep clone +/// \param handle [IN] Device handle +/// \param pFrame [IN] Frame data information of clone source +/// \param pCloneFrame [OUT] New frame data information +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// Use SC_ReleaseFrame to free image buffer + +SC_API int SC_CALL SC_CloneFrame(IN SC_DEV_HANDLE handle, IN SC_Frame* pFrame, OUT SC_Frame* pCloneFrame); + + +/// \~chinese +/// \brief 获取流统计信息(SC_StartGrabbing / SC_StartGrabbing执行后调用) +/// \param handle [IN] 设备句柄 +/// \param pStreamStatsInfo [OUT] 流统计信息数据 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get stream statistics infomation(Used after excuting SC_StartGrabbing / SC_StartGrabbing) +/// \param handle [IN] Device handle +/// \param pStreamStatsInfo [OUT] Stream statistics infomation +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetStatisticsInfo(IN SC_DEV_HANDLE handle, OUT SC_StreamStatisticsInfo* pStreamStatsInfo); + +/// \~chinese +/// \brief 重置流统计信息(SC_StartGrabbing / SC_StartGrabbing执行后调用) +/// \param handle [IN] 设备句柄 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Reset stream statistics infomation(Used after excuting SC_StartGrabbing / SC_StartGrabbing) +/// \param handle [IN] Device handle +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_ResetStatisticsInfo(IN SC_DEV_HANDLE handle); + +/// \~chinese +/// \brief 判断属性是否可用 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \return 可用,返回true;不可用,返回false +/// \~english +/// \brief Check the property is available or not +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \return Available, return true. Not available, return false +SC_API bool SC_CALL SC_FeatureIsAvailable(IN SC_DEV_HANDLE handle, IN const char* pFeatureName); + +/// \~chinese +/// \brief 判断属性是否可读 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \return 可读,返回true;不可读,返回false +/// \~english +/// \brief Check the property is readable or not +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \return Readable, return true. Not readable, return false +SC_API bool SC_CALL SC_FeatureIsReadable(IN SC_DEV_HANDLE handle, IN const char* pFeatureName); + +/// \~chinese +/// \brief 判断属性是否可写 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \return 可写,返回true;不可写,返回false +/// \~english +/// \brief Check the property is writeable or not +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \return Writeable, return true. Not writeable, return false +SC_API bool SC_CALL SC_FeatureIsWriteable(IN SC_DEV_HANDLE handle, IN const char* pFeatureName); + +/// \~chinese +/// \brief 判断属性是否可流 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \return 可流,返回true;不可流,返回false +/// \~english +/// \brief Check the property is streamable or not +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \return Streamable, return true. Not streamable, return false +SC_API bool SC_CALL SC_FeatureIsStreamable(IN SC_DEV_HANDLE handle, IN const char* pFeatureName); + +/// \~chinese +/// \brief 判断属性是否有效 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \return 有效,返回true;无效,返回false +/// \~english +/// \brief Check the property is valid or not +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \return Valid, return true. Invalid, return false +SC_API bool SC_CALL SC_FeatureIsValid(IN SC_DEV_HANDLE handle, IN const char* pFeatureName); + +/// \~chinese +/// \brief 获取属性类型 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pPropertyType [OUT] 属性类型 +/// \return 获取成功,返回true;获取失败,返回false +/// \~english +/// \brief get property type +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \return get success, return true. get failed, return false +SC_API bool SC_CALL SC_GetFeatureType(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT SC_EFeatureType* pPropertyType); + +/// \~chinese +/// \brief 获取整型属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pIntValue [OUT] 整型属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get integer property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pIntValue [OUT] Integer property value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetIntFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT int64_t* pIntValue); + +/// \~chinese +/// \brief 获取整型属性可设的最小值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pIntValue [OUT] 整型属性可设的最小值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get the integer property settable minimum value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pIntValue [OUT] Integer property settable minimum value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetIntFeatureMin(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT int64_t* pIntValue); + +/// \~chinese +/// \brief 获取整型属性可设的最大值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pIntValue [OUT] 整型属性可设的最大值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get the integer property settable maximum value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pIntValue [OUT] Integer property settable maximum value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetIntFeatureMax(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT int64_t* pIntValue); + +/// \~chinese +/// \brief 获取整型属性步长 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pIntValue [OUT] 整型属性步长 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get integer property increment +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pIntValue [OUT] Integer property increment +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetIntFeatureInc(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT int64_t* pIntValue); + +/// \~chinese +/// \brief 获取浮点属性步长 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pFloatValue [OUT] 浮点属性步长 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get integer property increment +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pFloatValue [OUT] float property increment +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetFloatFeatureInc(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT double* pFloatValue); + +/// \~chinese +/// \brief 设置整型属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param intValue [IN] 待设置的整型属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Set integer property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param intValue [IN] Integer property value to be set +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_SetIntFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, IN int64_t intValue); + +/// \~chinese +/// \brief 获取浮点属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pFloatValue [OUT] 浮点属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get float property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pFloatValue [OUT] Float property value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetFloatFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT double* pFloatValue); + +/// \~chinese +/// \brief 获取浮点属性可设的最小值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pFloatValue [OUT] 浮点属性可设的最小值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get the float property settable minimum value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pFloatValue [OUT] Float property settable minimum value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetFloatFeatureMin(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT double* pFloatValue); + +/// \~chinese +/// \brief 获取浮点属性可设的最大值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pFloatValue [OUT] 浮点属性可设的最大值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get the float property settable maximum value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pFloatValue [OUT] Float property settable maximum value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetFloatFeatureMax(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT double* pFloatValue); + +/// \~chinese +/// \brief 设置浮点属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param floatValue [IN] 待设置的浮点属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Set float property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param floatValue [IN] Float property value to be set +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_SetFloatFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, IN double floatValue); + +/// \~chinese +/// \brief 获取布尔属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pBoolValue [OUT] 布尔属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get boolean property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pBoolValue [OUT] Boolean property value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetBoolFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT bool* pBoolValue); + +/// \~chinese +/// \brief 设置布尔属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param boolValue [IN] 待设置的布尔属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Set boolean property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param boolValue [IN] Boolean property value to be set +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_SetBoolFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, IN bool boolValue); + +/// \~chinese +/// \brief 获取枚举属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pEnumValue [OUT] 枚举属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get enumeration property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pEnumValue [OUT] Enumeration property value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetEnumFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT uint64_t* pEnumValue); + +/// \~chinese +/// \brief 设置枚举属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param enumValue [IN] 待设置的枚举属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Set enumeration property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param enumValue [IN] Enumeration property value to be set +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_SetEnumFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, IN uint64_t enumValue); + +/// \~chinese +/// \brief 获取枚举属性symbol值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pEnumSymbol [OUT] 枚举属性symbol值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get enumeration property symbol value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pEnumSymbol [OUT] Enumeration property symbol value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetEnumFeatureSymbol(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT SC_String* pEnumSymbol); + +/// \~chinese +/// \brief 设置枚举属性symbol值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pEnumSymbol [IN] 待设置的枚举属性symbol值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Set enumeration property symbol value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pEnumSymbol [IN] Enumeration property symbol value to be set +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_SetEnumFeatureSymbol(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, IN const char* pEnumSymbol); + +/// \~chinese +/// \brief 获取枚举属性的可设枚举值的个数 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pEntryNum [OUT] 枚举属性的可设枚举值的个数 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get the number of enumeration property settable enumeration +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pEntryNum [OUT] The number of enumeration property settable enumeration value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetEnumFeatureEntryNum(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT unsigned int* pEntryNum); + +/// \~chinese +/// \brief 获取枚举属性的可设枚举值列表 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pEnumEntryList [OUT] 枚举属性的可设枚举值列表 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get settable enumeration value list of enumeration property +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pEnumEntryList [OUT] Settable enumeration value list of enumeration property +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetEnumFeatureEntrys(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, IN_OUT SC_EnumEntryList* pEnumEntryList); + +/// \~chinese +/// \brief 获取字符串属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pStringValue [OUT] 字符串属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Get string property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pStringValue [OUT] String property value +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_GetStringFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, OUT SC_String* pStringValue); + +/// \~chinese +/// \brief 设置字符串属性值 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \param pStringValue [IN] 待设置的字符串属性值 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Set string property value +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \param pStringValue [IN] String property value to be set +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_SetStringFeatureValue(IN SC_DEV_HANDLE handle, IN const char* pFeatureName, IN const char* pStringValue); + +/// \~chinese +/// \brief 执行命令属性 +/// \param handle [IN] 设备句柄 +/// \param pFeatureName [IN] 属性名 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Execute command property +/// \param handle [IN] Device handle +/// \param pFeatureName [IN] Feature name +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_ExecuteCommandFeature(IN SC_DEV_HANDLE handle, IN const char* pFeatureName); + +/// \~chinese +/// \brief 像素格式转换 +/// \param handle [IN] 设备句柄 +/// \param pstPixelConvertParam [IN][OUT] 像素格式转换参数结构体 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 只支持转化成目标像素格式gvspPixelRGB8 / gvspPixelBGR8 / gvspPixelMono8 / gvspPixelBGRA8\n +/// 通过该接口将原始图像数据转换成用户所需的像素格式并存放在调用者指定内存中。\n +/// 像素格式为YUV411Packed的时,图像宽须能被4整除\n +/// 像素格式为YUV422Packed的时,图像宽须能被2整除\n +/// 像素格式为YUYVPacked的时,图像宽须能被2整除\n +/// 转换后的图像:数据存储是从最上面第一行开始的,这个是相机数据的默认存储方向 +/// \~english +/// \brief Pixel format conversion +/// \param handle [IN] Device handle +/// \param pstPixelConvertParam [IN][OUT] Convert Pixel Type parameter structure +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// Only support converting to destination pixel format of gvspPixelRGB8 / gvspPixelBGR8 / gvspPixelMono8 / gvspPixelBGRA8\n +/// This API is used to transform the collected original data to pixel format and save to specified memory by caller.\n +/// pixelFormat:YUV411Packed, the image width is divisible by 4\n +/// pixelFormat : YUV422Packed, the image width is divisible by 2\n +/// pixelFormat : YUYVPacked,the image width is divisible by 2\n +/// converted image:The first row of the image is located at the start of the image buffer.This is the default for image taken by a camera. +SC_API int SC_CALL SC_PixelConvert(IN SC_DEV_HANDLE handle, IN_OUT SC_PixelConvertParam* pstPixelConvertParam); + + +/// \~chinese +/// \brief 图像翻转 +/// \param handle [IN] 设备句柄 +/// \param pstFlipImageParam [IN][OUT] 图像翻转参数结构体 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 只支持像素格式gvspPixelRGB8 / gvspPixelBGR8 / gvspPixelMono8的图像的垂直和水平翻转。\n +/// 通过该接口将原始图像数据翻转后并存放在调用者指定内存中。 +/// \~english +/// \brief Flip image +/// \param handle [IN] Device handle +/// \param pstFlipImageParam [IN][OUT] Flip image parameter structure +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// Only support vertical and horizontal flip of image data with gvspPixelRGB8 / gvspPixelBGR8 / gvspPixelMono8 pixel format.\n +/// This API is used to flip original data and save to specified memory by caller. +SC_API int SC_CALL SC_FlipImage(IN SC_DEV_HANDLE handle, IN_OUT SC_FlipImageParam* pstFlipImageParam); + +/// \~chinese +/// \brief 图像顺时针旋转 +/// \param handle [IN] 设备句柄 +/// \param pstRotateImageParam [IN][OUT] 图像旋转参数结构体 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \remarks +/// 只支持gvspPixelRGB8 / gvspPixelBGR8 / gvspPixelMono8格式数据的90/180/270度顺时针旋转。\n +/// 通过该接口将原始图像数据旋转后并存放在调用者指定内存中。 +/// \~english +/// \brief Rotate image clockwise +/// \param handle [IN] Device handle +/// \param pstRotateImageParam [IN][OUT] Rotate image parameter structure +/// \return Success, return SC_OK. Failure, return error code +/// \remarks +/// Only support 90/180/270 clockwise rotation of data in the gvspPixelRGB8 / gvspPixelBGR8 / gvspPixelMono8 format.\n +/// This API is used to rotation original data and save to specified memory by caller. +SC_API int SC_CALL SC_RotateImage(IN SC_DEV_HANDLE handle, IN_OUT SC_RotateImageParam* pstRotateImageParam); + + +/// \~chinese +/// \brief 下载设备描述XML文件,并保存到指定路径,如:D:\\xml.zip +/// \param handle [IN] 设备句柄 +/// \param pFullFileName [IN] 文件要保存的路径 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Download device description XML file, and save the files to specified path. e.g. D:\\xml.zip +/// \param handle [IN] Device handle +/// \param pFullFileName [IN] The full paths where the downloaded XMl files would be saved to +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_DownLoadGenICamXML(IN SC_DEV_HANDLE handle, IN const char* pFullFileName); + +/// \~chinese +/// \brief 保存设备配置到指定的位置。同名文件已存在时,覆盖。 +/// \param handle [IN] 设备句柄 +/// \param pFullFileName [IN] 导出的设备配置文件全名(含路径),如:D:\\config.xml 或 D:\\config.mvcfg +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief Save the configuration of the device. Overwrite the file if exists. +/// \param handle [IN] Device handle +/// \param pFullFileName [IN] The full path name of the property file(xml). e.g. D:\\config.xml or D:\\config.mvcfg +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_SaveDeviceCfg(IN SC_DEV_HANDLE handle, IN const char* pFullFileName); + +/// \~chinese +/// \brief 从文件加载设备xml配置 +/// \param handle [IN] 设备句柄 +/// \param pFullFileName [IN] 设备配置(xml)文件全名(含路径),如:D:\\config.xml 或 D:\\config.mvcfg +/// \param pErrorList [OUT] 加载失败的属性名列表。存放加载失败的属性上限为SC_MAX_ERROR_LIST_NUM。 +/// \return 成功,返回SC_OK;错误,返回错误码 +/// \~english +/// \brief load the configuration of the device +/// \param handle [IN] Device handle +/// \param pFullFileName [IN] The full path name of the property file(xml). e.g. D:\\config.xml or D:\\config.mvcfg +/// \param pErrorList [OUT] The list of load failed properties. The failed to load properties list up to SC_MAX_ERROR_LIST_NUM. +/// \return Success, return SC_OK. Failure, return error code +SC_API int SC_CALL SC_LoadDeviceCfg(IN SC_DEV_HANDLE handle, IN const char* pFullFileName, OUT SC_ErrorList* pErrorList); + +/// \~chinese +/// \brief 打开录像 +/// \param handle [IN] 设备句柄 +/// \param pstRecordParam [IN] 录像参数结构体 +/// \return 成功,返回IMV_OK;错误,返回错误码 +/// \~english +/// \brief Open record +/// \param handle [IN] Device handle +/// \param pstRecordParam [IN] Record param structure +/// \return Success, return IMV_OK. Failure, return error code +SC_API int SC_CALL SC_OpenRecord(IN SC_DEV_HANDLE handle, IN SC_RecordParam* pstRecordParam, bool inMemory = true); + +/// \~chinese +/// \brief 关闭录像 +/// \param handle [IN] 设备句柄 +/// \return 成功,返回IMV_OK;错误,返回错误码 +/// \~english +/// \brief Close record +/// \param handle [IN] Device handle +/// \return Success, return IMV_OK. Failure, return error code +SC_API int SC_CALL SC_CloseRecord(IN SC_DEV_HANDLE handle); + + + +// for labview +SC_API int SC_CALL SC_EnumDevicesLabView(IN_OUT SC_DeviceInfoLabView *info, IN unsigned int index); +SC_API int SC_CALL SC_EnumDevicesNumLabView(OUT unsigned int *numDevice, IN unsigned int interfaceType, IN const char* ctiPath); +SC_API int SC_CALL SC_GetFrameLabView(IN SC_DEV_HANDLE handle, OUT SC_FrameLabView* pFrame, unsigned char* pData, unsigned int *dataLen); +SC_API int SC_CALL SC_ConvertGrey16ToGrey8(IN SC_DEV_HANDLE handle, IN SC_FrameLabView *inHeader, IN unsigned char* inputData, OUT SC_FrameLabView *outHeader, OUT unsigned char *outputData); +SC_API int SC_CALL SC_ConvertGrey16ToRGB(IN SC_DEV_HANDLE handle, unsigned int bitNum,IN SC_FrameLabView *inHeader, IN unsigned char* inputData, OUT SC_FrameLabView *outHeader, OUT unsigned char *outputData); +SC_API int SC_CALL SC_OpenRecordLabView(IN SC_DEV_HANDLE handle, IN const char* path, IN unsigned int num, IN unsigned char inMemory); + + +// for test tool +#ifdef PRIVATE_ +SC_API bool SC_CALL printCXPRegInfo(IN SC_DEV_HANDLE handle, IN CXPRegInfo* infos, IN unsigned int num); +SC_API bool SC_CALL WriteRegister(IN SC_DEV_HANDLE handle, IN uint64_t addr, IN void *data, IN size_t BufLen); +SC_API int SC_CALL setFrameRate(IN SC_DEV_HANDLE handle, IN unsigned int frameRate); +SC_API int SC_CALL setLocalXmlPath(IN SC_DEV_HANDLE handle, const char* path); +SC_API int SC_CALL SC_SetEvent(IN SC_DEV_HANDLE handle, IN const char *name); + +// upgrade +SC_API int SC_CALL startUpgrade(IN SC_DEV_HANDLE handle); +SC_API int SC_CALL stopUpgrade(IN SC_DEV_HANDLE handle); +SC_API int SC_CALL setUpgradeCallBack(IN SC_DEV_HANDLE handle, UpgradeProcessCB cb, void *user); +SC_API int SC_CALL setUpgradeFilePath(IN SC_DEV_HANDLE handle, const char* filePath, UpgradeFileType fileType); +SC_API int SC_CALL setUpgradeStartPos(IN SC_DEV_HANDLE handle, unsigned long long startPos); +SC_API int SC_CALL subscribeExportNotify(IN SC_DEV_HANDLE handle, IN ExportEventCB proc, IN void* pUser); +SC_API int SC_CALL eraseEEPROM(IN SC_DEV_HANDLE handle); +SC_API int SC_CALL downloadBootImg(IN SC_DEV_HANDLE handle); +SC_API int SC_CALL writeSerialNumber(IN SC_DEV_HANDLE handle, char sn[16]); + +#endif + + +#ifdef __cplusplus +} +#endif + +#endif // __SC_API_H__ \ No newline at end of file diff --git a/DeviceAdapters/Revealer/SCDefines.h b/DeviceAdapters/Revealer/SCDefines.h new file mode 100644 index 000000000..3e43b572a --- /dev/null +++ b/DeviceAdapters/Revealer/SCDefines.h @@ -0,0 +1,922 @@ +#ifndef __SC_DEFINES_H__ +#define __SC_DEFINES_H__ + +#ifdef WIN32 +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; +#else +#include +#endif + +#ifndef IN +#define IN ///< \~chinese 输入型参数 \~english Input param +#endif + +#ifndef OUT +#define OUT ///< \~chinese 输出型参数 \~english Output param +#endif + +#ifndef IN_OUT +#define IN_OUT ///< \~chinese 输入/输出型参数 \~english Input/Output param +#endif + +#ifndef __cplusplus +typedef char bool; +#define true 1 +#define false 0 +#endif + +/// \~chinese +/// \brief 错误码 +/// \~english +/// \brief Error code +#define SC_OK 0 ///< \~chinese 成功,无错误 \~english Successed, no error +#define SC_ERROR -101 ///< \~chinese 通用的错误 \~english Generic error +#define SC_INVALID_HANDLE -102 ///< \~chinese 错误或无效的句柄 \~english Error or invalid handle +#define SC_INVALID_PARAM -103 ///< \~chinese 错误的参数 \~english Incorrect parameter +#define SC_INVALID_FRAME_HANDLE -104 ///< \~chinese 错误或无效的帧句柄 \~english Error or invalid frame handle +#define SC_INVALID_FRAME -105 ///< \~chinese 无效的帧 \~english Invalid frame +#define SC_INVALID_RESOURCE -106 ///< \~chinese 相机/事件/流等资源无效 \~english Camera/Event/Stream and so on resource invalid +#define SC_INVALID_IP -107 ///< \~chinese 设备与主机的IP网段不匹配 \~english Device's and PC's subnet is mismatch +#define SC_NO_MEMORY -108 ///< \~chinese 内存不足 \~english Malloc memery failed +#define SC_INSUFFICIENT_MEMORY -109 ///< \~chinese 传入的内存空间不足 \~english Insufficient memory +#define SC_ERROR_PROPERTY_TYPE -110 ///< \~chinese 属性类型错误 \~english Property type error +#define SC_INVALID_ACCESS -111 ///< \~chinese 属性不可访问、或不能读/写、或读/写失败 \~english Property not accessible, or not be read/written, or read/written failed +#define SC_INVALID_RANGE -112 ///< \~chinese 属性值超出范围、或者不是步长整数倍 \~english The property's value is out of range, or is not integer multiple of the step +#define SC_NOT_SUPPORT -113 ///< \~chinese 设备不支持的功能 \~english Device not supported function +#define SC_NOT_IMPLEMENTED -114 ///< \~chinese 功能未实现 \~english function not implement +//#define SC_RESTORE_STREAM -114 ///< \~chinese 取图恢复中 \~english Device restore stream +//#define SC_RECONNECT_DEVICE -115 ///< \~chinese 重连恢复中 \~english Device reconnect +#define SC_TIMEOUT -115 ///< \~chinese 超时 \~english Timeout +#define SC_BUSY -116 //// \~chinese 处于忙碌状态 \~english busy +#define SC_ACCESS_DENIED -117 //// \~chinese 访问设备被拒绝 \~english access denied +#define SC_INVALID_NODEMAP -118 //// \~chinese nodemap非法或不存在 \~english nodemap invalid or missing +#define SC_INVALID_ERRCODE -300 + +#define SC_MAX_DEVICE_ENUM_NUM 100 ///< \~chinese 支持设备最大个数 \~english The maximum number of supported devices +#define SC_MAX_STRING_LENTH 256 ///< \~chinese 字符串最大长度 \~english The maximum length of string +#define SC_MAX_ERROR_LIST_NUM 128 ///< \~chinese 失败属性列表最大长度 \~english The maximum size of failed properties list +#define SC_MAX_PATH_LENGTH 1024 +#define SC_MAX_EVENT_LEN 1024 + +typedef void* SC_DEV_HANDLE; ///< \~chinese 设备句柄 \~english Device handle +typedef void* SC_FRAME_HANDLE; ///< \~chinese 帧句柄 \~english Frame handle + +/// \~chinese +///枚举:属性类型 +/// \~english +///Enumeration: property type +typedef enum _SC_EFeatureType +{ + featureInt = 0x10000000, ///< \~chinese 整型数 \~english Integer + featureFloat = 0x20000000, ///< \~chinese 浮点数 \~english Float + featureEnum = 0x30000000, ///< \~chinese 枚举 \~english Enumeration + featureBool = 0x40000000, ///< \~chinese 布尔 \~english Bool + featureString = 0x50000000, ///< \~chinese 字符串 \~english String + featureCommand = 0x60000000, ///< \~chinese 命令 \~english Command + featureGroup = 0x70000000, ///< \~chinese 分组节点 \~english Group Node + featureReg = 0x80000000, ///< \~chinese 寄存器节点 \~english Register Node + + featureUndefined = 0x90000000 ///< \~chinese 未定义 \~english Undefined +} SC_EFeatureType; + +/// \~chinese +///枚举:接口类型 +/// \~english +///Enumeration: interface type +typedef enum _SC_EInterfaceType +{ + eInterfaceTypeCXP = 0x00000001, ///< \~chinese 网卡接口类型 \~english NIC type + eInterfaceTypeUsb3 = 0x00000002, ///< \~chinese USB3.0接口类型 \~english USB3.0 interface type + //eIinterfaceTypeCL = 0x00000004, ///< \~chinese CAMERALINK接口类型 \~english Cameralink interface type + //eIinterfaceTypePCIe = 0x00000008, ///< \~chinese PCIe接口类型 \~english PCIe interface type + eInterfaceTypeCustom = 0x0000004, + eInterfaceTypeAll = 0x00000000, ///< \~chinese 忽略接口类型(CAMERALINK接口除外) \~english All types interface type(Excluding CAMERALINK) + eIInterfaceInvalidType = 0xFFFFFFFF ///< \~chinese 无效接口类型 \~english Invalid interface type +} SC_EInterfaceType; + +/// \~chinese +///枚举:设备类型 +/// \~english +///Enumeration: device type +typedef enum _SC_ECameraType +{ + eTypeGigeCamera = 0, ///< \~chinese GIGE相机 \~english GigE Vision Camera + eTypeU3vCamera = 1, ///< \~chinese USB3.0相机 \~english USB3.0 Vision Camera + eTypeCLCamera = 2, ///< \~chinese CAMERALINK 相机 \~english Cameralink camera + eTypePCIeCamera = 3, ///< \~chinese PCIe相机 \~english PCIe Camera + eTypeCXPCamera = 4, + eTypeCustom = 5, + eTypeVirtual = 6, + eTypeUndefinedCamera = 255 ///< \~chinese 未知类型 \~english Undefined Camera +} SC_ECameraType; + +/// \~chinese +///枚举:创建句柄方式 +/// \~english +///Enumeration: Create handle mode +typedef enum _SC_ECreateHandleMode +{ + eModeByIndex = 0, ///< \~chinese 通过已枚举设备的索引(从0开始,比如 0, 1, 2...) \~english By index of enumerated devices (Start from 0, such as 0, 1, 2...) + eModeByCameraKey, ///< \~chinese 通过设备键"厂商:序列号" \~english By device's key "vendor:serial number" + eModeByDeviceUserID, ///< \~chinese 通过设备自定义名 \~english By device userID + eModeByIPAddress, ///< \~chinese 通过设备IP地址 \~english By device IP address. +} SC_ECreateHandleMode; + +/// \~chinese +///枚举:访问权限 +/// \~english +///Enumeration: access permission +typedef enum _SC_ECameraAccessPermission +{ + accessPermissionUnknown = 0, ///< \~chinese 无法确定 \~english Value not known; indeterminate. + accessNone = 1, + accessPermissionMonitor, ///< \~chinese 非独占访问权限,以读的模式打开设备 \~english Non-Exclusive Read Permission, open device with read mode + accessPermissionControl, ///< \~chinese 非独占控制权限,其他App允许读取所有寄存器 \~english Non-Exclusive Control Permission, allows other APP reading all registers + accessPermissionExclusive, ///< \~chinese 独占访问权限 \~english Exclusive Access Permission + accessPermissionControlWithSwitchover, ///< \~chinese 切换控制访问权限 \~english Control access with switchover enabled. + accessPermissionUndefined ///< \~chinese 未定义访问权限 \~english Undefined Access Permission +} SC_ECameraAccessPermission; + +/// \~chinese +///枚举:抓图策略 +/// \~english +///Enumeration: grab strartegy +typedef enum _SC_EGrabStrategy +{ + grabStrartegySequential = 0, ///< \~chinese 按到达顺序处理图片 \~english The images are processed in the order of their arrival + grabStrartegyLatestImage = 1, ///< \~chinese 获取最新的图片 \~english Get latest image + grabStrartegyUpcomingImage = 2, ///< \~chinese 等待获取下一张图片(只针对GigE相机) \~english Waiting for next image(GigE only) + grabStrartegyUndefined ///< \~chinese 未定义 \~english Undefined +} SC_EGrabStrategy; + +/// \~chinese +///枚举:流事件状态 +/// \~english +/// Enumeration:stream event status +typedef enum _SC_EEventStatus +{ + streamEventNormal = 1, ///< \~chinese 正常流事件 \~english Normal stream event + streamEventLostFrame = 2, ///< \~chinese 丢帧事件 \~english Lost frame event + streamEventLostPacket = 3, ///< \~chinese 丢包事件 \~english Lost packet event + streamEventImageError = 4, ///< \~chinese 图像错误事件 \~english Error image event + streamEventStreamChannelError = 5, ///< \~chinese 取流错误事件 \~english Stream channel error event + streamEventTooManyConsecutiveResends = 6, ///< \~chinese 太多连续重传 \~english Too many consecutive resends event + streamEventTooManyLostPacket = 7 ///< \~chinese 太多丢包 \~english Too many lost packet event +} SC_EEventStatus; + +/// \~chinese +///枚举:图像转换Bayer格式所用的算法 +/// \~english +/// Enumeration:alorithm used for Bayer demosaic +typedef enum _SC_EBayerDemosaic +{ + demosaicNearestNeighbor, ///< \~chinese 最近邻 \~english Nearest neighbor + demosaicBilinear, ///< \~chinese 双线性 \~english Bilinear + demosaicEdgeSensing, ///< \~chinese 边缘检测 \~english Edge sensing + demosaicNotSupport = 255, ///< \~chinese 不支持 \~english Not support +} SC_EBayerDemosaic; + +/// \~chinese +///枚举:事件类型 +/// \~english +/// Enumeration:event type +typedef enum _SC_EVType +{ + offLine, ///< \~chinese 设备离线通知 \~english device offline notification + onLine, ///< \~chinese 设备在线通知 \~english device online notification +} SC_EVType; + +/// \~chinese +///枚举:视频格式 +/// \~english +/// Enumeration:Video format +typedef enum _SC_EVideoType +{ + typeVideoFormatTIFF = 0, /// < \~chinese TIFF格式 \~english support TIFF + typeVideoFormatBMP = 0, /// < \~chinese BMP格式 \~english support BMP + typeVideoFormatRHVD = 0, /// < \~chinese RHVD格式 \~english support RHVD + typeVideoFormatNotSupport = 255 ///< \~chinese 不支持 \~english Not support +} SC_EVideoType; + +/// \~chinese +///枚举:图像翻转类型 +/// \~english +/// Enumeration:Image flip type +typedef enum _SC_EFlipType +{ + typeFlipVertical, ///< \~chinese 垂直(Y轴)翻转 \~english Vertical(Y-axis) flip + typeFlipHorizontal ///< \~chinese 水平(X轴)翻转 \~english Horizontal(X-axis) flip +} SC_EFlipType; + +/// \~chinese +///枚举:顺时针旋转角度 +/// \~english +/// Enumeration:Rotation angle clockwise +typedef enum _SC_ERotationAngle +{ + rotationAngle90, ///< \~chinese 顺时针旋转90度 \~english Rotate 90 degree clockwise + rotationAngle180, ///< \~chinese 顺时针旋转180度 \~english Rotate 180 degree clockwise + rotationAngle270, ///< \~chinese 顺时针旋转270度 \~english Rotate 270 degree clockwise +} SC_ERotationAngle; + + +typedef enum _SC_MessageType +{ + eFrameLost, + eExportStatistic, + eGenericMessage, + +} MessageType; + +#define SC_GVSP_PIX_MONO 0x01000000 +#define SC_GVSP_PIX_RGB 0x02000000 +#define SC_GVSP_PIX_COLOR 0x02000000 +#define SC_GVSP_PIX_CUSTOM 0x80000000 +#define SC_GVSP_PIX_COLOR_MASK 0xFF000000 + +// Indicate effective number of bits occupied by the pixel (including padding). +// This can be used to compute amount of memory required to store an image. +#define SC_GVSP_PIX_OCCUPY1BIT 0x00010000 +#define SC_GVSP_PIX_OCCUPY2BIT 0x00020000 +#define SC_GVSP_PIX_OCCUPY4BIT 0x00040000 +#define SC_GVSP_PIX_OCCUPY8BIT 0x00080000 +#define SC_GVSP_PIX_OCCUPY12BIT 0x000C0000 +#define SC_GVSP_PIX_OCCUPY16BIT 0x00100000 +#define SC_GVSP_PIX_OCCUPY24BIT 0x00180000 +#define SC_GVSP_PIX_OCCUPY32BIT 0x00200000 +#define SC_GVSP_PIX_OCCUPY36BIT 0x00240000 +#define SC_GVSP_PIX_OCCUPY48BIT 0x00300000 + +/// \~chinese +///枚举:图像格式 +/// \~english +/// Enumeration:image format +typedef enum _SC_EPixelType +{ + // Undefined pixel type + gvspPixelTypeUndefined = -1, + + // Mono Format + gvspPixelMono1p = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY1BIT | 0x0037), + gvspPixelMono2p = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY2BIT | 0x0038), + gvspPixelMono4p = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY4BIT | 0x0039), + gvspPixelMono8 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY8BIT | 0x0001), + gvspPixelMono8S = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY8BIT | 0x0002), + gvspPixelMono10 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0003), + gvspPixelMono10Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x0004), + gvspPixelMono12 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0005), + gvspPixelMono12Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x0006), + gvspPixelMono14 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0025), + gvspPixelMono16 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0007), + + // Bayer Format + gvspPixelBayGR8 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY8BIT | 0x0008), + gvspPixelBayRG8 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY8BIT | 0x0009), + gvspPixelBayGB8 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY8BIT | 0x000A), + gvspPixelBayBG8 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY8BIT | 0x000B), + gvspPixelBayGR10 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x000C), + gvspPixelBayRG10 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x000D), + gvspPixelBayGB10 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x000E), + gvspPixelBayBG10 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x000F), + gvspPixelBayGR12 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0010), + gvspPixelBayRG12 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0011), + gvspPixelBayGB12 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0012), + gvspPixelBayBG12 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0013), + gvspPixelBayGR10Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x0026), + gvspPixelBayRG10Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x0027), + gvspPixelBayGB10Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x0028), + gvspPixelBayBG10Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x0029), + gvspPixelBayGR12Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x002A), + gvspPixelBayRG12Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x002B), + gvspPixelBayGB12Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x002C), + gvspPixelBayBG12Packed = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY12BIT | 0x002D), + gvspPixelBayGR16 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x002E), + gvspPixelBayRG16 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x002F), + gvspPixelBayGB16 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0030), + gvspPixelBayBG16 = (SC_GVSP_PIX_MONO | SC_GVSP_PIX_OCCUPY16BIT | 0x0031), + + // RGB Format + gvspPixelRGB8 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY24BIT | 0x0014), + gvspPixelBGR8 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY24BIT | 0x0015), + gvspPixelRGBA8 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY32BIT | 0x0016), + gvspPixelBGRA8 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY32BIT | 0x0017), + gvspPixelRGB10 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY48BIT | 0x0018), + gvspPixelBGR10 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY48BIT | 0x0019), + gvspPixelRGB12 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY48BIT | 0x001A), + gvspPixelBGR12 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY48BIT | 0x001B), + gvspPixelRGB16 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY48BIT | 0x0033), + gvspPixelRGB10V1Packed = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY32BIT | 0x001C), + gvspPixelRGB10P32 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY32BIT | 0x001D), + gvspPixelRGB12V1Packed = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY36BIT | 0X0034), + gvspPixelRGB565P = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0x0035), + gvspPixelBGR565P = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0X0036), + + // YVR Format + gvspPixelYUV411_8_UYYVYY = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY12BIT | 0x001E), + gvspPixelYUV422_8_UYVY = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0x001F), + gvspPixelYUV422_8 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0x0032), + gvspPixelYUV8_UYV = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY24BIT | 0x0020), + gvspPixelYCbCr8CbYCr = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY24BIT | 0x003A), + gvspPixelYCbCr422_8 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0x003B), + gvspPixelYCbCr422_8_CbYCrY = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0x0043), + gvspPixelYCbCr411_8_CbYYCrYY = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY12BIT | 0x003C), + gvspPixelYCbCr601_8_CbYCr = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY24BIT | 0x003D), + gvspPixelYCbCr601_422_8 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0x003E), + gvspPixelYCbCr601_422_8_CbYCrY = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0x0044), + gvspPixelYCbCr601_411_8_CbYYCrYY = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY12BIT | 0x003F), + gvspPixelYCbCr709_8_CbYCr = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY24BIT | 0x0040), + gvspPixelYCbCr709_422_8 = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0x0041), + gvspPixelYCbCr709_422_8_CbYCrY = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY16BIT | 0x0045), + gvspPixelYCbCr709_411_8_CbYYCrYY = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY12BIT | 0x0042), + + // RGB Planar + gvspPixelRGB8Planar = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY24BIT | 0x0021), + gvspPixelRGB10Planar = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY48BIT | 0x0022), + gvspPixelRGB12Planar = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY48BIT | 0x0023), + gvspPixelRGB16Planar = (SC_GVSP_PIX_COLOR | SC_GVSP_PIX_OCCUPY48BIT | 0x0024), + + //BayerRG10p和BayerRG12p格式,针对特定项目临时添加,请不要使用 + //BayerRG10p and BayerRG12p, currently used for specific project, please do not use them + gvspPixelBayRG10p = 0x010A0058, + gvspPixelBayRG12p = 0x010c0059, + + //mono1c格式,自定义格式 + //mono1c, customized image format, used for binary output + gvspPixelMono1c = 0x012000FF, + + //mono1e格式,自定义格式,用来显示连通域 + //mono1e, customized image format, used for displaying connected domain + gvspPixelMono1e = 0x01080FFF +} SC_EPixelType; + +/// \~chinese +/// \brief 传输模式(gige) +/// \~english +/// \brief Transmission type (gige) +typedef enum _SC_TransmissionType +{ + transTypeUnicast, ///< \~chinese 单播模式 \~english Unicast Mode + transTypeMulticast ///< \~chinese 组播模式 \~english Multicast Mode +} SC_TransmissionType; + +/// \~chinese +/// \brief 字符串信息 +/// \~english +/// \brief String information +typedef struct _SC_String +{ + char str[SC_MAX_STRING_LENTH]; ///< \~chinese 字符串.长度不超过256 \~english Strings and the maximum length of strings is 255. +} SC_String; + +/// \~chinese +/// \brief USB接口信息 +/// \~english +/// \brief USB interface information +typedef struct _SC_UsbInterfaceInfo +{ + char description[SC_MAX_STRING_LENTH]; ///< \~chinese USB接口描述信息 \~english USB interface description + char vendorID[SC_MAX_STRING_LENTH]; ///< \~chinese USB接口Vendor ID \~english USB interface Vendor ID + char deviceID[SC_MAX_STRING_LENTH]; ///< \~chinese USB接口设备ID \~english USB interface Device ID + char subsystemID[SC_MAX_STRING_LENTH]; ///< \~chinese USB接口Subsystem ID \~english USB interface Subsystem ID + char revision[SC_MAX_STRING_LENTH]; ///< \~chinese USB接口Revision \~english USB interface Revision + char speed[SC_MAX_STRING_LENTH]; ///< \~chinese USB接口speed \~english USB interface speed + char chReserved[4][SC_MAX_STRING_LENTH]; ///< 保留 \~english Reserved field +} SC_UsbInterfaceInfo; + +/// \~chinese +/// \brief Usb设备信息 +/// \~english +/// \brief Usb device information +typedef struct _SC_UsbDeviceInfo +{ + bool bLowSpeedSupported; ///< \~chinese true支持,false不支持,其他值 非法。 \~english true support,false not supported,other invalid + bool bFullSpeedSupported; ///< \~chinese true支持,false不支持,其他值 非法。 \~english true support,false not supported,other invalid + bool bHighSpeedSupported; ///< \~chinese true支持,false不支持,其他值 非法。 \~english true support,false not supported,other invalid + bool bSuperSpeedSupported; ///< \~chinese true支持,false不支持,其他值 非法。 \~english true support,false not supported,other invalid + bool bDriverInstalled; ///< \~chinese true安装,false未安装,其他值 非法。 \~english true support,false not supported,other invalid + bool boolReserved[3]; ///< \~chinese 保留 + unsigned int Reserved[4]; ///< \~chinese 保留 \~english Reserved field + + char configurationValid[SC_MAX_STRING_LENTH]; ///< \~chinese 配置有效性 \~english Configuration Valid + char genCPVersion[SC_MAX_STRING_LENTH]; ///< \~chinese GenCP 版本 \~english GenCP Version + char u3vVersion[SC_MAX_STRING_LENTH]; ///< \~chinese U3V 版本号 \~english U3v Version + char deviceGUID[SC_MAX_STRING_LENTH]; ///< \~chinese 设备引导号 \~english Device guid number + char familyName[SC_MAX_STRING_LENTH]; ///< \~chinese 设备系列号 \~english Device serial number + char u3vSerialNumber[SC_MAX_STRING_LENTH]; ///< \~chinese 设备序列号 \~english Device SerialNumber + char speed[SC_MAX_STRING_LENTH]; ///< \~chinese 设备传输速度 \~english Device transmission speed + char maxPower[SC_MAX_STRING_LENTH]; ///< \~chinese 设备最大供电量 \~english Maximum power supply of device + char usbProtocol[SC_MAX_STRING_LENTH]; ///< \~chinese 设备USB协议版本 \~english usb protocol + char chReserved[3][SC_MAX_STRING_LENTH]; ///< \~chinese 保留 \~english Reserved field + +} SC_UsbDeviceInfo; + +/// \~chinese +/// \brief 设备通用信息 +/// \~english +/// \brief Device general information +typedef struct _SC_DeviceInfo +{ + SC_ECameraType nCameraType; ///< \~chinese 设备类别 \~english Camera type + int nCameraReserved[5]; ///< \~chinese 保留 \~english Reserved field + + char cameraKey[SC_MAX_STRING_LENTH]; ///< \~chinese 厂商:序列号 \~english Camera key + char cameraName[SC_MAX_STRING_LENTH]; ///< \~chinese 用户自定义名 \~english UserDefinedName + char serialNumber[SC_MAX_STRING_LENTH]; ///< \~chinese 设备序列号 \~english Device SerialNumber + char vendorName[SC_MAX_STRING_LENTH]; ///< \~chinese 厂商 \~english Camera Vendor + char modelName[SC_MAX_STRING_LENTH]; ///< \~chinese 设备型号 \~english Device model + char manufactureInfo[SC_MAX_STRING_LENTH]; ///< \~chinese 设备制造信息 \~english Device ManufactureInfo + char deviceVersion[SC_MAX_STRING_LENTH]; ///< \~chinese 设备版本 \~english Device Version + char cameraReserved[5][SC_MAX_STRING_LENTH]; ///< \~chinese 保留 \~english Reserved field + char ctiPath[SC_MAX_PATH_LENGTH]; + SC_UsbDeviceInfo usbDeviceInfo; ///< \~chinese Usb设备信息 \~english Usb Device Information + + SC_EInterfaceType nInterfaceType; ///< \~chinese 接口类别 \~english Interface type + int nInterfaceReserved[5]; ///< \~chinese 保留 \~english Reserved field + char interfaceName[SC_MAX_STRING_LENTH]; ///< \~chinese 接口名 \~english Interface Name + char interfaceReserved[5][SC_MAX_STRING_LENTH]; ///< \~chinese 保留 \~english Reserved field + SC_UsbInterfaceInfo usbInterfaceInfo; ///< \~chinese Usb接口信息 \~english Usb interface Information +} SC_DeviceInfo; + +/// \~chinese +/// \brief 网络传输模式 +/// \~english +/// \brief Transmission type +typedef struct _SC_TRANSMISSION_TYPE +{ + SC_TransmissionType eTransmissionType; ///< \~chinese 传输模式 \~english Transmission type + unsigned int nDesIp; ///< \~chinese 目标ip地址 \~english Destination IP address + unsigned short nDesPort; ///< \~chinese 目标端口号 \~english Destination port + + unsigned int nReserved[32]; ///< \~chinese 预留位 \~english Reserved field +} SC_TRANSMISSION_TYPE; + +/// \~chinese +/// \brief 加载失败的属性信息 +/// \~english +/// \brief Load failed properties information +typedef struct _SC_ErrorList +{ + unsigned int nParamCnt; ///< \~chinese 加载失败的属性个数 \~english The count of load failed properties + SC_String paramNameList[SC_MAX_ERROR_LIST_NUM]; ///< \~chinese 加载失败的属性集合,上限128 \~english Array of load failed properties, up to 128 +} SC_ErrorList; + +/// \~chinese +/// \brief 设备信息列表 +/// \~english +/// \brief Device information list +typedef struct _SC_DeviceList +{ + unsigned int nDevNum; ///< \~chinese 设备数量 \~english Device Number + SC_DeviceInfo* pDevInfo; ///< \~chinese 设备息列表(SDK内部缓存),最多100设备 \~english Device information list(cached within the SDK), up to 100 +} SC_DeviceList; + +/// \~chinese +/// \brief 连接事件信息 +/// \~english +/// \brief connection event information +typedef struct _SC_SConnectArg +{ + SC_EVType event; ///< \~chinese 事件类型 \~english event type + char serialNumber[SC_MAX_STRING_LENTH]; + unsigned int nReserve[10]; ///< \~chinese 预留字段 \~english Reserved field +} SC_SConnectArg; + +/// \~chinese +/// \brief 参数更新事件信息 +/// \~english +/// \brief Updating parameters event information +typedef struct _SC_SParamUpdateArg +{ + bool isPoll; ///< \~chinese 是否是定时更新,true:表示是定时更新,false:表示非定时更新 \~english Update periodically or not. true:update periodically, true:not update periodically + unsigned int nReserve[10]; ///< \~chinese 预留字段 \~english Reserved field + unsigned int nParamCnt; ///< \~chinese 更新的参数个数 \~english The number of parameters which need update + SC_String* pParamNameList; ///< \~chinese 更新的参数名称集合(SDK内部缓存) \~english Array of parameter's name which need to be updated(cached within the SDK) +} SC_SParamUpdateArg; + +/// \~chinese +/// \brief 流事件信息 +/// \~english +/// \brief Stream event information +typedef struct _SC_SStreamArg +{ + unsigned int channel; ///< \~chinese 流通道号 \~english Channel no. + uint64_t blockId; ///< \~chinese 流数据BlockID \~english Block ID of stream data + uint64_t timeStamp; ///< \~chinese 时间戳 \~english Event time stamp + SC_EEventStatus eStreamEventStatus; ///< \~chinese 流事件状态码 \~english Stream event status code + unsigned int status; ///< \~chinese 事件状态错误码 \~english Status error code + unsigned int nReserve[9]; ///< \~chinese 预留字段 \~english Reserved field +} SC_SStreamArg; + +/// \~chinese +/// 消息通道事件ID列表 +/// \~english +/// message channel event id list +#define SC_MSG_EVENT_ID_EXPOSURE_END 0x9001 +#define SC_MSG_EVENT_ID_FRAME_TRIGGER 0x9002 +#define SC_MSG_EVENT_ID_FRAME_START 0x9003 +#define SC_MSG_EVENT_ID_ACQ_START 0x9004 +#define SC_MSG_EVENT_ID_ACQ_TRIGGER 0x9005 +#define SC_MSG_EVENT_ID_DATA_READ_OUT 0x9006 + +/// \~chinese +/// \brief 消息通道事件信息 +/// \~english +/// \brief Message channel event information +typedef struct _SC_SMsgChannelArg +{ + unsigned short eventId; ///< \~chinese 事件Id \~english Event id + unsigned short channelId; ///< \~chinese 消息通道号 \~english Channel id + uint64_t blockId; ///< \~chinese 流数据BlockID \~english Block ID of stream data + uint64_t timeStamp; ///< \~chinese 时间戳 \~english Event timestamp + unsigned int nReserve[8]; ///< \~chinese 预留字段 \~english Reserved field + unsigned int nParamCnt; ///< \~chinese 参数个数 \~english The number of parameters which need update + SC_String* pParamNameList; ///< \~chinese 事件相关的属性名列集合(SDK内部缓存) \~english Array of parameter's name which is related(cached within the SDK) +} SC_SMsgChannelArg; + +/// \~chinese +/// \brief 消息通道事件信息(通用) +/// \~english +/// \brief Message channel event information(Common) +typedef struct _SC_SMsgEventArg +{ + unsigned short eventId; ///< \~chinese 事件Id \~english Event id + unsigned short channelId; ///< \~chinese 消息通道号 \~english Channel id + uint64_t blockId; ///< \~chinese 流数据BlockID \~english Block ID of stream data + uint64_t timeStamp; ///< \~chinese 时间戳 \~english Event timestamp + void* pEventData; ///< \~chinese 事件数据,内部缓存,需要及时进行数据处理 \~english Event data, internal buffer, need to be processed in time + unsigned int nEventDataSize; ///< \~chinese 事件数据长度 \~english Event data size + unsigned int reserve[8]; ///< \~chinese 预留字段 \~english Reserved field +} SC_SMsgEventArg; + + +/// \~chinese +/// \brief 帧图像信息 +/// \~english +/// \brief The frame image information +typedef struct _SC_FrameInfo +{ + uint64_t blockId; ///< \~chinese 帧Id(仅对GigE/Usb/PCIe相机有效) \~english The block ID(GigE/Usb/PCIe camera only) + unsigned int status; ///< \~chinese 数据帧状态(0是正常状态) \~english The status of frame(0 is normal status) + unsigned int width; ///< \~chinese 图像宽度 \~english The width of image + unsigned int height; ///< \~chinese 图像高度 \~english The height of image + unsigned int size; ///< \~chinese 图像大小 \~english The size of image + SC_EPixelType pixelFormat; ///< \~chinese 图像像素格式 \~english The pixel format of image + uint64_t timeStamp; ///< \~chinese 图像时间戳 \~english The timestamp of image) + uint64_t exposureTime; ///< \~chinese 曝光时间 \~english The exposure time of image) + unsigned int paddingX; ///< \~chinese 图像paddingX \~english The paddingX of image + unsigned int paddingY; ///< \~chinese 图像paddingY \~english The paddingY of image + + // debug + unsigned int usbSendCnt; + unsigned int sendTimestampsec; + unsigned int sendTimestampnas; + + unsigned int nReserved[7]; ///< \~chinese 预留字段 \~english Reserved field + //unsigned int nReserved[19]; ///< \~chinese 预留字段 \~english Reserved field +} SC_FrameInfo; + +/// \~chinese +/// \brief 帧图像数据信息 +/// \~english +/// \brief Frame image data information +typedef struct _SC_Frame +{ + SC_FRAME_HANDLE frameHandle; ///< \~chinese 帧图像句柄(SDK内部帧管理用) \~english Frame image handle(used for managing frame within the SDK) + unsigned char* pData; ///< \~chinese 帧图像数据的内存首地址 \~english The starting address of memory of image data + SC_FrameInfo frameInfo; ///< \~chinese 帧信息 \~english Frame information + unsigned int nReserved[10]; ///< \~chinese 预留字段 \~english Reserved field +} SC_Frame; + + +typedef struct _SC_StatsInfo +{ + unsigned int imageError; ///< \~chinese 图像错误的帧数 \~english Number of images error frames + unsigned int lostPacketBlock; ///< \~chinese 丢包的帧数 \~english Number of frames lost + unsigned int nReserved0[10]; ///< \~chinese 预留 \~english Reserved field + + unsigned int imageReceived; ///< \~chinese 正常获取的帧数 \~english Number of images error frames + double fps; ///< \~chinese 帧率 \~english Frame rate + double bandwidth; ///< \~chinese 带宽(Mbps) \~english Bandwidth(Mbps) + unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved field +} SC_StreamStatsInfo; + +typedef struct _SC_SimulationStreamStatsInfo +{ + unsigned int imageError; ///< \~chinese 图像错误的帧数 \~english Number of images error frames + unsigned int lostFrame; ///< \~chinese 丢的帧数 \~english Number of frames lost + + unsigned int imageReceived; ///< \~chinese 正常获取的帧数 \~english Number of images error frames + double fps; ///< \~chinese 帧率 \~english Frame rate + +} SC_SimulationStreamStatsInfo; + +typedef struct _SC_CXPStreamStatsInfo +{ + unsigned int imageError; ///< \~chinese 图像错误的帧数 \~english Number of images error frames + unsigned int lostFrame; ///< \~chinese 丢的帧数 \~english Number of frames lost + + unsigned int imageReceived; ///< \~chinese 正常获取的帧数 \~english Number of images error frames + double fps; ///< \~chinese 帧率 \~english Frame rate + +} SC_CXPStreamStatsInfo; + + +typedef struct _SC_ExportStatisticInfo +{ + unsigned int mExportInMemCount; + unsigned int mSaveCount; + unsigned int mSaveFps; + unsigned int mLostCount; + unsigned int mSumRevFrameCount; +} SC_ExportStatisticInfo; + +/// \~chinese +/// \brief 统计流信息 +/// \~english +/// \brief Stream statistics information +typedef struct _SC_StreamStatisticsInfo +{ + SC_ECameraType nCameraType; ///< \~chinese 设备类型 \~english Device type + SC_StreamStatsInfo streamStatisticInfo; +} SC_StreamStatisticsInfo; + +/// \~chinese +/// \brief 枚举属性的枚举值信息 +/// \~english +/// \brief Enumeration property 's enumeration value information +typedef struct _SC_EnumEntryInfo +{ + uint64_t value; ///< \~chinese 枚举值 \~english Enumeration value + char name[SC_MAX_STRING_LENTH]; ///< \~chinese symbol名 \~english Symbol name +} SC_EnumEntryInfo; + +/// \~chinese +/// \brief 枚举属性的可设枚举值列表信息 +/// \~english +/// \brief Enumeration property 's settable enumeration value list information +typedef struct _SC_EnumEntryList +{ + unsigned int nEnumEntryBufferSize; ///< \~chinese 存放枚举值内存大小 \~english The size of saving enumeration value + SC_EnumEntryInfo* pEnumEntryInfo; ///< \~chinese 存放可设枚举值列表(调用者分配缓存) \~english Save the list of settable enumeration value(allocated cache by the caller) +} SC_EnumEntryList; + +typedef struct _SC_FrameLostInfo +{ + unsigned int nTotalLost; + unsigned long long nLastFrameId; + unsigned long long nCurrentFrameId; +} SC_FrameLostInfo; + +/// \~chinese +/// \brief 像素转换结构体 +/// \~english +/// \brief Pixel convert structure +typedef struct _SC_PixelConvertParam +{ + unsigned int nWidth; ///< [IN] \~chinese 图像宽 \~english Width + unsigned int nHeight; ///< [IN] \~chinese 图像高 \~english Height + SC_EPixelType ePixelFormat; ///< [IN] \~chinese 像素格式 \~english Pixel format + unsigned char* pSrcData; ///< [IN] \~chinese 输入图像数据 \~english Input image data + unsigned int nSrcDataLen; ///< [IN] \~chinese 输入图像长度 \~english Input image length + unsigned int nPaddingX; ///< [IN] \~chinese 图像宽填充 \~english Padding X + unsigned int nPaddingY; ///< [IN] \~chinese 图像高填充 \~english Padding Y + SC_EBayerDemosaic eBayerDemosaic; ///< [IN] \~chinese 转换Bayer格式算法 \~english Alorithm used for Bayer demosaic + SC_EPixelType eDstPixelFormat; ///< [IN] \~chinese 目标像素格式 \~english Destination pixel format + unsigned char* pDstBuf; ///< [OUT] \~chinese 输出数据缓存(调用者分配缓存) \~english Output data buffer(allocated cache by the caller) + unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size + unsigned int nDstDataLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length + unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved field +} SC_PixelConvertParam; + + +/// \~chinese +/// \brief 图像翻转结构体 +/// \~english +/// \brief Flip image structure +typedef struct _SC_FlipImageParam +{ + unsigned int nWidth; ///< [IN] \~chinese 图像宽 \~english Width + unsigned int nHeight; ///< [IN] \~chinese 图像高 \~english Height + SC_EPixelType ePixelFormat; ///< [IN] \~chinese 像素格式 \~english Pixel format + SC_EFlipType eFlipType; ///< [IN] \~chinese 翻转类型 \~english Flip type + unsigned char* pSrcData; ///< [IN] \~chinese 输入图像数据 \~english Input image data + unsigned int nSrcDataLen; ///< [IN] \~chinese 输入图像长度 \~english Input image length + unsigned char* pDstBuf; ///< [OUT] \~chinese 输出数据缓存(调用者分配缓存) \~english Output data buffer(allocated cache by the caller) + unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size + unsigned int nDstDataLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length + unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved +} SC_FlipImageParam; + +/// \~chinese +/// \brief 图像旋转结构体 +/// \~english +/// \brief Rotate image structure +typedef struct _SC_RotateImageParam +{ + unsigned int nWidth; ///< [IN][OUT] \~chinese 图像宽 \~english Width + unsigned int nHeight; ///< [IN][OUT] \~chinese 图像高 \~english Height + SC_EPixelType ePixelFormat; ///< [IN] \~chinese 像素格式 \~english Pixel format + SC_ERotationAngle eRotationAngle; ///< [IN] \~chinese 旋转角度 \~english Rotation angle + unsigned char* pSrcData; ///< [IN] \~chinese 输入图像数据 \~english Input image data + unsigned int nSrcDataLen; ///< [IN] \~chinese 输入图像长度 \~english Input image length + unsigned char* pDstBuf; ///< [OUT] \~chinese 输出数据缓存(调用者分配缓存) \~english Output data buffer(allocated cache by the caller) + unsigned int nDstBufSize; ///< [IN] \~chinese 提供的输出缓冲区大小 \~english Provided output buffer size + unsigned int nDstDataLen; ///< [OUT] \~chinese 输出数据长度 \~english Output data length + unsigned int nReserved[8]; ///< \~chinese 预留 \~english Reserved +} SC_RotateImageParam; + +/// \~chinese +/// \brief 录像结构体 +/// \~english +/// \brief Record structure +typedef struct _SC_RecordParam +{ + unsigned int nStartFrame; ///< [IN] \~chinese 起始帧 \~english start frame + unsigned int nCount; ///< [IN] \~chinese 采集帧数 \~english number of frame + float fFameRate; ///< [IN] \~chinese 帧率(大于0) \~english Frame rate(greater than 0) + unsigned int nQuality; ///< [IN] \~chinese 视频质量(1-100) \~english Video quality(1-100) + SC_EVideoType recordFormat; ///< [IN] \~chinese 视频格式 \~english Video format + char recordFilePath[SC_MAX_PATH_LENGTH]; ///< [IN] \~chinese 保存路径 \~english Save video path + unsigned int nReserved[5]; ///< \~chinese 预留 \~english Reserved +} SC_RecordParam; + +typedef struct _SC_MessageReport +{ + MessageType MsgType; + unsigned int MsgLen; + char data[SC_MAX_EVENT_LEN]; +} SC_MessageReport; + +// Log level +// 日志等级 +enum SCLogLevel +{ + eDefault = 0, + eDebug, + eInfo, + eWarn, + eError, + eFatal +}; + +#include +struct CXPRegInfo +{ + uint64_t addr = 0; + size_t len = 0; + SC_EFeatureType type = SC_EFeatureType::featureUndefined; + char regName[128]; + CXPRegInfo() {} + CXPRegInfo(uint64_t address, size_t size, SC_EFeatureType t, char* name) + { + addr = address; + len = size; + type = t; + strcpy_s(regName, name); + } +}; + +/// \~chinese +/// \brief 设备连接状态事件回调函数声明 +/// \param pParamUpdateArg [in] 回调时主动推送的设备连接状态事件信息 +/// \param pUser [in] 用户自定义数据 +/// \~english +/// \brief Call back function declaration of device connection status event +/// \param pStreamArg [in] The device connection status event which will be active pushed out during the callback +/// \param pUser [in] User defined data +typedef void (*SC_ConnectCallBack)(const SC_SConnectArg* pConnectArg, void* pUser); + +/// \~chinese +/// \brief 参数更新事件回调函数声明 +/// \param pParamUpdateArg [in] 回调时主动推送的参数更新事件信息 +/// \param pUser [in] 用户自定义数据 +/// \~english +/// \brief Call back function declaration of parameter update event +/// \param pStreamArg [in] The parameter update event which will be active pushed out during the callback +/// \param pUser [in] User defined data +typedef void (*SC_ParamUpdateCallBack)(const SC_SParamUpdateArg* pParamUpdateArg, void* pUser); + +/// \~chinese +/// \brief 流事件回调函数声明 +/// \param pStreamArg [in] 回调时主动推送的流事件信息 +/// \param pUser [in] 用户自定义数据 +/// \~english +/// \brief Call back function declaration of stream event +/// \param pStreamArg [in] The stream event which will be active pushed out during the callback +/// \param pUser [in] User defined data +typedef void (*SC_StreamCallBack)(const SC_SStreamArg* pStreamArg, void* pUser); + + +/// \~chinese +/// \brief 消息通道事件回调函数声明(通用) +/// \param pMsgChannelArg [in] 回调时主动推送的消息通道事件信息 +/// \param pUser [in] 用户自定义数据 +/// \~english +/// \brief Call back function declaration of message channel event(Common) +/// \param pMsgChannelArg [in] The message channel event which will be active pushed out during the callback +/// \param pUser [in] User defined data +typedef void (*SC_MsgChannelCallBackEx)(const SC_SMsgEventArg* pMsgChannelArg, void* pUser); + +/// \~chinese +/// \brief 帧数据信息回调函数声明 +/// \param pFrame [in] 回调时主动推送的帧信息 +/// \param pUser [in] 用户自定义数据 +/// \~english +/// \brief Call back function declaration of frame data information +/// \param pFrame [in] The frame information which will be active pushed out during the callback +/// \param pUser [in] User defined data +typedef void (*SC_FrameCallBack)(SC_Frame* pFrame, void* pUser); + +/// \~chinese +/// \brief 信息回调函数声明 +/// \param pFrame [in] 回调时主动推送信息报告 +/// \param pUser [in] 用户自定义数据 +/// \~english +/// \brief Call back function declaration of message +/// \param pFrame [in] The message which will be active pushed out during the callback +/// \param pUser [in] User defined data + +typedef void (*SC_MessageCallBack)(SC_MessageReport* pMessage, void* pUser); + +// for upgrade +enum UpgradeNotify +{ + eUpgradeCompleted, + eProcessing, + eErasing, + eUpgradeFailed, + eFileCheckOK, + + eFileCheckFailed, + eEraseFailed, + eSendPackFailed, + eFileLengthError, + eCRCError, + eReadRegFailed, + eWriteRegFailed, + + eUploadFTPFailed, + eSendRequestFailed, + + eOpenDeviceFailed, + eBreakProcess, +}; + +enum ExportNotify +{ + eExportStart, + eExportProcessing, + eExportFinish, + eExportClose +}; + +enum UpgradeFileType +{ + eFPGA, + eARM, + eBoot, + eFPGAImageParam, + eFPGAXml, +}; + +typedef void (*UpgradeProcessCB)(int progress, const char* msgText, int notify, void *user); +typedef void (*ExportEventCB)(int notify, void* data, int len); + + +typedef struct _SC_DeviceInfoLabView +{ + char cameraKey[SC_MAX_STRING_LENTH]; ///< \~chinese 厂商:序列号 \~english Camera key + char cameraName[SC_MAX_STRING_LENTH]; ///< \~chinese 用户自定义名 \~english UserDefinedName + char serialNumber[SC_MAX_STRING_LENTH]; ///< \~chinese 设备序列号 \~english Device SerialNumber + char vendorName[SC_MAX_STRING_LENTH]; ///< \~chinese 厂商 \~english Camera Vendor + char deviceVersion[SC_MAX_STRING_LENTH]; ///< \~chinese 设备版本 \~english Device Version + char ctiPath[SC_MAX_PATH_LENGTH]; +} SC_DeviceInfoLabView; + +//#pragma pack(push,1) +typedef struct _SC_FrameLabView +{ + unsigned int offsetBit; + unsigned int width; ///< \~chinese 图像宽度 \~english The width of image + unsigned int height; ///< \~chinese 图像高度 \~english The height of image + unsigned int paddingX; ///< \~chinese 图像paddingX \~english The paddingX of image + unsigned int paddingY; ///< \~chinese 图像paddingY + unsigned int size; ///< \~chinese 图像大小 \~english The size of image + unsigned int pixelFormat; ///< \~chinese 图像像素格式 \~english The pixel format of image + unsigned int reserve[3]; ///< \~chinese 图像像素格式 \~english The pixel format of image + uint64_t timeStamp; ///< \~chinese 图像时间戳 \~english The timestamp of image) + uint64_t exposureTime; ///< \~chinese 曝光时间 \~english The exposure time of image) + uint64_t blockId; ///< \~chinese 帧Id(仅对GigE/Usb/PCIe相机有效) \~english The block ID(GigE/Usb/PCIe camera only) + uint64_t extent; +} SC_FrameLabView; + +typedef struct _SC_ROI +{ + unsigned int width; ///< \~chinese 图像宽度 \~english The width of image + unsigned int height; ///< \~chinese 图像高度 \~english The height of image + unsigned int paddingX; ///< \~chinese 图像paddingX \~english The paddingX of image + unsigned int paddingY; ///< \~chinese 图像paddingY +} SC_ROI; +//#pragma pack(pop) +#endif // __SC_DEFINES_H__ \ No newline at end of file diff --git a/DeviceAdapters/Revealer/scsdk.lib b/DeviceAdapters/Revealer/scsdk.lib new file mode 100644 index 0000000000000000000000000000000000000000..94afe1bf450f09c03cb8757806b707ad6066ccab GIT binary patch literal 11404038 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�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 z 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�&%kgTEMksu$I8$fj$9k-1j{k5 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

qYF(qxUGKFw^!ZrFc{FD5Wq{^(aA> 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

HN?iYq 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

P@zn>~nkn&{hst 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 c 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