From b01e13eb776d205538d8ddacf71a2c3847bcff07 Mon Sep 17 00:00:00 2001 From: Iocuser Date: Thu, 9 Feb 2023 09:20:07 +0100 Subject: [PATCH] small update --- ADHamaApp/src/hama.cpp | 165 ++++++++++++++++++++++------------------- 1 file changed, 87 insertions(+), 78 deletions(-) diff --git a/ADHamaApp/src/hama.cpp b/ADHamaApp/src/hama.cpp index e235a6f..39e04a3 100644 --- a/ADHamaApp/src/hama.cpp +++ b/ADHamaApp/src/hama.cpp @@ -385,84 +385,6 @@ int Hama::readParameterStr(int propertyID){ return status; } -//============================================================================ -asynStatus Hama::readAttributes(){ - - int status = 0; - - readParameter( DCAM_IDPROP_COLORTYPE ); - //status |= readParameter( DCAM_IDPROP_BITSPERCHANNEL ); - status = readParameter( DCAM_IDPROP_IMAGE_ROWBYTES ); - status = readParameter( DCAM_IDPROP_IMAGE_FRAMEBYTES ); - status = readParameter( DCAM_IDPROP_IMAGE_TOPOFFSETBYTES ); - //status |= readParameter( DCAM_IDPROP_IMAGE_PIXELTYPE ); - status = readParameter( DCAM_IDPROP_BUFFER_ROWBYTES ); - status = readParameter( DCAM_IDPROP_BUFFER_FRAMEBYTES ); - status = readParameter( DCAM_IDPROP_BUFFER_TOPOFFSETBYTES ); - status = readParameter( DCAM_IDPROP_BUFFER_PIXELTYPE ); - status = readParameter( DCAM_IDPROP_RECORDFIXEDBYTES_PERFILE ); - status = readParameter( DCAM_IDPROP_RECORDFIXEDBYTES_PERSESSION ); - status = readParameter( DCAM_IDPROP_RECORDFIXEDBYTES_PERFRAME ); - status = readParameter( DCAM_IDPROP_SYSTEM_ALIVE ); - status = readParameter( DCAM_IDPROP_CONVERSIONFACTOR_COEFF ); - status = readParameter( DCAM_IDPROP_CONVERSIONFACTOR_OFFSET ); - status = readParameter( DCAM_IDPROP_NUMBEROF_VIEW ); - -return (asynStatus)status; -} - - -//============================================================================ -asynStatus Hama::readSensor(){ - - - asynStatus status = asynSuccess; - - int minH=0, minV=0, sizeH=0, sizeV=0, binning=1; - double dminH=0, dminV=0, dsizeH=0, dsizeV=0, dbinning=1; - double dvalue = 0; - - getIntegerParam(ADMinX, &minH); - getIntegerParam(ADMinY, &minV); - getIntegerParam(ADSizeX, &sizeH); - getIntegerParam(ADSizeY, &sizeV); - getIntegerParam(hBinning, &binning); - - - dbinning = binning; - dminH = minH; - dminV = minV; - dsizeH = sizeH; - dsizeV = sizeV; - double modeON = DCAMPROP_MODE__ON; - double modeOFF = DCAMPROP_MODE__OFF; - - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &modeOFF); - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_BINNING, &dbinning); - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHPOS, &dminH); - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVPOS, &dminV); - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHSIZE, &dsizeH); - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVSIZE, &dsizeV); - m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_WIDTH, &dvalue); - m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_HEIGHT, &dvalue); - status = setIntegerParam(ADBinX, dvalue); - status = setIntegerParam(ADBinY, dvalue); - - m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_ROWBYTES, &dvalue); - m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_FRAMEBYTES, &dvalue); - //m_err = dcamprop_getvalue(m_hdcam, , &dvalue); - - - - - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &modeON); - - - callParamCallbacks(); - -return status; -} - //============================================================================ int Hama::readParameter(int propertyID){ @@ -1035,6 +957,93 @@ void Hama::temperatureTask(){ } +//============================================================================ +asynStatus Hama::readAttributes(){ + + int status = 0; + + readParameter( DCAM_IDPROP_COLORTYPE ); + //status |= readParameter( DCAM_IDPROP_BITSPERCHANNEL ); + status = readParameter( DCAM_IDPROP_IMAGE_ROWBYTES ); + status = readParameter( DCAM_IDPROP_IMAGE_FRAMEBYTES ); + status = readParameter( DCAM_IDPROP_IMAGE_TOPOFFSETBYTES ); + //status |= readParameter( DCAM_IDPROP_IMAGE_PIXELTYPE ); + status = readParameter( DCAM_IDPROP_BUFFER_ROWBYTES ); + status = readParameter( DCAM_IDPROP_BUFFER_FRAMEBYTES ); + status = readParameter( DCAM_IDPROP_BUFFER_TOPOFFSETBYTES ); + status = readParameter( DCAM_IDPROP_BUFFER_PIXELTYPE ); + status = readParameter( DCAM_IDPROP_RECORDFIXEDBYTES_PERFILE ); + status = readParameter( DCAM_IDPROP_RECORDFIXEDBYTES_PERSESSION ); + status = readParameter( DCAM_IDPROP_RECORDFIXEDBYTES_PERFRAME ); + status = readParameter( DCAM_IDPROP_SYSTEM_ALIVE ); + status = readParameter( DCAM_IDPROP_CONVERSIONFACTOR_COEFF ); + status = readParameter( DCAM_IDPROP_CONVERSIONFACTOR_OFFSET ); + status = readParameter( DCAM_IDPROP_NUMBEROF_VIEW ); + +return (asynStatus)status; +} + + +//============================================================================ +asynStatus Hama::readSensor(){ + + + asynStatus status = asynSuccess; + + int minH=0, minV=0, sizeH=0, sizeV=0, binning=1, bitPerChannel = 0; + double dminH=0, dminV=0, dsizeH=0, dsizeV=0, dbinning=1; + double dFrameBytes = 0, dRowBytes = 0; + double dvalue = 0; + + getIntegerParam(ADMinX, &minH); + getIntegerParam(ADMinY, &minV); + getIntegerParam(ADSizeX, &sizeH); + getIntegerParam(ADSizeY, &sizeV); + getIntegerParam(hBinning, &binning); + getIntegerParam(hBitPerChannel, &bitPerChannel); + + dbinning = binning; + dminH = minH; + dminV = minV; + dsizeH = sizeH; + dsizeV = sizeV; + double modeON = DCAMPROP_MODE__ON; + double modeOFF = DCAMPROP_MODE__OFF; + + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &modeOFF); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_BINNING, &dbinning); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHPOS, &dminH); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVPOS, &dminV); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHSIZE, &dsizeH); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVSIZE, &dsizeV); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_WIDTH, &dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_HEIGHT, &dvalue); + status = setIntegerParam(ADBinX, dvalue); + status = setIntegerParam(ADBinY, dvalue); + + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_ROWBYTES, &dRowBytes); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_FRAMEBYTES, &dFrameBytes); + //m_err = dcamprop_getvalue(m_hdcam, , &dvalue); + + status = setIntegerParam(hBinning, dbinning); + status = setIntegerParam(hImageFramebytes, dFrameBytes); + status = setIntegerParam(hImageRowbytes, dRowBytes); + + unsigned long size = (dsizeH - dminH) * (dsizeV - dminV) * dbinning; + printf("[DEBUG::readSensor] BitPerChannel = %d\n", bitPerChannel); + printf("[DEBUG::readSensor] ImageSize = %ld\n", size); + + + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &modeON); + + + callParamCallbacks(); + +return status; +} + + + //============================================================================ asynStatus Hama::writeInt32(asynUser *pasynUser, epicsInt32 value){