diff --git a/ADHamaApp/src/hama.cpp b/ADHamaApp/src/hama.cpp index 7694367..803e2aa 100644 --- a/ADHamaApp/src/hama.cpp +++ b/ADHamaApp/src/hama.cpp @@ -480,22 +480,22 @@ asynStatus Hama::getParameter(int propertyID){ double dvalue = 0; switch (propertyID){ - // - sensor mode and speed - case DCAM_IDPROP_SENSORMODE: + // - sensor mode and speed + case DCAM_IDPROP_SENSORMODE: //(RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_SENSORMODE, &dvalue); if(failed(m_err)) { printError(m_hdcam, m_err, "SENSOR MODE", "IDPROP:0x%08x, VALUE:%f\n", propertyID, dvalue); } status = setIntegerParam(hSensorMode, dvalue); break; - case DCAM_IDPROP_READOUTSPEED: + case DCAM_IDPROP_READOUTSPEED: //(RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_READOUTSPEED, &dvalue); if(failed(m_err)) { printError(m_hdcam, m_err, "READOUT SPEED", "IDPROP:0x%08x, VALUE:%f\n", propertyID, dvalue); } status = setIntegerParam(hReadoutSpeed, dvalue); break; - case DCAM_IDPROP_READOUT_DIRECTION: + case DCAM_IDPROP_READOUT_DIRECTION: // (RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_READOUT_DIRECTION, &dvalue); if(failed(m_err)) { printError(m_hdcam, m_err, "R DIRECTION", "IDPROP:0x%08x, VALUE:%f\n", propertyID, dvalue); @@ -503,92 +503,104 @@ asynStatus Hama::getParameter(int propertyID){ status = setIntegerParam(hReadoutDirection, dvalue); break; // - trigger - case DCAM_IDPROP_TRIGGERSOURCE: + case DCAM_IDPROP_TRIGGERSOURCE: // (RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_TRIGGERSOURCE, &dvalue); status = setIntegerParam(hTriggerSource, dvalue); break; - case DCAM_IDPROP_TRIGGER_MODE: + case DCAM_IDPROP_TRIGGER_MODE: // (RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_TRIGGER_MODE, &dvalue); status = setIntegerParam(hTriggerMode, dvalue); break; - case DCAM_IDPROP_TRIGGERACTIVE: + case DCAM_IDPROP_TRIGGERACTIVE: //(RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_TRIGGERACTIVE, &dvalue); status = setIntegerParam(hTriggerActive, dvalue); break; - case DCAM_IDPROP_TRIGGER_GLOBALEXPOSURE: + case DCAM_IDPROP_TRIGGER_GLOBALEXPOSURE: //(RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_TRIGGER_GLOBALEXPOSURE, &dvalue); status = setIntegerParam(hTriggerGlobalExposure, dvalue); break; - case DCAM_IDPROP_TRIGGERPOLARITY: + case DCAM_IDPROP_TRIGGERPOLARITY: //(RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_TRIGGERPOLARITY, &dvalue); status = setIntegerParam(hTriggerPolarity, dvalue); break; - case DCAM_IDPROP_TRIGGER_CONNECTOR: + case DCAM_IDPROP_TRIGGER_CONNECTOR: //(RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_TRIGGER_CONNECTOR, &dvalue); status = setIntegerParam(hTriggerConnector, dvalue); break; - case DCAM_IDPROP_TRIGGERTIMES: + case DCAM_IDPROP_TRIGGERTIMES: //(RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_TRIGGERTIMES, &dvalue); status = setIntegerParam(hTriggerTimes, dvalue); break; - case DCAM_IDPROP_TRIGGERDELAY: + case DCAM_IDPROP_TRIGGERDELAY: //(RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_TRIGGERDELAY, &dvalue); status = setDoubleParam(hTriggerDelay, dvalue); break; - case DCAM_IDPROP_INTERNALTRIGGER_HANDLING: + case DCAM_IDPROP_INTERNALTRIGGER_HANDLING: //(RW12-) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_INTERNALTRIGGER_HANDLING, &dvalue); status = setIntegerParam(hInternalTriggerHandling, dvalue); break; // - sensor cooler - case DCAM_IDPROP_SENSORCOOLERSTATUS: + case DCAM_IDPROP_SENSORCOOLERSTATUS: //(R) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_SENSORCOOLERSTATUS, &dvalue); status = setIntegerParam(hSensorCoolerStatus, dvalue); break; + // - sensor temperature in a thread + // - binning and roi - case DCAM_IDPROP_BINNING: + case DCAM_IDPROP_BINNING: //(RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_BINNING, &dvalue); status = setIntegerParam(hBinning, dvalue); break; - case DCAM_IDPROP_SUBARRAYHSIZE: + case DCAM_IDPROP_SUBARRAYHSIZE: //(RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHSIZE, &dvalue); status = setIntegerParam(ADSizeX, dvalue); break; - case DCAM_IDPROP_SUBARRAYVSIZE: + case DCAM_IDPROP_SUBARRAYVSIZE: //(RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVSIZE, &dvalue); status = setIntegerParam(ADSizeY, dvalue); break; - case DCAM_IDPROP_SUBARRAYHPOS: + case DCAM_IDPROP_SUBARRAYHPOS: //(RW---) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_SUBARRAYHPOS, &dvalue); status = setIntegerParam(ADMinX, dvalue); break; - case DCAM_IDPROP_SUBARRAYVPOS: + case DCAM_IDPROP_SUBARRAYVPOS: //(RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_SUBARRAYVPOS, &dvalue); status = setIntegerParam(ADMinY, dvalue); break; + + case DCAM_IDPROP_SUBARRAYMODE: //(RW1--) + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &dvalue); + status = setIntegerParam(hSubarrayMode, dvalue); + break; + // - feature + case DCAM_IDPROP_EXPOSURETIME: //(RW123) + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_EXPOSURETIME, &dvalue); + status = setIntegerParam(hExposureTime, dvalue); + break; // - alu - case DCAM_IDPROP_DEFECTCORRECT_MODE: + case DCAM_IDPROP_DEFECTCORRECT_MODE: //(RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_DEFECTCORRECT_MODE, &dvalue); status = setIntegerParam(hDefectCorrectMode, dvalue); break; - case DCAM_IDPROP_HOTPIXELCORRECT_LEVEL: + case DCAM_IDPROP_HOTPIXELCORRECT_LEVEL: //(RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_HOTPIXELCORRECT_LEVEL, &dvalue); status = setIntegerParam(hHotPixelCorrectLevel, dvalue); break; - case DCAM_IDPROP_INTENSITYLUT_MODE: + case DCAM_IDPROP_INTENSITYLUT_MODE: //(RW123) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_INTENSITYLUT_MODE, &dvalue); status = setIntegerParam(hIntensityLutMode, dvalue); break; - case DCAM_IDPROP_INTENSITYLUT_PAGE: + case DCAM_IDPROP_INTENSITYLUT_PAGE: //(RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_INTENSITYLUT_PAGE, &dvalue); status = setIntegerParam(hIntensityLutPage, dvalue); break; - case DCAM_IDPROP_EXTRACTION_MODE: + case DCAM_IDPROP_EXTRACTION_MODE: //(RW1--) m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_EXTRACTION_MODE, &dvalue); status = setIntegerParam(hExtractionMode, dvalue); break; @@ -598,6 +610,25 @@ asynStatus Hama::getParameter(int propertyID){ m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_NUMBEROF_OUTPUTTRIGGERCONNECTOR, &dvalue); status = setIntegerParam(hNumberOfOutputTriggerConnector, dvalue); break; + + case DCAM_IDPROP_OUTPUTTRIGGER_SOURCE: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_SOURCE, &dvalue); + status = setIntegerParam(hOutputTriggerSource0, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_SOURCE+0x100, &dvalue); + status = setIntegerParam(hOutputTriggerSource1, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_SOURCE+0x200, &dvalue); + status = setIntegerParam(hOutputTriggerSource2, dvalue); + break; + + case DCAM_IDPROP_OUTPUTTRIGGER_POLARITY: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY, &dvalue); + status = setIntegerParam(hOutputTriggerPolarity0, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY+0x100, &dvalue); + status = setIntegerParam(hOutputTriggerPolarity1, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY+0x200, &dvalue); + status = setIntegerParam(hOutputTriggerPolarity2, dvalue); + break; + case DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE: m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_ACTIVE, &dvalue); status = setIntegerParam(hOutputTriggerActive0, dvalue); @@ -607,7 +638,69 @@ asynStatus Hama::getParameter(int propertyID){ status = setIntegerParam(hOutputTriggerActive2, dvalue); break; + case DCAM_IDPROP_OUTPUTTRIGGER_DELAY: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_DELAY, &dvalue); + status = setIntegerParam(hOutputTriggerDelay0, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_DELAY+0x100, &dvalue); + status = setIntegerParam(hOutputTriggerDelay1, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_DELAY+0x200, &dvalue); + status = setIntegerParam(hOutputTriggerDelay2, dvalue); + break; + + case DCAM_IDPROP_OUTPUTTRIGGER_PERIOD: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD, &dvalue); + status = setIntegerParam(hOutputTriggerPeriod0, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD+0x100, &dvalue); + status = setIntegerParam(hOutputTriggerPeriod1, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD+0x200, &dvalue); + status = setIntegerParam(hOutputTriggerPeriod2, dvalue); + break; + + case DCAM_IDPROP_OUTPUTTRIGGER_KIND: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_KIND, &dvalue); + status = setIntegerParam(hOutputTriggerKind0, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_KIND+0x100, &dvalue); + status = setIntegerParam(hOutputTriggerKind1, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_KIND+0x200, &dvalue); + status = setIntegerParam(hOutputTriggerKind2, dvalue); + break; + + case DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR, &dvalue); + status = setIntegerParam(hOutputTriggerBaseSensor0, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR+0x100, &dvalue); + status = setIntegerParam(hOutputTriggerBaseSensor1, dvalue); + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR+0x200, &dvalue); + status = setIntegerParam(hOutputTriggerBaseSensor2, dvalue); + break; + + case DCAM_IDPROP_OUTPUTTRIGGER_PREHSYNCCOUNT: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PREHSYNCCOUNT, &dvalue); + status = setIntegerParam(hOutputTriggerPreHsyncCount, dvalue); + break; + + // - master pulse + case DCAM_IDPROP_MASTERPULSE_MODE: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_MODE, &dvalue); + status = setIntegerParam(hMasterPulseMode, dvalue); + break; + + case DCAM_IDPROP_MASTERPULSE_TRIGGERSOURCE: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_TRIGGERSOURCE, &dvalue); + status = setIntegerParam(hMasterPulseTriggerSource, dvalue); + break; + + case DCAM_IDPROP_MASTERPULSE_INTERVAL: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_INTERVAL, &dvalue); + status = setIntegerParam(hMasterPulseInterval, dvalue); + break; + + case DCAM_IDPROP_MASTERPULSE_BURSTTIMES: + m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_BURSTTIMES, &dvalue); + status = setIntegerParam(hMasterPulseBurstTimes, dvalue); + break; + // - synchronous timing case DCAM_IDPROP_TIMING_READOUTTIME: