diff --git a/ADHamaApp/Db/.DS_Store b/ADHamaApp/Db/.DS_Store deleted file mode 100644 index 6181c29..0000000 Binary files a/ADHamaApp/Db/.DS_Store and /dev/null differ diff --git a/ADHamaApp/src/hama.dbd b/ADHamaApp/src/hama.dbd deleted file mode 100644 index fa1b18e..0000000 --- a/ADHamaApp/src/hama.dbd +++ /dev/null @@ -1 +0,0 @@ -registrar("hamaRegister") diff --git a/ADHama.Makefile b/ADOrca.Makefile similarity index 97% rename from ADHama.Makefile rename to ADOrca.Makefile index fb86eff..9c85548 100644 --- a/ADHama.Makefile +++ b/ADOrca.Makefile @@ -56,7 +56,7 @@ EXCLUDE_ARCHS += linux-ppc64e6500 # ############################################################################ -APP := ADHamaApp +APP := ADOrcaApp APPDB := $(APP)/Db APPSRC := $(APP)/src APPCMDS := $(APP)/cmds @@ -88,8 +88,8 @@ USR_INCLUDES += -DLINUX -I ../support/dcamsdk4/inc/ # ############################################################################ -# SOURCES += $(APPSRC)/ADHamaMain.cpp -SOURCES += $(APPSRC)/hama.cpp +# SOURCES += $(APPSRC)/ADOrcaMain.cpp +SOURCES += $(APPSRC)/orca.cpp # SOURCES += support/dcamsdk4/misc/common.cpp ############################################################################ @@ -98,7 +98,7 @@ SOURCES += $(APPSRC)/hama.cpp # ############################################################################ -DBDS += $(APPSRC)/hama.dbd +DBDS += $(APPSRC)/orca.dbd ############################################################################ diff --git a/ADHamaApp/Db/hama.template b/ADOrcaApp/Db/orca.template similarity index 99% rename from ADHamaApp/Db/hama.template rename to ADOrcaApp/Db/orca.template index fa147f7..acf8c1e 100644 --- a/ADHamaApp/Db/hama.template +++ b/ADOrcaApp/Db/orca.template @@ -1,4 +1,5 @@ # Database for the records specific to the Hamamatsu Orca Flash4.0 cameras +# include "ADBase.template" diff --git a/ADHamaApp/src/ADHamaMain.cpp b/ADOrcaApp/src/ADOrcaMain.cpp similarity index 94% rename from ADHamaApp/src/ADHamaMain.cpp rename to ADOrcaApp/src/ADOrcaMain.cpp index bdf0d07..084f6c3 100644 --- a/ADHamaApp/src/ADHamaMain.cpp +++ b/ADOrcaApp/src/ADOrcaMain.cpp @@ -1,4 +1,4 @@ -/* ADHamaMain.cpp */ +/* ADOrcaMain.cpp */ /* Author: Tomasz Brys */ /* Date: 2022-03-16 */ diff --git a/ADHamaApp/src/hama.cpp b/ADOrcaApp/src/orca.cpp similarity index 96% rename from ADHamaApp/src/hama.cpp rename to ADOrcaApp/src/orca.cpp index f8cde03..abf5042 100644 --- a/ADHamaApp/src/hama.cpp +++ b/ADOrcaApp/src/orca.cpp @@ -13,7 +13,7 @@ #include #include -#include "hama.h" +#include "orca.h" // --- includes from DCMAPI ---- #include "dcamprop.h" // @@ -24,21 +24,21 @@ using namespace std; //#define NUM_HAMA_PARAMS ((int)(&LAST_HAMA_PARAM - &FIRST_HAMA_PARAM + 1)) -static const char *driverName="drvHama"; +static const char *driverName="drvOrca"; static void c_imagetask(void *arg) { - Hama *p = (Hama *)arg; + Orca *p = (Orca *)arg; p->imageTask(); } static void c_temperaturetask(void *arg) { - Hama *p = (Hama *)arg; + Orca *p = (Orca *)arg; p->temperatureTask(); } //============================================================================ -Hama::Hama(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, +Orca::Orca(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, int priority, int stackSize, int maxFrames) : ADDriver(portName, 1, 0, maxBuffers, maxMemory, asynEnumMask, asynEnumMask, @@ -48,9 +48,9 @@ Hama::Hama(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, m_hdcam(NULL), m_id(0) { - const char *functionName = "hamaDetector::hamaDetector"; + const char *functionName = "orcaDetector::orcaDetector"; - printf("[DEBUG] === Constructor ADHama ===\n"); + printf("[DEBUG] === Constructor ADOrca ===\n"); printf("[DEBUG] driverName: %s\n", driverName); stopThread = 0; @@ -65,7 +65,7 @@ Hama::Hama(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, //General createParam( hFrameRateString, asynParamFloat64, &hFrameRate); - createParam( hHamaNameString, asynParamOctet, &hHamaName); + createParam( hOrcaNameString, asynParamOctet, &hOrcaName); createParam( hVendorString, asynParamOctet, &hVendor); createParam( hModelString, asynParamOctet, &hModel); createParam( hCameraIDString, asynParamOctet, &hCameraID); @@ -196,13 +196,13 @@ Hama::Hama(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, printf("\n\n============================ Start Threads =======================\n"); /* launch image read task */ - epicsThreadCreate("HamaImageTask", + epicsThreadCreate("OrcaImageTask", epicsThreadPriorityMedium, epicsThreadGetStackSize(epicsThreadStackMedium), c_imagetask, this); /* launch temp read task */ - epicsThreadCreate("HamaTemperatureTask", + epicsThreadCreate("OrcaTemperatureTask", epicsThreadPriorityMedium, epicsThreadGetStackSize(epicsThreadStackMedium), c_temperaturetask, this); @@ -210,17 +210,17 @@ Hama::Hama(const char* portName, int cameraId, int maxBuffers, size_t maxMemory, /* shutdown on exit */ //epicsAtExit(c_shutdown, this); - printf("\n\n=== END Constructor ADHama ===\n"); + printf("\n\n=== END Constructor ADOrca ===\n"); printf("===================================================================\n"); } //============================================================================ -//Hama::~Hama(){ +//Orca::~Orca(){ // // not sure if the destructor has to be define here... -// printf("[DEBUG] === Destructor ADHama ===\n"); +// printf("[DEBUG] === Destructor ADOrca ===\n"); //} //======================================================================================================== -int Hama::initCamera(){ +int Orca::initCamera(){ int err = 0; @@ -322,7 +322,7 @@ return err; } //============================================================================ -int Hama::readParameterStr(int propertyID){ +int Orca::readParameterStr(int propertyID){ asynStatus status = asynSuccess; @@ -388,7 +388,7 @@ return status; //============================================================================ -int Hama::readParameter(int propertyID, bool processPV) { +int Orca::readParameter(int propertyID, bool processPV) { asynStatus status = asynSuccess; double dvalue = 0; @@ -764,7 +764,7 @@ int Hama::readParameter(int propertyID, bool processPV) { //============================================================================ -void Hama::imageTask(){ +void Orca::imageTask(){ int status; unsigned char *image; int acquire; @@ -814,7 +814,7 @@ void Hama::imageTask(){ lock(); if (prevAcquisitionCount < (uint64_t)captransferinfo.nFrameCount) { - printf("\nHama Frame Count: %d\n", captransferinfo.nFrameCount); + printf("\nOrca Frame Count: %d\n", captransferinfo.nFrameCount); prevAcquisitionCount = captransferinfo.nFrameCount; // get image information @@ -916,7 +916,7 @@ void Hama::imageTask(){ } } //============================================================================ -void Hama::temperatureTask(){ +void Orca::temperatureTask(){ static const char *functionName = "tempTask"; asynStatus status = asynSuccess; double dvalue = 0; @@ -948,7 +948,7 @@ void Hama::temperatureTask(){ } //============================================================================ -asynStatus Hama::writeInt32(asynUser *pasynUser, epicsInt32 value) { +asynStatus Orca::writeInt32(asynUser *pasynUser, epicsInt32 value) { asynStatus status = asynSuccess; const char* functionName = "writeInt32"; const char* paramName; @@ -1418,7 +1418,7 @@ return status; //============================================================================ -asynStatus Hama::writeFloat64(asynUser *pasynUser, epicsFloat64 value){ +asynStatus Orca::writeFloat64(asynUser *pasynUser, epicsFloat64 value){ asynStatus status = asynSuccess; const char* functionName = "writeFloat64"; @@ -1606,9 +1606,9 @@ else if (index == hInternalLineInterval) { //============================================================================ -void Hama::report(FILE *fp, int details){ +void Orca::report(FILE *fp, int details){ double dvalue = 0; - fprintf(fp, "Hamamatsu Orca Flash4.0 driver\n"); + fprintf(fp, "Orcamatsu Orca Flash4.0 driver\n"); if (details < 1) return; // Sensor mode and speed @@ -1762,7 +1762,7 @@ void Hama::report(FILE *fp, int details){ } //============================================================================ -int Hama::connectCamera(void){ +int Orca::connectCamera(void){ static const char *functionName = "connectCamera"; int nDevices = 0; @@ -1823,7 +1823,7 @@ int Hama::connectCamera(void){ } //============================================================================ -int Hama::disconnectCamera(void){ +int Orca::disconnectCamera(void){ static const char *functionName = "disconnectCamera"; @@ -1858,7 +1858,7 @@ int Hama::disconnectCamera(void){ } //============================================================================ -int Hama::allocateBuffers(unsigned int nBuffers) { +int Orca::allocateBuffers(unsigned int nBuffers) { m_err = dcambuf_alloc(m_hdcam, nBuffers); if(failed(m_err)) { printError(m_hdcam, m_err, "dcambuf_alloc()"); @@ -1868,7 +1868,7 @@ int Hama::allocateBuffers(unsigned int nBuffers) { } //============================================================================ -int Hama::freeBuffers(){ +int Orca::freeBuffers(){ m_err = dcambuf_release( m_hdcam ); if( failed(m_err) ) printError( m_hdcam, m_err, "dcambuf_release()" ); @@ -1877,7 +1877,7 @@ return 0; } //============================================================================ -asynStatus Hama::stopAcquire(void) +asynStatus Orca::stopAcquire(void) { asynStatus status = asynSuccess; m_err = dcamcap_stop(m_hdcam); @@ -1892,7 +1892,7 @@ asynStatus Hama::stopAcquire(void) } //============================================================================ -asynStatus Hama::startAcquire(void) +asynStatus Orca::startAcquire(void) { asynStatus status = asynSuccess; @@ -1921,7 +1921,7 @@ inline void* memcpy_s( void* dst, size_t dstsize, const void* src, size_t srclen } //============================================================================ -asynStatus Hama::accessCapturedImage(HDCAM hdcam, int32 iFrame, void* buf, +asynStatus Orca::accessCapturedImage(HDCAM hdcam, int32 iFrame, void* buf, int32 rowbytes, int32 cx, int32 cy, epicsUInt32& ts_sec, epicsUInt32& ts_microsec) { @@ -1967,7 +1967,7 @@ asynStatus Hama::accessCapturedImage(HDCAM hdcam, int32 iFrame, void* buf, //======================================================================================================== -void Hama::getImageInformation(HDCAM hdcam, int32& pixeltype, int32& width, int32& rowbytes, int32& height, int32& framebytes) +void Orca::getImageInformation(HDCAM hdcam, int32& pixeltype, int32& width, int32& rowbytes, int32& height, int32& framebytes) { DCAMERR err; double property_value; @@ -2025,7 +2025,7 @@ void Hama::getImageInformation(HDCAM hdcam, int32& pixeltype, int32& width, int3 } //============================================================================ -asynStatus Hama::imageTransferStatus(HDCAM hdcam, DCAMCAP_TRANSFERINFO &captransferinfo) +asynStatus Orca::imageTransferStatus(HDCAM hdcam, DCAMCAP_TRANSFERINFO &captransferinfo) { DCAMERR err; // transferinfo param @@ -2047,7 +2047,7 @@ asynStatus Hama::imageTransferStatus(HDCAM hdcam, DCAMCAP_TRANSFERINFO &captrans } //============================================================================ -void Hama::printError(HDCAM hdcam, DCAMERR errid, const char* apiname, const char* fmt, ...){ +void Orca::printError(HDCAM hdcam, DCAMERR errid, const char* apiname, const char* fmt, ...){ char errtext[ 256 ]; @@ -2070,7 +2070,7 @@ void Hama::printError(HDCAM hdcam, DCAMERR errid, const char* apiname, const cha //============================================================================ -void Hama::printInfo(HDCAM hdcam){ +void Orca::printInfo(HDCAM hdcam){ char model[ 256 ]; char cameraid[ 64 ]; @@ -2095,7 +2095,7 @@ void Hama::printInfo(HDCAM hdcam){ //============================================================================ -int Hama::dcamdev_string( DCAMERR& err, HDCAM hdcam, int32 idStr, char* text, int32 textbytes ) { +int Orca::dcamdev_string( DCAMERR& err, HDCAM hdcam, int32 idStr, char* text, int32 textbytes ) { DCAMDEV_STRING param; memset( ¶m, 0, sizeof(param) ); @@ -2109,7 +2109,7 @@ return ! failed( err ); } //============================================================================ -asynStatus Hama::setFeature(int featureIndex, double value) { +asynStatus Orca::setFeature(int featureIndex, double value) { DCAMERR err; err = dcamprop_setvalue(m_hdcam, featureIndex, value); if(failed(err)) { @@ -2120,7 +2120,7 @@ asynStatus Hama::setFeature(int featureIndex, double value) { } //============================================================================ -int Hama::getProperties(){ +int Orca::getProperties(){ printf("\n[DEBUG] Function:getProperties\n"); int32 iProp = 0; // property IDs @@ -2186,7 +2186,7 @@ int Hama::getProperties(){ return 0; } -int Hama::roundToNearestMultipleOfFour(int value) { +int Orca::roundToNearestMultipleOfFour(int value) { int remainder = value % 4; if (remainder == 0) return value; else if (remainder <= 2) return value - remainder; @@ -2200,47 +2200,47 @@ int Hama::roundToNearestMultipleOfFour(int value) { -extern "C" int HamaConfig(const char *portName, int cameraId, int maxBuffers, +extern "C" int OrcaConfig(const char *portName, int cameraId, int maxBuffers, size_t maxMemory, int priority, int stackSize, int maxFrames) { - new Hama(portName, cameraId, maxBuffers, maxMemory, priority, stackSize, + new Orca(portName, cameraId, maxBuffers, maxMemory, priority, stackSize, maxFrames); return(asynSuccess); } //============================================================================ -static const iocshArg HamaConfigArg0 = {"Port name", iocshArgString}; -static const iocshArg HamaConfigArg1 = {"CameraId", iocshArgInt}; -static const iocshArg HamaConfigArg2 = {"maxBuffers", iocshArgInt}; -static const iocshArg HamaConfigArg3 = {"maxMemory", iocshArgInt}; -static const iocshArg HamaConfigArg4 = {"priority", iocshArgInt}; -static const iocshArg HamaConfigArg5 = {"stackSize", iocshArgInt}; -static const iocshArg HamaConfigArg6 = {"maxFrames", iocshArgInt}; -static const iocshArg * const HamaConfigArgs[] = { &HamaConfigArg0, - &HamaConfigArg1, - &HamaConfigArg2, - &HamaConfigArg3, - &HamaConfigArg4, - &HamaConfigArg5, - &HamaConfigArg6 }; +static const iocshArg OrcaConfigArg0 = {"Port name", iocshArgString}; +static const iocshArg OrcaConfigArg1 = {"CameraId", iocshArgInt}; +static const iocshArg OrcaConfigArg2 = {"maxBuffers", iocshArgInt}; +static const iocshArg OrcaConfigArg3 = {"maxMemory", iocshArgInt}; +static const iocshArg OrcaConfigArg4 = {"priority", iocshArgInt}; +static const iocshArg OrcaConfigArg5 = {"stackSize", iocshArgInt}; +static const iocshArg OrcaConfigArg6 = {"maxFrames", iocshArgInt}; +static const iocshArg * const OrcaConfigArgs[] = { &OrcaConfigArg0, + &OrcaConfigArg1, + &OrcaConfigArg2, + &OrcaConfigArg3, + &OrcaConfigArg4, + &OrcaConfigArg5, + &OrcaConfigArg6 }; //============================================================================ -static const iocshFuncDef confighama = {"devHamamatsuConfig", 7, HamaConfigArgs}; +static const iocshFuncDef configorca = {"devOrcamatsuConfig", 7, OrcaConfigArgs}; //============================================================================ -static void confighamaCallFunc(const iocshArgBuf *args) { - HamaConfig(args[0].sval, args[1].ival, args[2].ival, args[3].ival, +static void configorcaCallFunc(const iocshArgBuf *args) { + OrcaConfig(args[0].sval, args[1].ival, args[2].ival, args[3].ival, args[4].ival, args[5].ival, args[6].ival); } //============================================================================ -static void hamaRegister(void) { +static void orcaRegister(void) { - iocshRegister(&confighama, confighamaCallFunc); + iocshRegister(&configorca, configorcaCallFunc); } //============================================================================ extern "C" { -epicsExportRegistrar(hamaRegister); +epicsExportRegistrar(orcaRegister); } diff --git a/ADOrcaApp/src/orca.dbd b/ADOrcaApp/src/orca.dbd new file mode 100644 index 0000000..1cd0a06 --- /dev/null +++ b/ADOrcaApp/src/orca.dbd @@ -0,0 +1 @@ +registrar("orcaRegister") diff --git a/ADHamaApp/src/hama.h b/ADOrcaApp/src/orca.h similarity index 66% rename from ADHamaApp/src/hama.h rename to ADOrcaApp/src/orca.h index 8cd9d2e..79a01a8 100644 --- a/ADHamaApp/src/hama.h +++ b/ADOrcaApp/src/orca.h @@ -1,6 +1,7 @@ #ifndef DRV_HAMA_H #define DRV_HAMA_H + #include "ADDriver.h" #include "dcamapi4.h" @@ -10,7 +11,7 @@ #define MAX_V_SENSOR_SIZE 2048 #define hFrameRateString "H_FRAMERATE" -#define hHamaNameString "H_HAMA_NAME" /* asynOctet ro */ +#define hOrcaNameString "H_HAMA_NAME" /* asynOctet ro */ #define hVendorString "H_VENDOR" /* asynOctet ro */ #define hModelString "H_MODEL" /* asynOctet ro */ #define hCameraIDString "H_CAMERAID" /* asynOctet ro */ @@ -20,108 +21,108 @@ #define hModuleVersionString "H_MODULE_VERSION" /* asynOctet ro */ #define hDcamApiVersionString "H_DCAM_API_VERSION" /* asynOctet ro */ -// Sensor mode and speed -#define hSensorModeString "H_SENSOR_MODE" /* asynint32 rw */ -#define hReadoutSpeedString "H_READOUT_SPEED" /* asynInt32 rw */ -#define hReadoutDirectionString "H_READOUT_DIRECTION" /* asynIekt32 rw */ +// Sensor mode and speed +#define hSensorModeString "H_SENSOR_MODE" /* asynint32 rw */ +#define hReadoutSpeedString "H_READOUT_SPEED" /* asynInt32 rw */ +#define hReadoutDirectionString "H_READOUT_DIRECTION" /* asynIekt32 rw */ // Trigger -#define hTriggerSourceString "H_TRIGGER_SOURCE" /* asynInt32 rw */ -#define hTriggerModeString "H_TRIGGER_MODE" /* asynInt32 rw */ -#define hTriggerActiveString "H_TRIGGER_ACTIVE" /* asynInt32 rw */ +#define hTriggerSourceString "H_TRIGGER_SOURCE" /* asynInt32 rw */ +#define hTriggerModeString "H_TRIGGER_MODE" /* asynInt32 rw */ +#define hTriggerActiveString "H_TRIGGER_ACTIVE" /* asynInt32 rw */ #define hTriggerGlobalExposureString "H_TRIGGER_GLOBAL_EXPOSURE" /* asynInt32 rw */ -#define hTriggerPolarityString "H_TRIGGER_POLARITY" /* asynInt32 rw */ +#define hTriggerPolarityString "H_TRIGGER_POLARITY" /* asynInt32 rw */ #define hTriggerConnectorString "H_TRIGGER_CONNECTOR" /* asynInt32 rw */ -#define hTriggerTimesString "H_TRIGGER_TIMES" /* asynInt32 rw */ -#define hTriggerDelayString "H_TRIGGER_DELAY" /* asynFloat64 rw */ +#define hTriggerTimesString "H_TRIGGER_TIMES" /* asynInt32 rw */ +#define hTriggerDelayString "H_TRIGGER_DELAY" /* asynFloat64 rw */ #define hInternalTriggerHandlingString "H_INTERNAL_TRIGGER_HANDLING" /* asynInt32 rw */ // Sensor cooler -#define hSensorTemperatureString "H_SENSOR_TEMPERATURE" /* asynFloat64 ro */ -#define hSensorCoolerString "H_SENSOR_COOLER" /* asynInt32 rw */ -#define hSensorCoolerStatusString "H_SENSOR_COOLER_STATUS" /* asynInt32 ro */ +#define hSensorTemperatureString "H_SENSOR_TEMPERATURE" /* asynFloat64 ro */ +#define hSensorCoolerString "H_SENSOR_COOLER" /* asynInt32 rw */ +#define hSensorCoolerStatusString "H_SENSOR_COOLER_STATUS" /* asynInt32 ro */ // Binning and ROI -#define hBinningString "H_BINNING" /* asynInt32 rw */ -#define hSubarrayHPosString "H_SUBARRAY_HPOST" /* asynInt32 rw */ -#define hSubarrayHSizeString "H_SUBARRAY_HSIZE" /* asynInt32 rw */ -#define hSubarrayVPosString "H_SUBARRAY_VPOS" /* asynInt32 rw */ -#define hSubarrayVSizeString "H_SUBARRAY_VSIZE" /* asynInt32 rw */ -#define hSubarrayModeString "H_SUBARRAY_MODE" /* asynInt32 rw */ +#define hBinningString "H_BINNING" /* asynInt32 rw */ +#define hSubarrayHPosString "H_SUBARRAY_HPOST" /* asynInt32 rw */ +#define hSubarrayHSizeString "H_SUBARRAY_HSIZE" /* asynInt32 rw */ +#define hSubarrayVPosString "H_SUBARRAY_VPOS" /* asynInt32 rw */ +#define hSubarrayVSizeString "H_SUBARRAY_VSIZE" /* asynInt32 rw */ +#define hSubarrayModeString "H_SUBARRAY_MODE" /* asynInt32 rw */ // #define hFrameBundleMode (usb3 only not implemented) // #define hFrameBundleNumber (usb3 only not implemented) // ALU -#define hDefectCorrectModeString "H_DEFECTCORRECT_MODE" /* asynInt32 rw */ -#define hHotPixelCorrectLevelString "H_HOT_PIXEL_CORRECT_LEVEL" /* asynInt32 rw */ -#define hIntensityLutModeString "H_INTENSITY_LUT_MODE" /* asynInt32 rw */ -#define hIntensityLutPageString "H_INTENSITY_LUT_PAGE" /* asynInt32 ro */ -#define hExtractionModeString "H_EXTRACTION_MODE" /* asynInt32 ro */ +#define hDefectCorrectModeString "H_DEFECTCORRECT_MODE" /* asynInt32 rw */ +#define hHotPixelCorrectLevelString "H_HOT_PIXEL_CORRECT_LEVEL" /* asynInt32 rw */ +#define hIntensityLutModeString "H_INTENSITY_LUT_MODE" /* asynInt32 rw */ +#define hIntensityLutPageString "H_INTENSITY_LUT_PAGE" /* asynInt32 ro */ +#define hExtractionModeString "H_EXTRACTION_MODE" /* asynInt32 ro */ // output trigger #define hNumberOfOutputTriggerConnectorString "H_NUMBEROF_OUTPUTTRIGGERCONNECTOR" /* asynInt32 ro */ -#define hOutputTriggerSource0String "H_OUTPUT_TRIGGER_SOURCE0" /* asynInt32 rw */ -#define hOutputTriggerSource1String "H_OUTPUT_TRIGGER_SOURCE1" /* asynInt32 rw */ -#define hOutputTriggerSource2String "H_OUTPUT_TRIGGER_SOURCE2" /* asynInt32 rw */ +#define hOutputTriggerSource0String "H_OUTPUT_TRIGGER_SOURCE0" /* asynInt32 rw */ +#define hOutputTriggerSource1String "H_OUTPUT_TRIGGER_SOURCE1" /* asynInt32 rw */ +#define hOutputTriggerSource2String "H_OUTPUT_TRIGGER_SOURCE2" /* asynInt32 rw */ #define hOutputTriggerPolarity0String "H_OUTPUT_TRIGGER_POLARITY0" /* asynInt32 rw */ #define hOutputTriggerPolarity1String "H_OUTPUT_TRIGGER_POLARITY1" /* asynInt32 rw */ #define hOutputTriggerPolarity2String "H_OUTPUT_TRIGGER_POLARITY2" /* asynInt32 rw */ -#define hOutputTriggerActive0String "H_OUTPUT_TRIGGER_ACTIVE0" /* asynInt32 ro */ -#define hOutputTriggerActive1String "H_OUTPUT_TRIGGER_ACTIVE1" /* asynInt32 ro */ -#define hOutputTriggerActive2String "H_OUTPUT_TRIGGER_ACTIVE2" /* asynInt32 ro */ -#define hOutputTriggerDelay0String "H_OUTPUT_TRIGGER_DELAY0" /* asynFloat64 rw */ -#define hOutputTriggerDelay1String "H_OUTPUT_TRIGGER_DELAY1" /* asynFloat64 rw */ -#define hOutputTriggerDelay2String "H_OUTPUT_TRIGGER_DELAY2" /* asynFloat64 rw */ -#define hOutputTriggerPeriod0String "H_OUTPUT_TRIGGER_PERIOD0" /* asynFloat64 rw */ -#define hOutputTriggerPeriod1String "H_OUTPUT_TRIGGER_PERIOD1" /* asynFloat64 rw */ -#define hOutputTriggerPeriod2String "H_OUTPUT_TRIGGER_PERIOD2" /* asynFloat64 rw */ -#define hOutputTriggerKind0String "H_OUTPUT_TRIGGER_KIND0" /* asynInt32 rw */ -#define hOutputTriggerKind1String "H_OUTPUT_TRIGGER_KIND1" /* asynInt32 rw */ -#define hOutputTriggerKind2String "H_OUTPUT_TRIGGER_KIND2" /* asynInt32 rw */ +#define hOutputTriggerActive0String "H_OUTPUT_TRIGGER_ACTIVE0" /* asynInt32 ro */ +#define hOutputTriggerActive1String "H_OUTPUT_TRIGGER_ACTIVE1" /* asynInt32 ro */ +#define hOutputTriggerActive2String "H_OUTPUT_TRIGGER_ACTIVE2" /* asynInt32 ro */ +#define hOutputTriggerDelay0String "H_OUTPUT_TRIGGER_DELAY0" /* asynFloat64 rw */ +#define hOutputTriggerDelay1String "H_OUTPUT_TRIGGER_DELAY1" /* asynFloat64 rw */ +#define hOutputTriggerDelay2String "H_OUTPUT_TRIGGER_DELAY2" /* asynFloat64 rw */ +#define hOutputTriggerPeriod0String "H_OUTPUT_TRIGGER_PERIOD0" /* asynFloat64 rw */ +#define hOutputTriggerPeriod1String "H_OUTPUT_TRIGGER_PERIOD1" /* asynFloat64 rw */ +#define hOutputTriggerPeriod2String "H_OUTPUT_TRIGGER_PERIOD2" /* asynFloat64 rw */ +#define hOutputTriggerKind0String "H_OUTPUT_TRIGGER_KIND0" /* asynInt32 rw */ +#define hOutputTriggerKind1String "H_OUTPUT_TRIGGER_KIND1" /* asynInt32 rw */ +#define hOutputTriggerKind2String "H_OUTPUT_TRIGGER_KIND2" /* asynInt32 rw */ #define hOutputTriggerBaseSensor0String "H_OUTPUT_TRIGGER_BASE_SENSOR0" /* asynInt32 rw */ #define hOutputTriggerBaseSensor1String "H_OUTPUT_TRIGGER_BASE_SENSOR1" /* asynInt32 rw */ #define hOutputTriggerBaseSensor2String "H_OUTPUT_TRIGGER_BASE_SENSOR2" /* asynInt32 rw */ #define hOutputTriggerPreHsyncCountString "H_OUTPUT_TRIGGER_PRE_HSYNC_COUNT" /* asynInt32 rw */ // Master Puls -#define hMasterPulseModeString "H_MASTERPULSE_MODE" /* asynInt32 rw */ +#define hMasterPulseModeString "H_MASTERPULSE_MODE" /* asynInt32 rw */ #define hMasterPulseTriggerSourceString "H_MASTERPULSE_TRIGGER_SOURCE" /* asynInt32 rw */ -#define hMasterPulseIntervalString "H_MASTERPULSE_INTERVAL" /* asynFloat64 rw */ +#define hMasterPulseIntervalString "H_MASTERPULSE_INTERVAL" /* asynFloat64 rw */ #define hMasterPulseBurstTimesString "H_MASTERPULSE_BURST_TIMES" /* asynInt32 rw */ // Synchronious Timing -#define hTimingReadoutTimeString "H_TIMING_READOUT_TIME" /* asynFloat64 ro */ +#define hTimingReadoutTimeString "H_TIMING_READOUT_TIME" /* asynFloat64 ro */ #define hTimingCyclicTriggerPeriodString "H_TIMING_CYCLICTRIGGERPERIOD" /* asynFloat64 ro */ #define hTimingMinTriggerBlankingString "H_TIMING_MIN_TRIGGER_BLANKING" /* asynFloat64 ro */ #define hTimingMinTriggerIntervalString "H_TIMING_MIN_TRIGGER_INTERVAL" /* asynFloat64 ro */ #define hTimingGlobalExposureDelayString "H_TIMING_GLOBAL_EXPOSURE_DELAY" /* asynFloat64 ro */ -#define hTimingExposureString "H_TIMING_EXPOSURE" /* asynInt32 ro */ +#define hTimingExposureString "H_TIMING_EXPOSURE" /* asynInt32 ro */ #define hTimingInvalidExposurePeriodString "H_TIMING_INVALID_EXPOSURE_PERIOD" /* asynFloat64 ro */ -#define hInternalFrameRateString "H_INTERNAL_FRAME_RATE" /* asynFloat64 rw */ +#define hInternalFrameRateString "H_INTERNAL_FRAME_RATE" /* asynFloat64 rw */ #define hInternalFrameIntervalString "H_INTERNAL_FRAME_INTERVAL" /* asynFloat64 rw */ -#define hInternalLineSpeedString "H_INTERNAL_LINE_SPEED" /* asynFloat64 rw */ -#define hInternalLineIntervalString "H_INTERNAL_LINE_INTERVAL" /* asynFloat64 rw */ +#define hInternalLineSpeedString "H_INTERNAL_LINE_SPEED" /* asynFloat64 rw */ +#define hInternalLineIntervalString "H_INTERNAL_LINE_INTERVAL" /* asynFloat64 rw */ // System information -#define hColorTypeString "H_COLOR_TYPE" /* asynInt32 ro */ -#define hBitPerChannelString "H_BIT_PER_CHANNEL" /* asynInt32 rw */ -//#define hImageWidthString "H_IMAGE_WIDTH" /* asynInt32 ro */ -//#define hImageHeightString "H_IMAGE_HEIGHT" /* asynInt32 ro */ -#define hImageRowBytesString "H_IMAGE_ROWBYTES" /* asynInt32 ro */ -#define hImageFrameBytesString "H_IMAGE_FRAMEBYTES" /* asynInt32 ro */ -#define hImageTopOffsetBytesString "H_IMAGE_TOP_OFFSETBYTES" /* asynInt32 ro */ -#define hImagePixelTypeString "H_IMAGE_PIXEL_TYPE" /* asynInt32 rw */ -#define hBufferRowbytesString "H_BUFFER_ROWBYTES" /* asynInt32 ro */ -#define hBufferFramebytesString "H_BUFFER_FRAMEBYTES" /* asynInt32 ro */ -#define hBufferTopOffsetBytesString "H_BUFFER_TOP_OFFSETBYTES" /* asynInt32 ro */ -#define hBufferPixelTypeString "H_BUFFER_PIXEL_TYPE" /* asynInt32 ro */ +#define hColorTypeString "H_COLOR_TYPE" /* asynInt32 ro */ +#define hBitPerChannelString "H_BIT_PER_CHANNEL" /* asynInt32 rw */ +//#define hImageWidthString "H_IMAGE_WIDTH" /* asynInt32 ro */ +//#define hImageHeightString "H_IMAGE_HEIGHT" /* asynInt32 ro */ +#define hImageRowBytesString "H_IMAGE_ROWBYTES" /* asynInt32 ro */ +#define hImageFrameBytesString "H_IMAGE_FRAMEBYTES" /* asynInt32 ro */ +#define hImageTopOffsetBytesString "H_IMAGE_TOP_OFFSETBYTES" /* asynInt32 ro */ +#define hImagePixelTypeString "H_IMAGE_PIXEL_TYPE" /* asynInt32 rw */ +#define hBufferRowbytesString "H_BUFFER_ROWBYTES" /* asynInt32 ro */ +#define hBufferFramebytesString "H_BUFFER_FRAMEBYTES" /* asynInt32 ro */ +#define hBufferTopOffsetBytesString "H_BUFFER_TOP_OFFSETBYTES" /* asynInt32 ro */ +#define hBufferPixelTypeString "H_BUFFER_PIXEL_TYPE" /* asynInt32 ro */ #define hRecordFixedBytesPerFileString "H_RECORD_FIXED_BYTES_PER_FILE" /* asynInt32 ro */ #define hRecordFixedBytesPerSessionString "H_RECORD_FIXED_BYTES_PER_SESION" /* asynInt32 ro */ #define hRecordFixedBytesPerFrameString "H_RECORD_FIXED_BYTES_PER_FRAME" /* asynInt32 ro */ -#define hSystemAliveString "H_SYSTEM_ALIVE" /* asynInt32 ro */ +#define hSystemAliveString "H_SYSTEM_ALIVE" /* asynInt32 ro */ #define hConversionFactorCoeffString "H_CONVERSIONFACTOR_COEFF" /* asynFloat64 ro */ #define hConversionFactorOffsetString "H_CONVERSIONFACTOR_OFFSET" /* asynFloat64 ro */ -#define hNumberOfViewString "H_NUMBER_OF_VIEW" /* asynInt32 ro */ +#define hNumberOfViewString "H_NUMBER_OF_VIEW" /* asynInt32 ro */ #define hImageDetectorPixelWidthString "H_IMAGE_DETECTOR_PIXEL_WIDTH" /* asynFloat64 ro */ #define hImageDetectorPixelHeightString "H_IMAGE_DETECTOR_PIXEL_HEIGHT" /* asynFloat64 ro */ #define hImageDetectorPixelNumHorzString "H_IMAGE_DETECTOR_PIXEL_NUM_HORZ" /* asynInt32 ro */ @@ -136,11 +137,11 @@ #define DETECTOR_PIXEL_NUM_HORZ 0x00420830 #define DETECTOR_PIXEL_NUM_VERT 0x00420840 -class epicsShareClass Hama : public ADDriver { +class epicsShareClass Orca : public ADDriver { public: - Hama(const char*, int, int, size_t, int, int, int); -// ~Hama(); + Orca(const char*, int, int, size_t, int, int, int); +// ~Orca(); /* override ADDriver methods */ virtual asynStatus writeInt32(asynUser *pasynUser, epicsInt32 value); virtual asynStatus writeFloat64(asynUser *pasynUser, epicsFloat64 value); @@ -158,7 +159,7 @@ public: protected: int hFrameRate; #define FIRST_HAMA_PARAM hFrameRate - int hHamaName; + int hOrcaName; int hVendor; int hModel; int hCameraID; diff --git a/README.md b/README.md index cadf2f4..d572142 100644 --- a/README.md +++ b/README.md @@ -15,15 +15,15 @@ conda create -n hama epics-base require tclx make compilers adcore busy To activate env: -conda activate hama +conda activate orca git clone ... -cd git/ADHama +cd git/ADOrca compilation: -make -f ADHama.Makefile LIBVERSION=0.1 clean uninstall build db install +make -f ADOrca.Makefile LIBVERSION=0.1 clean uninstall build db install execution: diff --git a/cmds/st.cmd b/cmds/st.cmd index 6aa4d64..a109039 100644 --- a/cmds/st.cmd +++ b/cmds/st.cmd @@ -1,9 +1,9 @@ # This should be a test startup script -require adhama +require adorca require adpluginkafka -epicsEnvSet("PREFIX", "Hama:") -epicsEnvSet("PORT", "HAMA") +epicsEnvSet("PREFIX", "Orca:") +epicsEnvSet("PORT", "ORCA") epicsEnvSet("CAMERA", "0") epicsEnvSet("QSIZE", "21") epicsEnvSet("XSIZE", "2048") @@ -17,11 +17,11 @@ epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", "64000000") epicsEnvSet("EVR", "Labs-ECDC:TS-EVR-11") epicsEnvSet("EVR_EVENT", "B") -# iocshLoad("$(adhama_DIR)ADHama.iocsh") +# iocshLoad("$(adorca_DIR)ADOrca.iocsh") -devHamamatsuConfig("$(PORT)", $(CAMERA), 0, 0, 0, 0, 10) +devOrcamatsuConfig("$(PORT)", $(CAMERA), 0, 0, 0, 0, 10) -dbLoadRecords("$(adhama_DIR)db/hama.db","P=$(PREFIX),R=cam1:,EVR=$(EVR),E=$(EVR_EVENT),PORT=$(PORT),ADDR=0,TIMEOUT=1") +dbLoadRecords("$(adorca_DIR)db/orca.db","P=$(PREFIX),R=cam1:,EVR=$(EVR),E=$(EVR_EVENT),PORT=$(PORT),ADDR=0,TIMEOUT=1") #asynSetTraceMask("$(PORT)",-1,0x9) #asynSetTraceIOMask("$(PORT)",-1,0x2) @@ -36,34 +36,34 @@ NDPvaConfigure("PVA1", $(QSIZE), 0, "$(PORT)", 0, "$(PREFIX)Pva1:Image", 0, 0, 0 dbLoadRecords("$(adcore_DIR)/db/NDPva.template", "P=$(PREFIX),R=Pva1:, PORT=PVA1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)") # -# Create a standard arrays plugin, set it to get data from hama driver. +# Create a standard arrays plugin, set it to get data from orca driver. NDStdArraysConfigure("Image1", "$(QSIZE)", 0, "$(PORT)", 0, 0) dbLoadRecords("NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT),TYPE=Int32,FTVL=LONG,NELEMENTS=$(NELEMENTS)") -# Create a kafka plugin, set it to get data from hama driver. +# Create a kafka plugin, set it to get data from orca driver. #epicsEnvSet("KFK_TOPIC", "ymir_camera") epicsEnvSet("KFK_TOPIC", "nido_camera") # Kafka plugin -epicsEnvSet("KFK_CONFIG_FILE_PATH", "/home/iocuser/git/adhama/cmds/kafka.conf") +epicsEnvSet("KFK_CONFIG_FILE_PATH", "/home/iocuser/git/adorca/cmds/kafka.conf") -KafkaPluginConfigure("KFK1", 3, 1, "$(PORT)", 0, -1, "$(KFK_TOPIC)", "hama_source","$(KFK_CONFIG_FILE_PATH)") +KafkaPluginConfigure("KFK1", 3, 1, "$(PORT)", 0, -1, "$(KFK_TOPIC)", "orca_source","$(KFK_CONFIG_FILE_PATH)") dbLoadRecords("$(adpluginkafka_DIR)db/adpluginkafka.db", "P=$(PREFIX), R=Kfk1:, PORT=KFK1, ADDR=0, TIMEOUT=1, NDARRAY_PORT=$(PORT)") startPVAServer iocInit() -dbpf Hama:cam1:PoolUsedMem.SCAN 0 -dbpf Hama:image1:EnableCallbacks 1 -dbpf Hama:Kfk1:EnableCallbacks 1 +dbpf Orca:cam1:PoolUsedMem.SCAN 0 +dbpf Orca:image1:EnableCallbacks 1 +dbpf Orca:Kfk1:EnableCallbacks 1 -dbpf Hama:cam1:AcquireTime .001 -dbpf Hama:cam1:AcquirePeriod .02 -dbpf Hama:cam1:TriggerSource-S 1 # external -dbpf Hama:cam1:NumImages 10 -dbpf Hama:cam1:ImageMode 1 +dbpf Orca:cam1:AcquireTime .001 +dbpf Orca:cam1:AcquirePeriod .02 +dbpf Orca:cam1:TriggerSource-S 1 # external +dbpf Orca:cam1:NumImages 10 +dbpf Orca:cam1:ImageMode 1 -#dbpf Hama:cam1:TriggerPolarity-S # 2-positive, 1-negative +#dbpf Orca:cam1:TriggerPolarity-S # 2-positive, 1-negative epicsThreadSleep(1.0) diff --git a/iocsh/ADHama.iocsh b/iocsh/ADOrca.iocsh similarity index 70% rename from iocsh/ADHama.iocsh rename to iocsh/ADOrca.iocsh index 1d5100b..12f5cf1 100644 --- a/iocsh/ADHama.iocsh +++ b/iocsh/ADOrca.iocsh @@ -1,3 +1,3 @@ # This should be the included snippet to configure and run the deployed IOC. It should be loaded with # -# iocshLoad("$(ADHama_DIR)/ADHama.iocsh") +# iocshLoad("$(ADOrca_DIR)/ADOrca.iocsh")