From 9225d07a0db165cfe9f9ec4214589f112142c46f Mon Sep 17 00:00:00 2001 From: Douglas Araujo Date: Thu, 12 Sep 2024 12:59:05 +0200 Subject: [PATCH] Replace printf to asynPrint --- ADOrcaApp/src/orca.cpp | 195 ++++++++++++++++++++--------------------- 1 file changed, 93 insertions(+), 102 deletions(-) diff --git a/ADOrcaApp/src/orca.cpp b/ADOrcaApp/src/orca.cpp index 977fd56..7357282 100644 --- a/ADOrcaApp/src/orca.cpp +++ b/ADOrcaApp/src/orca.cpp @@ -8,6 +8,15 @@ using namespace std; static const char* driverName = "drvOrca"; +// Flow message formatters +#define FLOW(msg) \ + asynPrint(pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s: %s\n", driverName, \ + functionName, msg) + +#define FLOW_ARGS(fmt, ...) \ + asynPrint(pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s: " fmt "\n", driverName, \ + functionName, __VA_ARGS__); + static void c_imagetask(void* arg) { Orca* p = (Orca*)arg; p->imageTask(); @@ -31,18 +40,11 @@ Orca::Orca(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, { const char* functionName = "orcaDetector::orcaDetector"; - - printf("[DEBUG] === Constructor ADOrca ===\n"); - printf("[DEBUG] driverName: %s\n", driverName); - stopThread = 0; - /* Create the epicsEvents for signaling to task when acquisition starts and - * stops */ startEvent_ = epicsEventCreate(epicsEventEmpty); if (!startEvent_) { - printf("%s:%s epicsEventCreate failure for acquire start event\n", - driverName, functionName); + FLOW("epicsEventCreate failure for acquire start event"); return; } @@ -53,14 +55,9 @@ Orca::Orca(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, callParamCallbacks(); connectCamera(); - printf( - "\n\n============================ Init Camera " - "=========================\n"); + FLOW("Init Camera"); initCamera(); - printf( - "\n\n============================ Start Threads " - "=======================\n"); /* launch image read task */ epicsThreadCreate("OrcaImageTask", epicsThreadPriorityMedium, epicsThreadGetStackSize(epicsThreadStackMedium), @@ -70,13 +67,6 @@ Orca::Orca(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, epicsThreadCreate("OrcaTemperatureTask", epicsThreadPriorityMedium, epicsThreadGetStackSize(epicsThreadStackMedium), c_temperaturetask, this); - - /* shutdown on exit */ - // epicsAtExit(c_shutdown, this); - - printf("\n\n=== END Constructor ADOrca ===\n"); - printf( - "===================================================================\n"); } void Orca::createAsynParams() { @@ -341,6 +331,7 @@ int Orca::initCamera() { //============================================================================ int Orca::readParameterStr(int propertyID) { + const char* functionName = "readParameterStr"; asynStatus status = asynSuccess; char text[256]; @@ -355,45 +346,45 @@ int Orca::readParameterStr(int propertyID) { case DCAM_IDSTR_VENDOR: dcamdev_getstring(m_hdcam, ¶m); status = setStringParam(hVendor, text); - printf("[DEBUG]::VENDOR %s\n", text); + FLOW_ARGS("Vendor %s\n", text); break; case DCAM_IDSTR_MODEL: dcamdev_getstring(m_hdcam, ¶m); status = setStringParam(hModel, text); - printf("[DEBUG]::MODEL %s\n", text); + FLOW_ARGS("Model %s\n", text); break; case DCAM_IDSTR_CAMERAID: dcamdev_getstring(m_hdcam, ¶m); status = setStringParam(hCameraID, text); - printf("[DEBUG]::CAMERAID %s\n", text); + FLOW_ARGS("CameraID %s\n", text); break; case DCAM_IDSTR_BUS: dcamdev_getstring(m_hdcam, ¶m); status = setStringParam(hBus, text); - printf("[DEBUG]::BUS %s\n", text); + FLOW_ARGS("Bus %s\n", text); break; case DCAM_IDSTR_CAMERAVERSION: dcamdev_getstring(m_hdcam, ¶m); status = setStringParam(hCameraVersion, text); - printf("[DEBUG]::CAMERAVERSION %s\n", text); + FLOW_ARGS("CameraVersion %s\n", text); break; case DCAM_IDSTR_DRIVERVERSION: dcamdev_getstring(m_hdcam, ¶m); status = setStringParam(hDriverVersion, text); - printf("[DEBUG]::DRIVERVERSION %s\n", text); + FLOW_ARGS("DriverVersion %s\n", text); break; case DCAM_IDSTR_MODULEVERSION: dcamdev_getstring(m_hdcam, ¶m); status = setStringParam(hModuleVersion, text); - printf("[DEBUG]::MODULEVERSION %s\n", text); + FLOW_ARGS("ModuleVersion %s\n", text); break; case DCAM_IDSTR_DCAMAPIVERSION: dcamdev_getstring(m_hdcam, ¶m); status = setStringParam(hDcamApiVersion, text); - printf("[DEBUG]::DCAMPVERSION %s\n", text); + FLOW_ARGS("DCAMP Version %s\n", text); break; default: - printf("[DEBUG]::NOT SUPPORTED\n"); + FLOW("NOT SUPPORTED\n"); break; } @@ -404,6 +395,7 @@ int Orca::readParameterStr(int propertyID) { //============================================================================ int Orca::readParameter(int propertyID, bool processPV) { + const char* functionName = "readParameter"; asynStatus status = asynSuccess; double dvalue = 0; @@ -814,8 +806,8 @@ int Orca::readParameter(int propertyID, bool processPV) { default: char text[256]; dcamprop_getname(m_hdcam, propertyID, text, sizeof(text)); - printf("Parameter not recognised, IDPROP:0x%08x, NAME:%s\n", propertyID, - text); + FLOW_ARGS("Parameter not recognised, IDPROP:0x%08x, NAME:%s\n", + propertyID, text); break; } @@ -832,6 +824,7 @@ int Orca::readParameter(int propertyID, bool processPV) { //============================================================================ void Orca::imageTask() { + const char* functionName = "imageTask"; int status; unsigned char* image; int acquire; @@ -893,7 +886,7 @@ void Orca::imageTask() { lock(); if (prevAcquisitionCount < (uint64_t)captransferinfo.nFrameCount) { - printf("\nOrca Frame Count: %d\n", captransferinfo.nFrameCount); + FLOW_ARGS("\nOrca Frame Count: %d\n", captransferinfo.nFrameCount); prevAcquisitionCount = captransferinfo.nFrameCount; // get image information @@ -902,7 +895,7 @@ void Orca::imageTask() { framebytes); if (pixeltype != DCAM_PIXELTYPE_MONO16) { - printf("not implement\n"); + FLOW("not implement"); return; } @@ -930,9 +923,9 @@ void Orca::imageTask() { evr_counts_since_last_start = evr_counts - initial_evr_counters; evr_trigger_dropped = evr_counts_since_last_start - captransferinfo.nFrameCount; - printf("EVR event count: %d\n", evr_counts); - printf("evr_counts_since_last_start: %d\n", - evr_counts_since_last_start); + FLOW_ARGS("EVR event count: %d\n", evr_counts); + FLOW_ARGS("evr_counts_since_last_start: %d\n", + evr_counts_since_last_start); setIntegerParam(evrCountsSinceAcqStart, evr_counts_since_last_start); setIntegerParam(evrTriggerDropped, evr_trigger_dropped); char buf[256]; @@ -941,17 +934,17 @@ void Orca::imageTask() { // remember parsed timestamp values sscanf(buf, "%u.%u", &mTimeStampSec, &mTimeStampNsec); timestamp = mTimeStampSec + mTimeStampNsec / 1.e9; - printf("mTimeStampSec: %u - mTimeStampNsec: %u\n", mTimeStampSec, - mTimeStampNsec); - printf("Timestamp from evr: %f\n", timestamp); + FLOW_ARGS("mTimeStampSec: %u - mTimeStampNsec: %u\n", mTimeStampSec, + mTimeStampNsec); + FLOW_ARGS("Timestamp from evr: %f\n", timestamp); } else { timestamp = (ts_sec + ts_microsec / 1.0e6) - (exposure_time + readout_time); - printf("Timestamp from camera: %f\n", timestamp); + FLOW_ARGS("Timestamp from camera: %f\n", timestamp); } - printf("readout_time: %f - exposure_time: %f\n", readout_time, - exposure_time); + FLOW_ARGS("readout_time: %f - exposure_time: %f\n", readout_time, + exposure_time); epicsTimeGetCurrent(¤tAcqTime); elapsedTime = epicsTimeDiffInSeconds(¤tAcqTime, &prevAcqTime); prevAcqTime = currentAcqTime; @@ -1003,7 +996,7 @@ void Orca::imageTask() { if ((epicsTimeDiffInSeconds(¤tAcqTime, &prevAcqTime) > maxAcqusitionTime) && acqStatus != ADStatusAborted) { - printf("[DEBUG]::maxAcqusitionTime %f\n", maxAcqusitionTime); + FLOW_ARGS("maxAcqusitionTime %f\n", maxAcqusitionTime); setShutter(0); stopAcquire(); setIntegerParam(ADAcquire, 0); @@ -1208,9 +1201,8 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { value = (int)dsizeY; } readParameter(DCAM_IDPROP_TIMING_READOUTTIME, false); - - else if (index == hSensorMode) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SENSORMODE, &dvalue); + } else if (index == hSensorMode) { + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SENSORMODE, &dvalue); if (failed(m_err)) printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); @@ -1218,7 +1210,7 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { } else if (index == hReadoutSpeed) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_READOUTSPEED, &dvalue); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_READOUTSPEED, &dvalue); if (failed(m_err)) printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); @@ -1226,7 +1218,7 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { } else if (index == hReadoutDirection) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_READOUT_DIRECTION, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_READOUT_DIRECTION, &dvalue, 0); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1235,51 +1227,51 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { } //-- Trigger else if (index == hTriggerSource) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERSOURCE, &dvalue); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERSOURCE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hTriggerMode) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGER_MODE, &dvalue); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGER_MODE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hTriggerActive) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERACTIVE, &dvalue); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERACTIVE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hTriggerGlobalExposure) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGER_GLOBALEXPOSURE, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGER_GLOBALEXPOSURE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hTriggerPolarity) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERPOLARITY, &dvalue); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERPOLARITY, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hTriggerConnector) { - m_err = + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGER_CONNECTOR, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hTriggerTimes) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERTIMES, &dvalue); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERTIMES, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hInternalTriggerHandling) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_INTERNALTRIGGER_HANDLING, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_INTERNALTRIGGER_HANDLING, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1303,8 +1295,8 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { status = setIntegerParam(hImageFramebytes, dFrameBytes); status = setIntegerParam(hBinning, dbinning); - } else if (index == hSubarrayMode) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &dvalue); + } else if (index == hSubarrayMode) { + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_SUBARRAYMODE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); @@ -1315,19 +1307,19 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { else if (index == hDefectCorrectMode) { m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_DEFECTCORRECT_MODE, &dvalue); - if (failed(m_err)) { + if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hHotPixelCorrectLevel) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_HOTPIXELCORRECT_LEVEL, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_HOTPIXELCORRECT_LEVEL, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hIntensityLutMode) { - m_err = + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_INTENSITYLUT_MODE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1337,21 +1329,21 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { //-- Output trigger else if (index == hOutputTriggerSource0) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_SOURCE, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_SOURCE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerSource1) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_SOURCE + 0x100, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerSource2) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_SOURCE + 0x200, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1360,21 +1352,21 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { } else if (index == hOutputTriggerPolarity0) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerPolarity1) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY + 0x100, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerPolarity2) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_POLARITY + 0x200, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1383,49 +1375,49 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { } else if (index == hOutputTriggerKind0) { - m_err = + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_KIND, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerKind1) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_KIND + 0x100, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerKind2) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_KIND + 0x200, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerBaseSensor0) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerBaseSensor1) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR + 0x100, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerBaseSensor2) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_BASESENSOR + 0x200, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerPreHsyncCount) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PREHSYNCCOUNT, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1435,14 +1427,14 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { //-- Master pulse else if (index == hMasterPulseMode) { - m_err = + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_MODE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hMasterPulseTriggerSource) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_TRIGGERSOURCE, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_TRIGGERSOURCE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1451,7 +1443,7 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { } else if (index == hMasterPulseBurstTimes) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_BURSTTIMES, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_BURSTTIMES, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1461,7 +1453,7 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { //-- Synchronous timing - nothing to implement either is in writeFloat64 //-- System information else if (index == hBitPerChannel) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_BITSPERCHANNEL, &dvalue); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_BITSPERCHANNEL, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); @@ -1469,7 +1461,7 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { } else if (index == hImagePixelType) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_IMAGE_PIXELTYPE, &dvalue); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_IMAGE_PIXELTYPE, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); @@ -1479,7 +1471,7 @@ asynStatus Orca::writeInt32(asynUser* pasynUser, epicsInt32 value) { else { if (index < FIRST_HAMA_PARAM) { status = ADDriver::writeInt32(pasynUser, value); - } + } } /* Do callbacks so higher layers see any changes */ @@ -1512,7 +1504,7 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { //-- Sensor mode and speed //-- Feature if (index == ADAcquireTime) { - int trigger_mode = 0; + int trigger_mode = 0; double acquire_period = 0; status = getDoubleParam(ADAcquirePeriod, &acquire_period); status = getIntegerParam(hTriggerSource, &trigger_mode); @@ -1541,7 +1533,7 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { } else if (index == ADAcquirePeriod) { - int trigger_mode = 0; + int trigger_mode = 0; getIntegerParam(hTriggerSource, &trigger_mode); m_err = dcamprop_getvalue(m_hdcam, DCAM_IDPROP_EXPOSURETIME, &dvalue); @@ -1572,7 +1564,7 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { //-- Trigger else if (index == hTriggerDelay) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERDELAY, &dvalue); + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_TRIGGERDELAY, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); @@ -1581,21 +1573,21 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { //-- Output trigger else if (index == hOutputTriggerDelay0) { - m_err = + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_DELAY, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerDelay1) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_DELAY + 0x100, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerDelay2) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_DELAY + 0x200, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1604,21 +1596,21 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { } else if (index == hOutputTriggerPeriod0) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerPeriod1) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD + 0x100, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", "IDPROP:0x%08x, VALUE:%f\n", index, dvalue); } } else if (index == hOutputTriggerPeriod2) { - m_err = dcamprop_setgetvalue( + m_err = dcamprop_setgetvalue( m_hdcam, DCAM_IDPROP_OUTPUTTRIGGER_PERIOD + 0x200, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1627,7 +1619,7 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { } //-- Master Pulse else if (index == hMasterPulseInterval) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_INTERVAL, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_MASTERPULSE_INTERVAL, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1637,7 +1629,7 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { //-- Synchronous timing else if (index == hInternalLineSpeed) { - m_err = + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_INTERNALLINESPEED, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1646,7 +1638,7 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { } else if (index == hInternalLineInterval) { - m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_INTERNAL_LINEINTERVAL, + m_err = dcamprop_setgetvalue(m_hdcam, DCAM_IDPROP_INTERNAL_LINEINTERVAL, &dvalue); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamprop_setgetvalue()", @@ -1657,7 +1649,7 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { else { if (index < FIRST_HAMA_PARAM) { status = ADDriver::writeFloat64(pasynUser, value); - } + } } if (status) @@ -1678,7 +1670,7 @@ asynStatus Orca::writeFloat64(asynUser* pasynUser, epicsFloat64 value) { //============================================================================ void Orca::report(FILE* fp, int details) { double dvalue = 0; - fprintf(fp, "Orcamatsu Orca Flash4.0 driver\n"); + fprintf(fp, "Hammamatsu Orca Flash4.0 driver\n"); if (details < 1) return; // Sensor mode and speed @@ -1858,16 +1850,14 @@ int Orca::connectCamera(void) { memset(&m_apiInit, 0, sizeof(m_apiInit)); m_apiInit.size = sizeof(m_apiInit); - asynPrint(pasynUserSelf, ASYN_TRACE_FLOW, "%s:%s: connecting camera %d\n", - driverName, functionName, m_id); + FLOW_ARGS("connecting camera %d", m_id); m_err = dcamapi_init(&m_apiInit); if (failed(m_err)) { printError(m_hdcam, m_err, "dcamapi_init()", NULL); } else { nDevices = m_apiInit.iDeviceCount; - printf("dcamapi_init() found %d device(s). \n", nDevices); - printf("camera with index 0 will be used\n"); + FLOW_ARGS("dcamapi_init() found %d device(s)", nDevices); iDevice = 0; } @@ -1951,7 +1941,6 @@ asynStatus Orca::stopAcquire(void) { printError(m_hdcam, m_err, "dcamcap_stop()"); status = asynError; } - printf("Stop Capture\n"); freeBuffers(); return status; @@ -1990,6 +1979,7 @@ asynStatus Orca::accessCapturedImage(HDCAM hdcam, int32 iFrame, void* buf, int32 rowbytes, int32 cx, int32 cy, epicsUInt32& ts_sec, epicsUInt32& ts_microsec) { + const char* functionName = "accessCapturedImage"; DCAMERR err; // prepare frame param @@ -2006,7 +1996,7 @@ asynStatus Orca::accessCapturedImage(HDCAM hdcam, int32 iFrame, void* buf, } if (bufframe.type != DCAM_PIXELTYPE_MONO16) { - printf("not implement pixel type\n"); + FLOW("not implement pixel type"); return asynError; } @@ -2122,6 +2112,7 @@ void Orca::printError(HDCAM hdcam, DCAMERR errid, const char* apiname, //============================================================================ void Orca::printInfo(HDCAM hdcam) { + const char* functionName = "printInfo"; char model[256]; char cameraid[64]; char bus[64]; @@ -2135,7 +2126,7 @@ void Orca::printInfo(HDCAM hdcam) { } else if (!dcamdev_string(err, hdcam, DCAM_IDSTR_BUS, bus, sizeof(bus))) { printError(hdcam, err, "dcamdev_getstring(DCAM_IDSTR_BUS)\n"); } else { - printf("%s (%s) on %s\n", model, cameraid, bus); + FLOW_ARGS("%s (%s) on %s\n", model, cameraid, bus); } }