diff --git a/.gitignore b/.gitignore index fbd322a..eeaf8f9 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,6 @@ O.* *.db.* pv.list core.* -.vscode \ No newline at end of file +.vscode +list.txt +.vscode/c_cpp_properties.json \ No newline at end of file diff --git a/.vscode/c_cpp_properties.json b/.vscode/c_cpp_properties.json index ead342c..1da3a01 100644 --- a/.vscode/c_cpp_properties.json +++ b/.vscode/c_cpp_properties.json @@ -6,11 +6,11 @@ "${workspaceFolder}/**", "${workspaceFolder}/ADHamaApp/src/**", "${workspaceFolder}/ADHamaApp/src/", - "/home/iocuser/.conda/envs/hama/epics/include/**", - "/home/iocuser/.conda/envs/hama/epics/include/", - "/home/iocuser/.conda/envs/hama/modules/adcore/3.10.0/include/", - "/home/iocuser/.conda/envs/hama/modules/**", - "/home/iocuser/.conda/envs/hama/epics/include/os/Linux" + "/home/iocuser/.conda/envs/hama-dev/epics/include/**", + "/home/iocuser/.conda/envs/hama-dev/epics/include/", + "/home/iocuser/.conda/envs/hama-dev/modules/adcore/3.10.0/include/", + "/home/iocuser/.conda/envs/hama-dev/modules/**", + "/home/iocuser/.conda/envs/hama-dev/epics/include/os/Linux" ], "defines": [], "compilerPath": "/usr/bin/gcc", diff --git a/ADHamaApp/src/hama.cpp b/ADHamaApp/src/hama.cpp index a7eb2b9..3b8b3cc 100644 --- a/ADHamaApp/src/hama.cpp +++ b/ADHamaApp/src/hama.cpp @@ -988,10 +988,9 @@ 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; @@ -1023,12 +1022,12 @@ asynStatus Hama::readSensor(){ double dsensorH = 2048; double dsensorV = 2048; -/* - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &modeOFF); - if(failed(m_err)) - printError(m_hdcam, m_err, "dcamprop_SubarrayMode()", " VALUE:%f\n", modeOFF); + + //m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &modeOFF); + //if(failed(m_err)) + // printError(m_hdcam, m_err, "dcamprop_SubarrayMode()", " VALUE:%f\n", modeOFF); -*/ + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_BINNING, &dbinning); if(failed(m_err)) printError(m_hdcam, m_err, "dcamprop_Binning()", " VALUE:%f\n", dbinning); @@ -1120,12 +1119,12 @@ asynStatus Hama::readSensor(){ status = setIntegerParam(NDArraySize, bytes); -/* - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &modeON); -*/ + +// m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &modeON); + callParamCallbacks(); - + */ return status; } @@ -1241,58 +1240,54 @@ asynStatus Hama::writeInt32(asynUser *pasynUser, epicsInt32 value){ } } else if (index == ADSizeX) { - int sensorH = 2048, minH = 0, sizeH = 0; + int sensorX = 2048, minX = 0, sizeX = 0; double dFrameBytes = 0; - getIntegerParam(ADMinX, &minH); - getIntegerParam(ADSizeX, &sizeH); - printf("---1 sensorH = %d minH = %d sizeH = %d\n", sensorH, minH, sizeH); + getIntegerParam(ADMinX, &minX); + getIntegerParam(ADSizeX, &sizeX); - if(sizeH < sensorH - minH){ - double dsizeH = sizeH; - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHSIZE, &dsizeH); + if(sizeX < sensorX - minX){ + double dsizeX = sizeX; + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHSIZE, &dsizeX); m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_FRAMEBYTES, &dFrameBytes); status = setIntegerParam(hImageFramebytes, dFrameBytes); + status = setIntegerParam(ADSizeX, (int)dsizeX); + printf("1-Status = %d\n", status); } else{ - double dsizeH = sensorH - minH; - printf("---2 sensorH = %d minH = %d sizeH = %f\n", sensorH, minH, dsizeH); - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHSIZE, &dsizeH); - if(failed(m_err)) printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%d\n", index, (int)dsizeH); - + double dsizeX = sensorX - minX; + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHSIZE, &dsizeX); m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_FRAMEBYTES, &dFrameBytes); - if(failed(m_err)) printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%d\n", index, (int)dFrameBytes); - - printf("---3 dFrameBuffer = %f\n", dFrameBytes); + status = setIntegerParam(ADSizeX, sizeX); + printf("2-Status = %d\n", status); status = setIntegerParam(hImageFramebytes, dFrameBytes); - //status = setIntegerParam(ADSizeX, dsizeH); - } + } } else if (index == ADSizeY) { - int sensorV = 2048, minV = 0, sizeV = 0; + int sensorY = 2048, minY = 0, sizeY = 0; double dFrameBytes = 0; - getIntegerParam(ADMinY, &minV); - getIntegerParam(ADSizeY, &sizeV); + getIntegerParam(ADMinY, &minY); + getIntegerParam(ADSizeY, &sizeY); - if(sizeV < sensorV - minV){ - double dsizeV = sizeV; - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVSIZE, &dsizeV); + if(sizeY < sensorY - minY){ + double dsizeY = sizeY; + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVSIZE, &dsizeY); m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_FRAMEBYTES, &dFrameBytes); + status = setIntegerParam(ADSizeX, (int)dsizeY); status = setIntegerParam(hImageFramebytes, dFrameBytes); } else{ - - double dsizeV = sizeV; - printf("---4 sensor = %d min = %d size = %d\n", sensorV, minV, sizeV); - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVSIZE, &dsizeV); - if(failed(m_err)) printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%d\n", index, (int)dsizeV); + double dsizeY = sizeY; + //printf("---4 sensor = %d min = %d size = %d\n", sensorY, minY, sizeY); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVSIZE, &dsizeY); + //if(failed(m_err)) printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%d\n", index, (int)dsizeY); m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_IMAGE_FRAMEBYTES, &dFrameBytes); - if(failed(m_err)) printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%d\n", index, (int)dFrameBytes); + //if(failed(m_err)) printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%d\n", index, (int)dFrameBytes); status = setIntegerParam(hImageFramebytes, dFrameBytes); - status = setIntegerParam(ADSizeX, dsizeV); + status = setIntegerParam(ADSizeX, (int)dsizeY); } }