From f854495ca7ee8c3ebef46a30fdd0bb6dfd35be60 Mon Sep 17 00:00:00 2001 From: Jakub Wlodek Date: Fri, 10 May 2019 22:58:01 -0400 Subject: [PATCH 01/15] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b653ad6..14d8ee6 100755 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Author: Jakub Wlodek Corresponding Author: Kazimierz Gofron Created: July 19, 2018 -Last Updated: January 18, 2018 +Last Updated: January 18, 2019 Copyright (c): 2018-2019 Brookhaven National Laboratory ### An EPICS Driver for USB Video Class (UVC) devices From 28c777b79495e4a47403a0769f4ea5224dc3274f Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 09:33:43 -0400 Subject: [PATCH 02/15] working on autosave, fixed memory leak in uvcFrame2NDArray function --- adUVCApp/Db/ADUVC_settings.req | 21 ++- adUVCApp/src/ADUVC.cpp | 125 ++++++++++-------- .../iocBoot/iocADUVC/ADUVC_settings.req | 0 .../iocBoot/iocADUVC/auto_settings.req | 12 +- iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd | 12 +- 5 files changed, 89 insertions(+), 81 deletions(-) delete mode 100755 iocs/adUVCIOC/iocBoot/iocADUVC/ADUVC_settings.req diff --git a/adUVCApp/Db/ADUVC_settings.req b/adUVCApp/Db/ADUVC_settings.req index e1abfb9..945d01a 100755 --- a/adUVCApp/Db/ADUVC_settings.req +++ b/adUVCApp/Db/ADUVC_settings.req @@ -1,6 +1,15 @@ -$(P)$(R)UVCBrightness -$(P)$(R)UVCBacklightCompensation -$(P)$(R)UVCContrast -$(P)$(R)UVCPowerLine -$(P)$(R)UVCHue -$(P)$(R)UVCSaturation \ No newline at end of file +file "ADBase_settings.req", P=$(P), R=$(R) +$(P)$(R)UVC_COMPLIANCE +$(P)$(R)UVC_REFCOUNT +$(P)$(R)UVC_FRAMERATE +$(P)$(R)UVC_VENDOR +$(P)$(R)UVC_PRODUCT +$(P)$(R)UVC_FORMAT +$(P)$(R)UVC_GAMMA +$(P)$(R)UVC_BACKLIGHT +$(P)$(R)UVC_BRIGHTNESS +$(P)$(R)UVC_CONTRAST +$(P)$(R)UVC_POWER +$(P)$(R)UVC_HUE +$(P)$(R)UVC_SATURATION +$(P)$(R)UVC_SHARPNESS \ No newline at end of file diff --git a/adUVCApp/src/ADUVC.cpp b/adUVCApp/src/ADUVC.cpp index a3dec2b..77bbad5 100755 --- a/adUVCApp/src/ADUVC.cpp +++ b/adUVCApp/src/ADUVC.cpp @@ -117,14 +117,14 @@ asynStatus ADUVC::connectToDeviceUVC(int connectionType, const char* serialNumbe return asynError; } else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Initialized UVC context\n", driverName, functionName); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Initialized UVC context\n", driverName, functionName); } if(connectionType == 0){ - asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Searching for UVC device with serial number: %s\n", driverName, functionName, serialNumber); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Searching for UVC device with serial number: %s\n", driverName, functionName, serialNumber); deviceStatus = uvc_find_device(pdeviceContext, &pdevice, 0, 0, serialNumber); } else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Searching for UVC device with Product ID: %d\n", driverName, functionName, productID); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Searching for UVC device with Product ID: %d\n", driverName, functionName, productID); deviceStatus = uvc_find_device(pdeviceContext, &pdevice, 0, productID, NULL); } if(deviceStatus<0){ @@ -132,7 +132,7 @@ asynStatus ADUVC::connectToDeviceUVC(int connectionType, const char* serialNumbe return asynError; } else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Found UVC device\n", driverName, functionName); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Found UVC device\n", driverName, functionName); } deviceStatus = uvc_open(pdevice, &pdeviceHandle); if(deviceStatus<0){ @@ -141,7 +141,7 @@ asynStatus ADUVC::connectToDeviceUVC(int connectionType, const char* serialNumbe } else{ connected = 1; - asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Opened UVC device\n", driverName, functionName); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Opened UVC device\n", driverName, functionName); } return status; } @@ -384,11 +384,12 @@ void ADUVC::newFrameCallbackWrapper(uvc_frame_t* frame, void* ptr){ */ asynStatus ADUVC::uvc2NDArray(uvc_frame_t* frame, NDArray* pArray, NDDataType_t dataType, NDColorMode_t colorMode, size_t imBytes){ static const char* functionName = "uvc2NDArray"; + asynStatus status = asynSuccess; // if data is grayscale, we do not need to convert it, we just copy over the data. if(colorMode == NDColorModeMono){ if(frame->data_bytes != imBytes){ asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Error invalid frame size. Frame has %d bytes and array has %d bytes\n", driverName, functionName, (int) frame->data_bytes, (int) imBytes); - return asynError; + status = asynError; } else{ if(dataType == NDUInt8 || dataType == NDInt8) memcpy((unsigned char*) pArray->pData,(unsigned char*) frame->data, imBytes); @@ -401,60 +402,69 @@ asynStatus ADUVC::uvc2NDArray(uvc_frame_t* frame, NDArray* pArray, NDDataType_t uvc_frame_t* rgb = uvc_allocate_frame(frame->width * frame->height *3); if(!rgb){ asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s ERROR: Unable to allocate frame\n", driverName, functionName); - return asynError; - } - // convert any uvc frame format to rgb (to simplify the converson to NDArray, since area detector supports the rgb format) - uvc_frame_format frameFormat = frame->frame_format; - switch(frameFormat){ - case UVC_FRAME_FORMAT_YUYV: - deviceStatus = uvc_any2rgb(frame, rgb); - break; - case UVC_FRAME_FORMAT_UYVY: - deviceStatus = uvc_any2rgb(frame, rgb); - break; - case UVC_FRAME_FORMAT_MJPEG: - deviceStatus = uvc_mjpeg2rgb(frame, rgb); - break; - case UVC_FRAME_FORMAT_RGB: - deviceStatus = uvc_any2rgb(frame, rgb); - break; - default: - asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s ERROR: Unsupported UVC format\n", driverName, functionName); - uvc_free_frame(rgb); - return asynError; - } - if(deviceStatus<0){ - reportUVCError(deviceStatus, functionName); - uvc_free_frame(rgb); - return asynError; + status = asynError; } else{ - if(rgb->data_bytes != imBytes){ - asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Error invalid frame sizeFrame has %d bytes and array has %d bytes\n", driverName, functionName, (int) rgb->data_bytes, (int) imBytes); - uvc_free_frame(rgb); - return asynError; + // convert any uvc frame format to rgb (to simplify the converson to NDArray, since area detector supports the rgb format) + uvc_frame_format frameFormat = frame->frame_format; + switch(frameFormat){ + case UVC_FRAME_FORMAT_YUYV: + deviceStatus = uvc_any2rgb(frame, rgb); + break; + case UVC_FRAME_FORMAT_UYVY: + deviceStatus = uvc_any2rgb(frame, rgb); + break; + case UVC_FRAME_FORMAT_MJPEG: + deviceStatus = uvc_mjpeg2rgb(frame, rgb); + break; + case UVC_FRAME_FORMAT_RGB: + deviceStatus = uvc_any2rgb(frame, rgb); + break; + default: + asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s ERROR: Unsupported UVC format\n", driverName, functionName); + uvc_free_frame(rgb); + status = asynError; } - else{ - memcpy(pArray->pData, rgb->data, imBytes); + if(status != asynError){ + if(deviceStatus<0){ + reportUVCError(deviceStatus, functionName); + uvc_free_frame(rgb); + status = asynError; + } + else{ + if(rgb->data_bytes != imBytes){ + asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Error invalid frame sizeFrame has %d bytes and array has %d bytes\n", driverName, functionName, (int) rgb->data_bytes, (int) imBytes); + uvc_free_frame(rgb); + status = asynError; + } + else{ + memcpy(pArray->pData, rgb->data, imBytes); + } + } + uvc_free_frame(rgb); } } - uvc_free_frame(rgb); } - pArray->pAttributeList->add("DataType", "Data Type", NDAttrInt32, &dataType); - pArray->pAttributeList->add("ColorMode", "Color Mode", NDAttrInt32, &colorMode); - //increment the array counter - int arrayCounter; - getIntegerParam(NDArrayCounter, &arrayCounter); - arrayCounter++; - setIntegerParam(NDArrayCounter, arrayCounter); - //refresh PVs - callParamCallbacks(); - //Sends image to the ArrayDataPV - getAttributes(pArray->pAttributeList); - doCallbacksGenericPointer(pArray, NDArrayData, 0); - //frees up memory + // only push image if the data transfer was successful + if(status == asynSuccess){ + pArray->pAttributeList->add("DataType", "Data Type", NDAttrInt32, &dataType); + pArray->pAttributeList->add("ColorMode", "Color Mode", NDAttrInt32, &colorMode); + //increment the array counter + int arrayCounter; + getIntegerParam(NDArrayCounter, &arrayCounter); + arrayCounter++; + setIntegerParam(NDArrayCounter, arrayCounter); + //refresh PVs + callParamCallbacks(); + //Sends image to the ArrayDataPV + getAttributes(pArray->pAttributeList); + doCallbacksGenericPointer(pArray, NDArrayData, 0); + //frees up memory + } + + // Always free array whether successful or not pArray->release(); - return asynSuccess; + return status; } @@ -479,7 +489,7 @@ void ADUVC::newFrameCallback(uvc_frame_t* frame, void* ptr){ //TODO: Timestamps for images //epicsTimeStamp currentTime; static const char* functionName = "newFrameCallback"; - + getIntegerParam(NDColorMode, &colorMode); getIntegerParam(NDDataType, &dataType); @@ -525,8 +535,8 @@ void ADUVC::newFrameCallback(uvc_frame_t* frame, void* ptr){ setIntegerParam(ADNumImagesCounter, numImages); uvc2NDArray(frame, pArray, (NDDataType_t) dataType, (NDColorMode_t) colorMode, arrayInfo.totalBytes); acquireStop(); - } + // block shot mode stops once numImages reaches the number of desired images else if(operatingMode == ADImageMultiple){ int numImages; @@ -536,11 +546,13 @@ void ADUVC::newFrameCallback(uvc_frame_t* frame, void* ptr){ setIntegerParam(ADNumImagesCounter, numImages); uvc2NDArray(frame, pArray, (NDDataType_t) dataType, (NDColorMode_t) colorMode, arrayInfo.totalBytes); getIntegerParam(ADNumImages, &desiredImages); - if(numImages>=desiredImages){ + + if(numImages>=desiredImages){ acquireStop(); return; } } + //continuous mode runs until user stops acquisition else if(operatingMode == ADImageContinuous){ int numImages; @@ -549,6 +561,7 @@ void ADUVC::newFrameCallback(uvc_frame_t* frame, void* ptr){ setIntegerParam(ADNumImagesCounter, numImages); uvc2NDArray(frame, pArray, (NDDataType_t) dataType, (NDColorMode_t) colorMode, arrayInfo.totalBytes); } + else{ asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s ERROR: Unsupported operating mode\n", driverName, functionName); acquireStop(); diff --git a/iocs/adUVCIOC/iocBoot/iocADUVC/ADUVC_settings.req b/iocs/adUVCIOC/iocBoot/iocADUVC/ADUVC_settings.req deleted file mode 100755 index e69de29..0000000 diff --git a/iocs/adUVCIOC/iocBoot/iocADUVC/auto_settings.req b/iocs/adUVCIOC/iocBoot/iocADUVC/auto_settings.req index 4ce897a..760eea9 100755 --- a/iocs/adUVCIOC/iocBoot/iocADUVC/auto_settings.req +++ b/iocs/adUVCIOC/iocBoot/iocADUVC/auto_settings.req @@ -1,9 +1,3 @@ -file "ADUVC_settings.req", P=$(P), R=cam1: -file "ADBase_settings.req", P=$(P), R=cam1: -file "NDPluginBase_settings.req", P=$(P), R=image1: -file "NDStdArrays_settings.req", P=$(P), R=image1: -file "commonPlugin_settings.req", P=$(P) -file "NDPluginFile_settings.req", P=$(P), R=PW1: -file "NDPluginPipeWriter_settings.req", P=$(P), R=PW1: -file "NDPluginFile_settings.req", P=$(P), R=IMM1: -file "NDFileIMM_settings.req", P=$(P), R=IMM1: +file "ADUVC_settings.req", P=$(P), R=cam1: +file "NDStdArrays_settings.req", P=$(P), R=image1: +file "commonPlugin_settings.req", P=$(P) \ No newline at end of file diff --git a/iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd b/iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd index 165009d..154ed36 100755 --- a/iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd +++ b/iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd @@ -50,7 +50,6 @@ epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", 20000000) # If searching for device by product ID put "" or empty string for serial number ADUVCConfig("$(PORT)", "", 25344, $(FRAMERATE), $(XSIZE), $(YSIZE), 0, 0, 0, 0) -#ADUVCConfig("$(PORT)", "", 49490, $(FRAMERATE), $(XSIZE), $(YSIZE), 0, 0, 0, 0) epicsThreadSleep(2) asynSetTraceIOMask($(PORT), 0, 2) @@ -58,25 +57,18 @@ asynSetTraceIOMask($(PORT), 0, 2) dbLoadRecords("$(ADCORE)/db/ADBase.template", "P=$(PREFIX),R=cam1:,PORT=$(PORT),ADDR=0,TIMEOUT=1") dbLoadRecords("$(ADUVC)/db/ADUVC.template","P=$(PREFIX),R=cam1:,PORT=$(PORT),ADDR=0,TIMEOUT=1") + # # Create a standard arrays plugin, set it to get data from Driver. #int NDStdArraysConfigure(const char *portName, int queueSize, int blockingCallbacks, const char *NDArrayPort, int NDArrayAddr, int maxBuffers, size_t maxMemory, # int priority, int stackSize, int maxThreads) NDStdArraysConfigure("Image1", 3, 0, "$(PORT)", 0) -#dbLoadRecords("$(ADCORE)/db/NDPluginBase.template","P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT),NDARRAY_ADDR=0") -#dbLoadRecords("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,TIMEOUT=1,TYPE=Int16,SIZE=16,FTVL=SHORT,NELEMENTS=802896") dbLoadRecords("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,NDARRAY_PORT=$(PORT),TIMEOUT=1,TYPE=Int16,FTVL=SHORT,NELEMENTS=6000000") + # # Load all other plugins using commonPlugins.cmd < $(ADCORE)/iocBoot/commonPlugins.cmd # -#Note mpi control pipe out & in reversed. Names are from the view of the MPI program. -#NDPipeWriterConfigure("PipeWriter1", 15000, 0, "$(PORT)", "/local/xpcscmdout", "/local/xpcscmdin", 0, 0, 0, 0,0) -#dbLoadRecords("$(ADCORE)/db/NDPluginPipeWriter.template", "P=$(PREFIX),R=PW1:, PORT=PipeWriter1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT),CMD_IN_PORT=PW_CMD_IN,CMD_OUT_PORT=PW_CMD_OUT") - -#Note Local plugin to run the IMM plugin writer -#NDFileIMMConfigure("IMM1", 15000, 0, "$(PORT)", 0, 0, 0) -#dbLoadRecords("$(ADCORE)/db/NDFileIMM.template", "P=$(PREFIX),R=IMM1:,PORT=IMM1,ADDR=0,TIMEOUT=1,NDARRAY_PORT=$(PORT)") set_requestfile_path("$(ADUVC)/adUVCApp/Db") From aa7254e984e989294a0ba089d8b20fef43915682 Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 10:15:43 -0400 Subject: [PATCH 03/15] added a struct for storing individual camera format information --- adUVCApp/src/ADUVC.h | 48 +++++++++++++++++++-------- iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd | 9 +++-- 2 files changed, 38 insertions(+), 19 deletions(-) diff --git a/adUVCApp/src/ADUVC.h b/adUVCApp/src/ADUVC.h index 3d74f82..4938f93 100755 --- a/adUVCApp/src/ADUVC.h +++ b/adUVCApp/src/ADUVC.h @@ -16,9 +16,13 @@ // version numbers #define ADUVC_VERSION 1 -#define ADUVC_REVISION 1 +#define ADUVC_REVISION 2 #define ADUVC_MODIFICATION 0 + +#define SUPPORTED_FORMAT_COUNT 10 + + // includes #include #include "ADDriver.h" @@ -54,6 +58,18 @@ typedef enum { } ADUVC_FrameFormat_t; +/* Struct for individual supported camera format */ +typedef struct { + char* formatName; + size_t xSize; + size_t ySize; + int framerate; + ADUVC_FrameFormat_t frameFormat; + NDColorMode_t colorMode; + NDDataType_t dataType; +} ADUVC_CameraFormat_t; + + /* * Class definition of the ADUVC driver. It inherits from the base ADDriver class @@ -111,24 +127,27 @@ class ADUVC : ADDriver{ // UVC Variables //----------------------------------------- - // checks uvc device operations status + // checks uvc device operations status uvc_error_t deviceStatus; - //pointer to device + //pointer to device uvc_device_t* pdevice; - //pointer to device context. generated when connecting + //pointer to device context. generated when connecting uvc_context_t* pdeviceContext; - //pointer to device handle. used for controlling device. Each UVC device can allow for one handle at a time + //pointer to device handle. used for controlling device. Each UVC device can allow for one handle at a time uvc_device_handle_t* pdeviceHandle; - //pointer to device stream controller. used to controll streaming from device + //pointer to device stream controller. used to controll streaming from device uvc_stream_ctrl_t deviceStreamCtrl; - //pointer containing device info, such as vendor, product id + //pointer containing device info, such as vendor, product id uvc_device_descriptor_t* pdeviceInfo; + //array of supported formats that will allow for easy switching of operating modes. + ADUVC_CameraFormat_t supportedFormats[SUPPORTED_FORMAT_COUNT]; + //flag that stores if driver is connected to device int connected = 0; @@ -141,7 +160,7 @@ class ADUVC : ADDriver{ // UVC Functions - Logging/Reporting //----------------------------------------- - //function used to report errors in uvc operations + //function used to report errors in uvc operations void reportUVCError(uvc_error_t status, const char* functionName); // reports device and driver info into a log file @@ -151,8 +170,9 @@ class ADUVC : ADDriver{ // UVC Functions - Connecting to camera //----------------------------------------- - //function used for connecting to a UVC device + //function used for connecting to a UVC device and reading supported camera modes. asynStatus connectToDeviceUVC(int connectionType, const char* serialNumber, int productID); + asynStatus readSupportedCameraFormats(); //function used to disconnect from UVC device asynStatus disconnectFromDeviceUVC(); @@ -173,22 +193,22 @@ class ADUVC : ADDriver{ asynStatus setSaturation(int saturation); asynStatus setSharpness(int sharpness); - //function that begins image aquisition + //function that begins image aquisition uvc_error_t acquireStart(uvc_frame_format format); - //function that stops aquisition + //function that stops aquisition void acquireStop(); - //function that converts a UVC frame into an NDArray + //function that converts a UVC frame into an NDArray asynStatus uvc2NDArray(uvc_frame_t* frame, NDArray* pArray, NDDataType_t dataType, NDColorMode_t colorMode, size_t imBytes); - //function that gets information from a UVC device + //function that gets information from a UVC device void getDeviceImageInformation(); void getDeviceInformation(); uvc_frame_format getFormatFromPV(); - // static wrapper function for callback. Necessary becuase callback in UVC must be static but we want the driver running the callback + //static wrapper function for callback. Necessary becuase callback in UVC must be static but we want the driver running the callback static void newFrameCallbackWrapper(uvc_frame_t* frame, void* ptr); }; diff --git a/iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd b/iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd index 154ed36..bb95185 100755 --- a/iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd +++ b/iocs/adUVCIOC/iocBoot/iocADUVC/st.cmd @@ -44,8 +44,8 @@ epicsEnvSet("EPICS_CA_MAX_ARRAY_BYTES", 20000000) # */ # If searching for device by serial number, put 0 and 0 for vendor/productID -# ADUVCConfig(const char* portName, const char* serial, int vendorID, int productID, int framerate, int xsize, int ysize, int maxBuffers, size_t maxMemory, int priority, int stackSize) -#ADUVCConfig("$(PORT)", "10e536e9e4c4ee70", 0, "$(FRAMERATE)", "$(XSIZE)", "$(YSIZE)", 0, 0, 0, 0) +# ADUVCConfig(const char* portName, const char* serial, int productID, int framerate, int xsize, int ysize, int maxBuffers, size_t maxMemory, int priority, int stackSize) +#ADUVCConfig("$(PORT)", "10e536e9e4c4ee70", 0, $(FRAMERATE), $(XSIZE), $(YSIZE), 0, 0, 0, 0) #epicsThreadSleep(2) # If searching for device by product ID put "" or empty string for serial number @@ -53,14 +53,14 @@ ADUVCConfig("$(PORT)", "", 25344, $(FRAMERATE), $(XSIZE), $(YSIZE), 0, 0, 0, 0) epicsThreadSleep(2) asynSetTraceIOMask($(PORT), 0, 2) -#asynSetTraceMask($(PORT),0,0xff) +#asynSetTraceMask($(PORT), 0, 0xff) dbLoadRecords("$(ADCORE)/db/ADBase.template", "P=$(PREFIX),R=cam1:,PORT=$(PORT),ADDR=0,TIMEOUT=1") dbLoadRecords("$(ADUVC)/db/ADUVC.template","P=$(PREFIX),R=cam1:,PORT=$(PORT),ADDR=0,TIMEOUT=1") # # Create a standard arrays plugin, set it to get data from Driver. -#int NDStdArraysConfigure(const char *portName, int queueSize, int blockingCallbacks, const char *NDArrayPort, int NDArrayAddr, int maxBuffers, size_t maxMemory, +# int NDStdArraysConfigure(const char *portName, int queueSize, int blockingCallbacks, const char *NDArrayPort, int NDArrayAddr, int maxBuffers, size_t maxMemory, # int priority, int stackSize, int maxThreads) NDStdArraysConfigure("Image1", 3, 0, "$(PORT)", 0) dbLoadRecords("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=Image1,ADDR=0,NDARRAY_PORT=$(PORT),TIMEOUT=1,TYPE=Int16,FTVL=SHORT,NELEMENTS=6000000") @@ -68,7 +68,6 @@ dbLoadRecords("$(ADCORE)/db/NDStdArrays.template", "P=$(PREFIX),R=image1:,PORT=I # # Load all other plugins using commonPlugins.cmd < $(ADCORE)/iocBoot/commonPlugins.cmd -# set_requestfile_path("$(ADUVC)/adUVCApp/Db") From 06e48add30e80c2e4f737aee74b4b08bcfdeff23 Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 10:26:05 -0400 Subject: [PATCH 04/15] Added PVs for new format selection option --- adUVCApp/Db/ADUVC.template | 52 ++++++++++++++++++++++++++++++++++++++ adUVCApp/src/ADUVC.h | 32 ++++++++++++----------- 2 files changed, 69 insertions(+), 15 deletions(-) diff --git a/adUVCApp/Db/ADUVC.template b/adUVCApp/Db/ADUVC.template index e5e341e..0e5c7de 100755 --- a/adUVCApp/Db/ADUVC.template +++ b/adUVCApp/Db/ADUVC.template @@ -128,6 +128,58 @@ record(mbbi, "$(P)$(R)UVCImageFormat_RBV"){ field(SCAN, "I/O Intr") } +############################################## +# Stores supported camera modes for easier switching +################################################ +record(mbbo, "$(P)$(R)UVCCameraFormat"){ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))UVC_CAMERA_FORMAT") + field(ZRST, "Supported Mode 1") + field(ZRVL, "0") + field(ONST, "Supported Mode 2") + field(ONVL, "1") + field(TWST, "Supported Mode 3") + field(TWVL, "2") + field(THST, "Supported Mode 4") + field(THVL, "3") + field(FRST, "Supported Mode 5") + field(FRVL, "4") + field(FVST, "Supported Mode 6") + field(FVVL, "5") + field(SXST, "Supported Mode 7") + field(SXVL, "6") + field(VAL, "0") + info(autosaveFields, "VAL") +} +record(mbbi, "$(P)$(R)UVCCameraFormat_RBV"){ + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))UVC_CAMERA_FORMAT") + field(ZRST, "Supported Mode 1") + field(ZRVL, "0") + field(ONST, "Supported Mode 2") + field(ONVL, "1") + field(TWST, "Supported Mode 3") + field(TWVL, "2") + field(THST, "Supported Mode 4") + field(THVL, "3") + field(FRST, "Supported Mode 5") + field(FRVL, "4") + field(FVST, "Supported Mode 6") + field(FVVL, "5") + field(SXST, "Supported Mode 7") + field(SXVL, "6") + field(SCAN, "I/O Intr") +} + +record(waveform, "$(P)$(R)UVCFormatDescription_RBV"){ + field(DTYP, "asynOctetRead") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))UVC_FORMAT_DESCRIPTION") + field(FTVL, "CHAR") + field(NELM, "256") + field(SCAN, "I/O Intr") +} + ################################################################################################ # Additional Camera Functions (UNDER DEVELOPMENT -> Currently not in use) ################################################################################################ diff --git a/adUVCApp/src/ADUVC.h b/adUVCApp/src/ADUVC.h index 4938f93..af74ddf 100755 --- a/adUVCApp/src/ADUVC.h +++ b/adUVCApp/src/ADUVC.h @@ -20,7 +20,7 @@ #define ADUVC_MODIFICATION 0 -#define SUPPORTED_FORMAT_COUNT 10 +#define SUPPORTED_FORMAT_COUNT 7 // includes @@ -30,20 +30,22 @@ // PV definitions -#define ADUVC_UVCComplianceLevelString "UVC_COMPLIANCE" //asynInt32 -#define ADUVC_ReferenceCountString "UVC_REFCOUNT" //asynInt32 -#define ADUVC_FramerateString "UVC_FRAMERATE" //asynInt32 -#define ADUVC_VendorIDString "UVC_VENDOR" //asynInt32 -#define ADUVC_ProductIDString "UVC_PRODUCT" //asynInt32 -#define ADUVC_ImageFormatString "UVC_FORMAT" //asynInt32 -#define ADUVC_GammaString "UVC_GAMMA" //asynInt32 -#define ADUVC_BacklightCompensationString "UVC_BACKLIGHT" //asynInt32 -#define ADUVC_BrightnessString "UVC_BRIGHTNESS" //asynInt32 -#define ADUVC_ContrastString "UVC_CONTRAST" //asynInt32 -#define ADUVC_PowerLineString "UVC_POWER" //asynInt32 -#define ADUVC_HueString "UVC_HUE" //asynInt32 -#define ADUVC_SaturationString "UVC_SATURATION" //asynInt32 -#define ADUVC_SharpnessString "UVC_SHARPNESS" //asynInt32 +#define ADUVC_UVCComplianceLevelString "UVC_COMPLIANCE" //asynInt32 +#define ADUVC_ReferenceCountString "UVC_REFCOUNT" //asynInt32 +#define ADUVC_FramerateString "UVC_FRAMERATE" //asynInt32 +#define ADUVC_VendorIDString "UVC_VENDOR" //asynInt32 +#define ADUVC_ProductIDString "UVC_PRODUCT" //asynInt32 +#define ADUVC_ImageFormatString "UVC_FORMAT" //asynInt32 +#define ADUVC_CameraFormatString "UVC_CAMERA_FORMAT" //asynInt32 +#define ADUVC_FormatDescriptionString "UVC_FORMAT_DESCRIPTION" //asynParamOctet +#define ADUVC_GammaString "UVC_GAMMA" //asynInt32 +#define ADUVC_BacklightCompensationString "UVC_BACKLIGHT" //asynInt32 +#define ADUVC_BrightnessString "UVC_BRIGHTNESS" //asynInt32 +#define ADUVC_ContrastString "UVC_CONTRAST" //asynInt32 +#define ADUVC_PowerLineString "UVC_POWER" //asynInt32 +#define ADUVC_HueString "UVC_HUE" //asynInt32 +#define ADUVC_SaturationString "UVC_SATURATION" //asynInt32 +#define ADUVC_SharpnessString "UVC_SHARPNESS" //asynInt32 /* enum for getting format from PV */ From 3668d86b55e50f90c035818cfb5a124eeb63fd1d Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 10:35:15 -0400 Subject: [PATCH 05/15] more changes regarding new PVs for format selection --- adUVCApp/Db/ADUVC.template | 20 +++++++++++++++++++- adUVCApp/Db/ADUVC_settings.req | 5 ++++- adUVCApp/src/ADUVC.h | 10 +++++++++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/adUVCApp/Db/ADUVC.template b/adUVCApp/Db/ADUVC.template index 0e5c7de..be997c3 100755 --- a/adUVCApp/Db/ADUVC.template +++ b/adUVCApp/Db/ADUVC.template @@ -172,6 +172,9 @@ record(mbbi, "$(P)$(R)UVCCameraFormat_RBV"){ field(SCAN, "I/O Intr") } +############################################## +# Shows information regarding the currently selected supported format +################################################ record(waveform, "$(P)$(R)UVCFormatDescription_RBV"){ field(DTYP, "asynOctetRead") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))UVC_FORMAT_DESCRIPTION") @@ -180,8 +183,23 @@ record(waveform, "$(P)$(R)UVCFormatDescription_RBV"){ field(SCAN, "I/O Intr") } +############################################## +# Applies the supported format to the IOC +################################################ +record(ao, "$(P)$(R)UVCApplyFormat"){ + field(PINI, "YES") + field(DTYP, "asynInt32") + field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))UVC_APPLY_FORMAT") +} + +record(ai, "$(P)$(R)UVCApplyFormat_RBV"){ + field(DTYP, "asynInt32") + field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))UVC_APPLY_FORMAT") + field(SCAN, "I/O Intr") +} + ################################################################################################ -# Additional Camera Functions (UNDER DEVELOPMENT -> Currently not in use) +# Additional Camera Functions -> used by getter and setter functions in the driver ################################################################################################ ################################################## diff --git a/adUVCApp/Db/ADUVC_settings.req b/adUVCApp/Db/ADUVC_settings.req index 945d01a..c1a78cf 100755 --- a/adUVCApp/Db/ADUVC_settings.req +++ b/adUVCApp/Db/ADUVC_settings.req @@ -12,4 +12,7 @@ $(P)$(R)UVC_CONTRAST $(P)$(R)UVC_POWER $(P)$(R)UVC_HUE $(P)$(R)UVC_SATURATION -$(P)$(R)UVC_SHARPNESS \ No newline at end of file +$(P)$(R)UVC_SHARPNESS +$(P)$(R)UVC_CAMERA_FORMAT +$(P)$(R)UVC_FORMAT_DESCRIPTION +$(P)$(R)UVC_APPLY_FORMAT \ No newline at end of file diff --git a/adUVCApp/src/ADUVC.h b/adUVCApp/src/ADUVC.h index af74ddf..a102253 100755 --- a/adUVCApp/src/ADUVC.h +++ b/adUVCApp/src/ADUVC.h @@ -37,7 +37,8 @@ #define ADUVC_ProductIDString "UVC_PRODUCT" //asynInt32 #define ADUVC_ImageFormatString "UVC_FORMAT" //asynInt32 #define ADUVC_CameraFormatString "UVC_CAMERA_FORMAT" //asynInt32 -#define ADUVC_FormatDescriptionString "UVC_FORMAT_DESCRIPTION" //asynParamOctet +#define ADUVC_FormatDescriptionString "UVC_FORMAT_DESCRIPTION" //asynOctet +#define ADUVC_ApplyFormatString "UVC_APPLY_FORMAT" //asynInt32 #define ADUVC_GammaString "UVC_GAMMA" //asynInt32 #define ADUVC_BacklightCompensationString "UVC_BACKLIGHT" //asynInt32 #define ADUVC_BrightnessString "UVC_BRIGHTNESS" //asynInt32 @@ -108,6 +109,9 @@ class ADUVC : ADDriver{ int ADUVC_VendorID; int ADUVC_ProductID; int ADUVC_ImageFormat; + int ADUVC_CameraFormat; + int ADUVC_FormatDescription; + int ADUVC_ApplyFormat; int ADUVC_Gamma; int ADUVC_BacklightCompensation; int ADUVC_Brightness; @@ -175,6 +179,7 @@ class ADUVC : ADDriver{ //function used for connecting to a UVC device and reading supported camera modes. asynStatus connectToDeviceUVC(int connectionType, const char* serialNumber, int productID); asynStatus readSupportedCameraFormats(); + asynStatus populateCameraFormat(int arrayIndex, uvc_streaming_interface_t* stream_if, uvc_frame_desc_t* frame_desc); //function used to disconnect from UVC device asynStatus disconnectFromDeviceUVC(); @@ -195,6 +200,9 @@ class ADUVC : ADDriver{ asynStatus setSaturation(int saturation); asynStatus setSharpness(int sharpness); + + asynStatus applyCameraFormat(int selectedFormat) + //function that begins image aquisition uvc_error_t acquireStart(uvc_frame_format format); From ad28c804962f50a75e7d53686d10e12a9983c8a8 Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 10:56:40 -0400 Subject: [PATCH 06/15] Added two helper functions for new functionality --- adUVCApp/Db/ADUVC.template | 1 + adUVCApp/src/ADUVC.cpp | 47 +++++++++++++++++++++++++++++++++++--- adUVCApp/src/ADUVC.h | 5 ++-- 3 files changed, 48 insertions(+), 5 deletions(-) diff --git a/adUVCApp/Db/ADUVC.template b/adUVCApp/Db/ADUVC.template index be997c3..a1ae071 100755 --- a/adUVCApp/Db/ADUVC.template +++ b/adUVCApp/Db/ADUVC.template @@ -152,6 +152,7 @@ record(mbbo, "$(P)$(R)UVCCameraFormat"){ field(VAL, "0") info(autosaveFields, "VAL") } + record(mbbi, "$(P)$(R)UVCCameraFormat_RBV"){ field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR=0),$(TIMEOUT=1))UVC_CAMERA_FORMAT") diff --git a/adUVCApp/src/ADUVC.cpp b/adUVCApp/src/ADUVC.cpp index 77bbad5..bb59b31 100755 --- a/adUVCApp/src/ADUVC.cpp +++ b/adUVCApp/src/ADUVC.cpp @@ -85,13 +85,48 @@ void ADUVC::reportUVCError(uvc_error_t status, const char* functionName){ driverName, functionName, uvc_strerror(status)); if(status != UVC_ERROR_OTHER){ char statusMessage[25]; - epicsSnprintf(statusMessage, sizeof(statusMessage), "UVC Error: %s\n", uvc_strerror(status)); + epicsSnprintf(statusMessage, sizeof(statusMessage), "UVC Error: %s", uvc_strerror(status)); setStringParam(ADStatusMessage, statusMessage); callParamCallbacks(); } } +/** + * Function that updates the description for a selected camera format + */ +void ADUVC::updateCameraFormatDesc(){ + const char* functionName = "updateCameraFormatDesc"; + int selectedFormat; + getIntegerParam(ADUVC_CameraFormat, &selectedFormat); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Updating Format Description\n", driverName, functionName); + char description[256]; + epicsSnprintf(description, sizeof(description), "Selected Format: %s", this->supportedFormats[selectedFormat].formatDesc); + setStringParam(ADUVC_FormatDescription, description); + callParamCallbacks(); +} + + +/** + * Function that handles applying a selected supported camera format to the approptiate PVs. + * Sets the data type, color mode, framerate, xsize, ysize, and frame format PVs. + */ +void ADUVC::applyCameraFormat(){ + const char* functionName = "applyCameraFormat"; + int selectedFormat; + getIntegerParam(ADUVC_CameraFormat, &selectedFormat); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Applying Format\n", driverName, functionName); + ADUVC_CameraFormat_t format = this->supportedFormats[selectedFormat]; + setIntegerParam(NDDataType, format.dataType); + setIntegerParam(NDColorMode, format.colorMode); + setIntegerParam(ADUVC_Framerate, format.framerate); + setIntegerParam(ADSizeX, format.xSize); + setIntegerParam(ADSizeY, format.ySize); + setIntegerParam(ADUVC_ImageFormat, format.frameFormat); + setIntegerParam(ADUVC_ApplyFormat, 0); + callParamCallbacks(); +} + //----------------------------------------------- // ADUVC connection/disconnection functions @@ -793,6 +828,8 @@ asynStatus ADUVC::writeInt32(asynUser* pasynUser, epicsInt32 value){ acquireStop(); } } + else if(function == ADUVC_ApplyFormat && value == 1) applyCameraFormat(); + else if(function == ADUVC_CameraFormat) updateCameraFormatDesc(); //switch image mode else if(function == ADImageMode){ if(acquiring == 1) acquireStop(); @@ -943,6 +980,9 @@ ADUVC::ADUVC(const char* portName, const char* serial, int productID, int framer createParam(ADUVC_VendorIDString, asynParamInt32, &ADUVC_VendorID); createParam(ADUVC_ProductIDString, asynParamInt32, &ADUVC_ProductID); createParam(ADUVC_ImageFormatString, asynParamInt32, &ADUVC_ImageFormat); + createParam(ADUVC_CameraFormatString, asynParamInt32, &ADUVC_CameraFormat); + createParam(ADUVC_FormatDescriptionString, asynParamOctet, &ADUVC_FormatDescription); + createParam(ADUVC_ApplyFormatString, asynParamInt32, &ADUVC_ApplyFormat); createParam(ADUVC_BrightnessString, asynParamInt32, &ADUVC_Brightness); createParam(ADUVC_ContrastString, asynParamInt32, &ADUVC_Contrast); createParam(ADUVC_PowerLineString, asynParamInt32, &ADUVC_PowerLine); @@ -988,8 +1028,9 @@ ADUVC::ADUVC(const char* portName, const char* serial, int productID, int framer asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Connection failed, abort\n", driverName, functionName); } else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Acquiring device information\n", driverName, functionName); - getDeviceInformation(); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Acquiring device information\n", driverName, functionName); + readSupportedCameraFormats(); + getDeviceInformation(); } // when epics is exited, delete the instance of this class diff --git a/adUVCApp/src/ADUVC.h b/adUVCApp/src/ADUVC.h index a102253..9f7cbdf 100755 --- a/adUVCApp/src/ADUVC.h +++ b/adUVCApp/src/ADUVC.h @@ -63,7 +63,7 @@ typedef enum { /* Struct for individual supported camera format */ typedef struct { - char* formatName; + char* formatDesc; size_t xSize; size_t ySize; int framerate; @@ -201,7 +201,8 @@ class ADUVC : ADDriver{ asynStatus setSharpness(int sharpness); - asynStatus applyCameraFormat(int selectedFormat) + void updateCameraFormatDesc(); + void applyCameraFormat(); //function that begins image aquisition uvc_error_t acquireStart(uvc_frame_format format); From fa46df656097a953231597140cd8d5d2733b86fc Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 14:35:18 -0400 Subject: [PATCH 07/15] Modes are now selectable from within EPICS. Double free on acquireStop must be fixed, CSS screen updated: --- adUVCApp/Db/ADUVC.template | 2 + adUVCApp/src/ADUVC.cpp | 196 ++++++++++++++++++++++++++++++++++--- adUVCApp/src/ADUVC.h | 14 ++- 3 files changed, 194 insertions(+), 18 deletions(-) diff --git a/adUVCApp/Db/ADUVC.template b/adUVCApp/Db/ADUVC.template index a1ae071..decb543 100755 --- a/adUVCApp/Db/ADUVC.template +++ b/adUVCApp/Db/ADUVC.template @@ -191,6 +191,8 @@ record(ao, "$(P)$(R)UVCApplyFormat"){ field(PINI, "YES") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))UVC_APPLY_FORMAT") + field(VAL, "0") + field(autosaveFields, "VAL") } record(ai, "$(P)$(R)UVCApplyFormat_RBV"){ diff --git a/adUVCApp/src/ADUVC.cpp b/adUVCApp/src/ADUVC.cpp index bb59b31..e03ec0a 100755 --- a/adUVCApp/src/ADUVC.cpp +++ b/adUVCApp/src/ADUVC.cpp @@ -91,6 +91,17 @@ void ADUVC::reportUVCError(uvc_error_t status, const char* functionName){ } } +extern "C" const char* get_string_for_subtype(uint8_t subtype) { + switch (subtype) { + case UVC_VS_FORMAT_UNCOMPRESSED: + return "UncompressedFormat"; + case UVC_VS_FORMAT_MJPEG: + return "MJPEGFormat"; + default: + return "Unknown"; + } +} + /** * Function that updates the description for a selected camera format @@ -101,7 +112,7 @@ void ADUVC::updateCameraFormatDesc(){ getIntegerParam(ADUVC_CameraFormat, &selectedFormat); asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Updating Format Description\n", driverName, functionName); char description[256]; - epicsSnprintf(description, sizeof(description), "Selected Format: %s", this->supportedFormats[selectedFormat].formatDesc); + epicsSnprintf(description, sizeof(description), "%s", this->supportedFormats[selectedFormat].formatDesc); setStringParam(ADUVC_FormatDescription, description); callParamCallbacks(); } @@ -116,13 +127,19 @@ void ADUVC::applyCameraFormat(){ int selectedFormat; getIntegerParam(ADUVC_CameraFormat, &selectedFormat); asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Applying Format\n", driverName, functionName); - ADUVC_CameraFormat_t format = this->supportedFormats[selectedFormat]; - setIntegerParam(NDDataType, format.dataType); - setIntegerParam(NDColorMode, format.colorMode); - setIntegerParam(ADUVC_Framerate, format.framerate); - setIntegerParam(ADSizeX, format.xSize); - setIntegerParam(ADSizeY, format.ySize); - setIntegerParam(ADUVC_ImageFormat, format.frameFormat); + ADUVC_CamFormat_t format = this->supportedFormats[selectedFormat]; + if( (int) format.frameFormat < 0){ + asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, + "%s::%s Cannot apply format - is not used\n", driverName, functionName); + } + else { + setIntegerParam(NDDataType, format.dataType); + setIntegerParam(NDColorMode, format.colorMode); + setIntegerParam(ADUVC_Framerate, format.framerate); + setIntegerParam(ADSizeX, format.xSize); + setIntegerParam(ADSizeY, format.ySize); + setIntegerParam(ADUVC_ImageFormat, format.frameFormat); + } setIntegerParam(ADUVC_ApplyFormat, 0); callParamCallbacks(); } @@ -152,14 +169,17 @@ asynStatus ADUVC::connectToDeviceUVC(int connectionType, const char* serialNumbe return asynError; } else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Initialized UVC context\n", driverName, functionName); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Initialized UVC context\n", driverName, functionName); } if(connectionType == 0){ - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Searching for UVC device with serial number: %s\n", driverName, functionName, serialNumber); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Searching for UVC device with serial number: %s\n", driverName, functionName, serialNumber); deviceStatus = uvc_find_device(pdeviceContext, &pdevice, 0, 0, serialNumber); } else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Searching for UVC device with Product ID: %d\n", driverName, functionName, productID); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Searching for UVC device with Product ID: %d\n", driverName, functionName, productID); deviceStatus = uvc_find_device(pdeviceContext, &pdevice, 0, productID, NULL); } if(deviceStatus<0){ @@ -167,7 +187,8 @@ asynStatus ADUVC::connectToDeviceUVC(int connectionType, const char* serialNumbe return asynError; } else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Found UVC device\n", driverName, functionName); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Found UVC device\n", driverName, functionName); } deviceStatus = uvc_open(pdevice, &pdeviceHandle); if(deviceStatus<0){ @@ -176,7 +197,8 @@ asynStatus ADUVC::connectToDeviceUVC(int connectionType, const char* serialNumbe } else{ connected = 1; - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Opened UVC device\n", driverName, functionName); + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Opened UVC device\n", driverName, functionName); } return status; } @@ -190,7 +212,13 @@ asynStatus ADUVC::connectToDeviceUVC(int connectionType, const char* serialNumbe */ asynStatus ADUVC::disconnectFromDeviceUVC(){ const char* functionName = "disconnectFromDeviceUVC"; - asynPrint(this->pasynUserSelf, ASYN_TRACEIO_DRIVER, "%s::%s Calling all free functions for ADUVC\n", driverName, functionName); + asynPrint(this->pasynUserSelf, ASYN_TRACEIO_DRIVER, + "%s::%s Calling all free functions for ADUVC\n", driverName, functionName); + int i; + for(i = 0; i< SUPPORTED_FORMAT_COUNT; i++){ + // free mem in supported + free(this->supportedFormats[i].formatDesc); + } if(connected == 1){ uvc_close(pdeviceHandle); uvc_unref_device(pdevice); @@ -201,6 +229,140 @@ asynStatus ADUVC::disconnectFromDeviceUVC(){ } +/** + * Function that reads all supported camera formats into a ADUVC_CamFormat_t struct, and then + * selects the ones that are most likely to be useful for easy selection. + * + * @return: asynSuccess if successful, asynError if error + */ +asynStatus ADUVC::readSupportedCameraFormats(){ + const char* functionName = "readSupportedCameraFormats"; + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Reading in supported camera formats\n", driverName, functionName); + asynStatus status = asynSuccess; + ADUVC_CamFormat_t* formatBuffer = (ADUVC_CamFormat_t*) calloc(1, 256 * sizeof(ADUVC_CamFormat_t)); + int bufferIndex = 0; + if(this->pdeviceHandle != NULL){ + uvc_streaming_interface_t* interfaces = this->pdeviceHandle->info->stream_ifs; + while(interfaces != NULL){ + uvc_format_desc_t* interfaceFormats = interfaces->format_descs; + while(interfaceFormats != NULL) { + uvc_frame_desc_t* frameFormats = interfaceFormats->frame_descs; + while(frameFormats != NULL) { + populateCameraFormat(&formatBuffer[bufferIndex], interfaceFormats, frameFormats); + bufferIndex++; + frameFormats = frameFormats->next; + } + interfaceFormats = interfaceFormats->next; + } + interfaces = interfaces->next; + } + } + else{ + status = asynError; + } + int formatIndex = selectBestCameraFormats(formatBuffer, bufferIndex); + free(formatBuffer); + int i; + for(i = formatIndex; i < SUPPORTED_FORMAT_COUNT; i++){ + initEmptyCamFormat(i); + } + return status; +} + + +void ADUVC:: populateCameraFormat(ADUVC_CamFormat_t* camFormat, uvc_format_desc_t* format_desc, uvc_frame_desc_t* frame_desc){ + const char* functionName = "populateCameraFormat"; + switch(format_desc->bDescriptorSubtype){ + case UVC_VS_FORMAT_MJPEG: + camFormat->frameFormat = ADUVC_FrameMJPEG; + camFormat->dataType = NDUInt8; + camFormat->colorMode = NDColorModeRGB1; + break; + case UVC_VS_FORMAT_UNCOMPRESSED: + camFormat->frameFormat = ADUVC_FrameUncompressed; + camFormat->dataType = NDUInt16; + camFormat->colorMode = NDColorModeMono; + break; + default: + asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, + "%s::%s Unsupported format desc.\n", driverName, functionName); + break; + } + camFormat->xSize = frame_desc->wWidth; + camFormat->ySize = frame_desc->wHeight; + camFormat->framerate = 10000000 / frame_desc->dwDefaultFrameInterval; + camFormat->formatDesc = (char*) malloc(256); + epicsSnprintf(camFormat->formatDesc, 256, "%s, X: %d, Y: %d, Rate: %d/s", + get_string_for_subtype(format_desc->bDescriptorSubtype), (int) camFormat->xSize, (int) camFormat->ySize, camFormat->framerate); +} + + +void ADUVC::initEmptyCamFormat(int arrayIndex){ + this->supportedFormats[arrayIndex].formatDesc = (char*) malloc(256); + epicsSnprintf(this->supportedFormats[arrayIndex].formatDesc, 256, "Unused Camera Format"); + this->supportedFormats[arrayIndex].frameFormat = ADUVC_FrameUnsupported; +} + +int ADUVC::compareFormats(ADUVC_CamFormat_t camFormat1, ADUVC_CamFormat_t camFormat2){ + if (camFormat1.xSize != camFormat2.xSize) return -1; + if (camFormat1.ySize != camFormat2.ySize) return -1; + if (camFormat1.colorMode != camFormat2.colorMode) return -1; + if (camFormat1.dataType != camFormat2.dataType) return -1; + if (camFormat1.framerate != camFormat2.framerate) return -1; + if (camFormat1.frameFormat != camFormat2.frameFormat) return -1; + return 0; +} + + +bool ADUVC::formatAlreadySaved(ADUVC_CamFormat_t camFormat){ + int i; + for(i = 0; i< SUPPORTED_FORMAT_COUNT; i++){ + if(compareFormats(camFormat, this->supportedFormats[i]) == 0){ + return true; + } + } + return false; +} + +int ADUVC::selectBestCameraFormats(ADUVC_CamFormat_t* formatBuffer, int numFormats){ + const char* functionName = "selectBestCameraFormats"; + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Selecting best camera formats\n", driverName, functionName); + + int readFormats = 0; + while(readFormats < SUPPORTED_FORMAT_COUNT && readFormats != numFormats){ + int bestFormatIndex = 0; + int i; + for(i = 0; i< numFormats; i++){ + if(!formatAlreadySaved(formatBuffer[i])){ + if(formatBuffer[i].frameFormat == ADUVC_FrameMJPEG && formatBuffer[bestFormatIndex].frameFormat != ADUVC_FrameMJPEG){ + bestFormatIndex = i; + } + else if(formatBuffer[i].xSize > formatBuffer[bestFormatIndex].xSize){ + bestFormatIndex = i; + } + else if(formatBuffer[i].framerate > formatBuffer[bestFormatIndex].framerate){ + bestFormatIndex = i; + } + } + } + this->supportedFormats[readFormats].colorMode = formatBuffer[bestFormatIndex].colorMode; + this->supportedFormats[readFormats].dataType = formatBuffer[bestFormatIndex].dataType; + this->supportedFormats[readFormats].frameFormat = formatBuffer[bestFormatIndex].frameFormat; + this->supportedFormats[readFormats].framerate = formatBuffer[bestFormatIndex].framerate; + this->supportedFormats[readFormats].xSize = formatBuffer[bestFormatIndex].xSize; + this->supportedFormats[readFormats].ySize = formatBuffer[bestFormatIndex].ySize; + this->supportedFormats[readFormats].formatDesc = (char*) malloc(256); + memcpy(this->supportedFormats[readFormats].formatDesc, formatBuffer[bestFormatIndex].formatDesc, 256); + readFormats++; + } + for(int j = 0; j < numFormats; j++){ + free(formatBuffer[j].formatDesc); + } + return readFormats; +} + /** * Function responsible for getting image acquisition information * Gets the exposure, gamma, backlight comp, brightness, contrast, gain, hue, power line, saturation, and @@ -1030,6 +1192,12 @@ ADUVC::ADUVC(const char* portName, const char* serial, int productID, int framer else{ asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Acquiring device information\n", driverName, functionName); readSupportedCameraFormats(); + int i; + /* + for(i = 0; i< SUPPORTED_FORMAT_COUNT; i++){ + printf("%s\n", this->supportedFormats[i].formatDesc); + } + */ getDeviceInformation(); } diff --git a/adUVCApp/src/ADUVC.h b/adUVCApp/src/ADUVC.h index 9f7cbdf..0e519c2 100755 --- a/adUVCApp/src/ADUVC.h +++ b/adUVCApp/src/ADUVC.h @@ -25,6 +25,7 @@ // includes #include +#include #include "ADDriver.h" @@ -51,6 +52,7 @@ /* enum for getting format from PV */ typedef enum { + ADUVC_FrameUnsupported = -1, ADUVC_FrameMJPEG = 0, ADUVC_FrameRGB = 1, ADUVC_FrameYUYV = 2, @@ -62,7 +64,7 @@ typedef enum { /* Struct for individual supported camera format */ -typedef struct { +typedef struct ADUVC_CamFormat{ char* formatDesc; size_t xSize; size_t ySize; @@ -70,7 +72,7 @@ typedef struct { ADUVC_FrameFormat_t frameFormat; NDColorMode_t colorMode; NDDataType_t dataType; -} ADUVC_CameraFormat_t; +} ADUVC_CamFormat_t; @@ -152,7 +154,7 @@ class ADUVC : ADDriver{ uvc_device_descriptor_t* pdeviceInfo; //array of supported formats that will allow for easy switching of operating modes. - ADUVC_CameraFormat_t supportedFormats[SUPPORTED_FORMAT_COUNT]; + ADUVC_CamFormat_t supportedFormats[SUPPORTED_FORMAT_COUNT]; //flag that stores if driver is connected to device int connected = 0; @@ -179,7 +181,11 @@ class ADUVC : ADDriver{ //function used for connecting to a UVC device and reading supported camera modes. asynStatus connectToDeviceUVC(int connectionType, const char* serialNumber, int productID); asynStatus readSupportedCameraFormats(); - asynStatus populateCameraFormat(int arrayIndex, uvc_streaming_interface_t* stream_if, uvc_frame_desc_t* frame_desc); + void populateCameraFormat(ADUVC_CamFormat_t* camFormat, uvc_format_desc_t* format_desc, uvc_frame_desc_t* frame_desc); + int selectBestCameraFormats(ADUVC_CamFormat_t* formatBuffer, int numberInterfaces); + void initEmptyCamFormat(int arrayIndex); + bool formatAlreadySaved(ADUVC_CamFormat_t camFormat); + int compareFormats(ADUVC_CamFormat_t camFormat1, ADUVC_CamFormat_t camFormat2); //function used to disconnect from UVC device asynStatus disconnectFromDeviceUVC(); From bfe7e1d4a89fb12f10f7adca362ee59675a838c5 Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 15:00:18 -0400 Subject: [PATCH 08/15] fixing path in libuvc_internal. Need to make sure that libusb-1.0 is ok --- adUVCApp/src/ADUVC.cpp | 12 +++++++----- adUVCSupport/include/libuvc/libuvc_internal.h | 2 +- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/adUVCApp/src/ADUVC.cpp b/adUVCApp/src/ADUVC.cpp index e03ec0a..7bc25cc 100755 --- a/adUVCApp/src/ADUVC.cpp +++ b/adUVCApp/src/ADUVC.cpp @@ -540,7 +540,7 @@ void ADUVC::acquireStop(){ setIntegerParam(ADStatus, ADStatusIdle); setIntegerParam(ADAcquire, 0); callParamCallbacks(); - asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Stopping aquisition\n",driverName, functionName); + asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Stopping aquisition\n", driverName, functionName); } @@ -625,13 +625,11 @@ asynStatus ADUVC::uvc2NDArray(uvc_frame_t* frame, NDArray* pArray, NDDataType_t if(status != asynError){ if(deviceStatus<0){ reportUVCError(deviceStatus, functionName); - uvc_free_frame(rgb); status = asynError; } else{ if(rgb->data_bytes != imBytes){ asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Error invalid frame sizeFrame has %d bytes and array has %d bytes\n", driverName, functionName, (int) rgb->data_bytes, (int) imBytes); - uvc_free_frame(rgb); status = asynError; } else{ @@ -990,7 +988,11 @@ asynStatus ADUVC::writeInt32(asynUser* pasynUser, epicsInt32 value){ acquireStop(); } } - else if(function == ADUVC_ApplyFormat && value == 1) applyCameraFormat(); + else if(function == ADUVC_ApplyFormat && value == 1){ + if(acquiring) + acquireStop(); + applyCameraFormat(); + } else if(function == ADUVC_CameraFormat) updateCameraFormatDesc(); //switch image mode else if(function == ADImageMode){ @@ -1192,8 +1194,8 @@ ADUVC::ADUVC(const char* portName, const char* serial, int productID, int framer else{ asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, "%s::%s Acquiring device information\n", driverName, functionName); readSupportedCameraFormats(); - int i; /* + int i; for(i = 0; i< SUPPORTED_FORMAT_COUNT; i++){ printf("%s\n", this->supportedFormats[i].formatDesc); } diff --git a/adUVCSupport/include/libuvc/libuvc_internal.h b/adUVCSupport/include/libuvc/libuvc_internal.h index 829b294..88ca418 100755 --- a/adUVCSupport/include/libuvc/libuvc_internal.h +++ b/adUVCSupport/include/libuvc/libuvc_internal.h @@ -11,7 +11,7 @@ #include #include #include -#include +#include #include "utlist.h" /** Converts an unaligned four-byte little-endian integer into an int32 */ From f576eebafe55ef7fa5d14c642852fd4a7ddb306d Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 15:07:08 -0400 Subject: [PATCH 09/15] Added updated screen --- adUVCApp/op/ADUVC.opi | 436 +++++++++++++++++++++++++++++++++++++++--- 1 file changed, 408 insertions(+), 28 deletions(-) diff --git a/adUVCApp/op/ADUVC.opi b/adUVCApp/op/ADUVC.opi index cce46d5..93ba4a8 100644 --- a/adUVCApp/op/ADUVC.opi +++ b/adUVCApp/op/ADUVC.opi @@ -32,6 +32,64 @@ -11870864:166d4cb956b:-4e85 670 172 + + + false + 255 + true + false + + + + + + + false + + + + 0 + 1 + true + + + + 0.0 + + Default + + false + + + + false + 130 + true + + + + 0 + 1 + Rectangle_5 + + + + + true + true + false + + + $(pv_name) +$(pv_value) + true + true + Rectangle + 378 + -33b311ef:16b0efba116:-6925 + 718 + 342 + false @@ -56,7 +114,7 @@ 100.0 - Default + Default false @@ -102,7 +160,7 @@ $(pv_value) 1 true - Default + Default @@ -194,7 +252,7 @@ $(pv_value) 0.0 - Default + Default false @@ -252,7 +310,7 @@ $(pv_value) 100.0 - Default + Default false @@ -1097,7 +1155,7 @@ $(pv_value) 1 true - Default + Default false @@ -1151,7 +1209,7 @@ $(pv_value) 1 true - Default + Default false @@ -1317,7 +1375,7 @@ $(pv_value) 1 true - Default + Default false @@ -1878,7 +1936,7 @@ $(pv_value) 1 true - Default + Default false @@ -2198,7 +2256,7 @@ $(pv_value) 1 true - Default + Default false @@ -2334,7 +2392,7 @@ $(pv_value) 1 true - Default + Default false @@ -2479,7 +2537,7 @@ $(pv_value) 100.0 - Default + Default false @@ -2537,7 +2595,7 @@ $(pv_value) 0.0 - Default + Default false @@ -2685,7 +2743,7 @@ $(pv_value) 1 true - Default + Default false @@ -2777,7 +2835,7 @@ $(pv_value) 1 true - Default + Default false @@ -2831,7 +2889,7 @@ $(pv_value) 1 true - Default + Default false @@ -4982,7 +5040,7 @@ $(pv_value) 1 true - Default + Default @@ -4993,7 +5051,7 @@ $(pv_value) true Linking Container_1 - ../ADCore/R3-3-2/ADShutter.opi + ../ADCore/R3-5/ADShutter.opi 2 @@ -5022,7 +5080,7 @@ $(pv_value) 1 true - Default + Default @@ -5033,7 +5091,7 @@ $(pv_value) true Linking Container_2 - ../ADCore/R3-3-2/ADReadout.opi + ../ADCore/R3-5/ADReadout.opi 2 @@ -5062,7 +5120,7 @@ $(pv_value) 1 true - Default + Default @@ -5073,7 +5131,7 @@ $(pv_value) true Linking Container_3 - ../ADCore/R3-3-2/ADPlugins.opi + ../ADCore/R3-5/ADPlugins.opi 2 @@ -5102,7 +5160,7 @@ $(pv_value) 1 true - Default + Default @@ -5113,7 +5171,7 @@ $(pv_value) true Linking Container_4 - ../ADCore/R3-3-2/ADBuffers.opi + ../ADCore/R3-5/ADBuffers.opi 2 @@ -5142,7 +5200,7 @@ $(pv_value) 1 true - Default + Default @@ -5153,7 +5211,7 @@ $(pv_value) true Linking Container_5 - ../ADCore/R3-3-2/ADAttrFile.opi + ../ADCore/R3-5/ADAttrFile.opi 2 @@ -5182,7 +5240,7 @@ $(pv_value) 1 true - Default + Default @@ -5193,7 +5251,7 @@ $(pv_value) true Linking Container_6 - ../ADCore/R3-3-2/ADDriverFile.opi + ../ADCore/R3-5/ADDriverFile.opi 2 @@ -5265,7 +5323,7 @@ $(pv_value) 1 true - Default + Default false @@ -5495,4 +5553,326 @@ $(pv_value) 605 667 + + + false + + + + + + + 0 + 1 + true + + + + + + + 20 + 2 + Label_84 + + + true + true + false + + + Pre-Loaded Modes + + true + 1 + true + Label + 146 + false + -33b311ef:16b0efba116:-6963 + 722 + 355 + + + true + false + false + + + + false + + + + 6 + 1 + true + + Default + + false + + + + 20 + + Menu Button_6 + $(P)$(R)UVCCameraFormat + + + + true + true + false + + + false + $(pv_name) +$(pv_value) + false + true + Menu Button + 103 + -33b311ef:16b0efba116:-6962 + 878 + 355 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + + + false + + + + 4 + 18 + 1 + Text Update_57 + 0 + true + $(P)$(R)UVCCameraFormat_RBV + + 0.0 + + + true + true + false + + + false + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 100 + false + -33b311ef:16b0efba116:-6961 + 995 + 356 + + + + + $(P)$(R)UVCApplyFormat + 1 + 10 + + + + + false + false + + + + false + + + + 0 + 1 + true + + Default + + false + + + + 20 + + Action Button_4 + 0 + $(P)$(R)UVCApplyFormat + + + + true + true + false + + + + Apply + false + $(pv_name) +$(pv_value) + true + Action Button + 98 + -33b311ef:16b0efba116:-6956 + 839 + 431 + + + + false + + + + + + + 0 + 1 + true + + + + + + + 20 + 2 + Label_85 + + + true + true + false + + + Apply Mode + + true + 1 + true + Label + 98 + false + -33b311ef:16b0efba116:-6955 + 725 + 430 + + + + false + + + + + + + 0 + 1 + true + + + + + + + 20 + 2 + Label_86 + + + true + true + false + + + Currently Loaded Mode + + true + 1 + true + Label + 179 + false + -33b311ef:16b0efba116:-694a + 723 + 378 + + + + false + false + false + + + + true + + + + 0 + 1 + true + + + + false + + + + 4 + 18 + 0 + Text Update_58 + 0 + true + $(P)$(R)UVCFormatDescription_RBV + + 0.0 + + + true + true + false + + + false + ###### + $(pv_name) +$(pv_value) + false + 1 + true + Text Update + 356 + false + -33b311ef:16b0efba116:-6949 + 727 + 402 + \ No newline at end of file From 316d5f1ef58d82dbaa796588f2f006793247c9d2 Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 15:55:12 -0400 Subject: [PATCH 10/15] autosave fixed --- adUVCApp/Db/ADUVC_settings.req | 31 ++++++++++++++----------------- adUVCApp/src/ADUVC.cpp | 6 +++--- adUVCApp/src/ADUVC.h | 4 ---- 3 files changed, 17 insertions(+), 24 deletions(-) diff --git a/adUVCApp/Db/ADUVC_settings.req b/adUVCApp/Db/ADUVC_settings.req index c1a78cf..6d2b4c6 100755 --- a/adUVCApp/Db/ADUVC_settings.req +++ b/adUVCApp/Db/ADUVC_settings.req @@ -1,18 +1,15 @@ file "ADBase_settings.req", P=$(P), R=$(R) -$(P)$(R)UVC_COMPLIANCE -$(P)$(R)UVC_REFCOUNT -$(P)$(R)UVC_FRAMERATE -$(P)$(R)UVC_VENDOR -$(P)$(R)UVC_PRODUCT -$(P)$(R)UVC_FORMAT -$(P)$(R)UVC_GAMMA -$(P)$(R)UVC_BACKLIGHT -$(P)$(R)UVC_BRIGHTNESS -$(P)$(R)UVC_CONTRAST -$(P)$(R)UVC_POWER -$(P)$(R)UVC_HUE -$(P)$(R)UVC_SATURATION -$(P)$(R)UVC_SHARPNESS -$(P)$(R)UVC_CAMERA_FORMAT -$(P)$(R)UVC_FORMAT_DESCRIPTION -$(P)$(R)UVC_APPLY_FORMAT \ No newline at end of file +$(P)$(R)UVCComplianceLevel +$(P)$(R)UVCFramerate +$(P)$(R)UVCImageFormat +$(P)$(R)UVCGamma +$(P)$(R)UVCBacklightCompensation +$(P)$(R)UVCBrightness +$(P)$(R)UVCContrast +$(P)$(R)UVCPowerLine +$(P)$(R)UVCHue +$(P)$(R)UVCSaturation +$(P)$(R)UVCSharpness +$(P)$(R)UVCCameraFormat +$(P)$(R)UVCFormatDescription_RBV +$(P)$(R)UVCApplyFormat \ No newline at end of file diff --git a/adUVCApp/src/ADUVC.cpp b/adUVCApp/src/ADUVC.cpp index 7bc25cc..2129de8 100755 --- a/adUVCApp/src/ADUVC.cpp +++ b/adUVCApp/src/ADUVC.cpp @@ -1141,8 +1141,6 @@ ADUVC::ADUVC(const char* portName, const char* serial, int productID, int framer createParam(ADUVC_UVCComplianceLevelString, asynParamInt32, &ADUVC_UVCComplianceLevel); createParam(ADUVC_ReferenceCountString, asynParamInt32, &ADUVC_ReferenceCount); createParam(ADUVC_FramerateString, asynParamInt32, &ADUVC_Framerate); - createParam(ADUVC_VendorIDString, asynParamInt32, &ADUVC_VendorID); - createParam(ADUVC_ProductIDString, asynParamInt32, &ADUVC_ProductID); createParam(ADUVC_ImageFormatString, asynParamInt32, &ADUVC_ImageFormat); createParam(ADUVC_CameraFormatString, asynParamInt32, &ADUVC_CameraFormat); createParam(ADUVC_FormatDescriptionString, asynParamOctet, &ADUVC_FormatDescription); @@ -1165,7 +1163,9 @@ ADUVC::ADUVC(const char* portName, const char* serial, int productID, int framer if(strcmp(serial, "") == 0) setStringParam(ADSerialNumber, "No Serial Detected"); else setStringParam(ADSerialNumber, serial); - setIntegerParam(ADUVC_ProductID, productID); + char pIDBuff[32]; + epicsSnprintf(pIDBuff, 32, "%d", productID); + setStringParam(ADSerialNumber, pIDBuff); //sets libuvc version char uvcVersionString[25]; diff --git a/adUVCApp/src/ADUVC.h b/adUVCApp/src/ADUVC.h index 0e519c2..5b3b3f4 100755 --- a/adUVCApp/src/ADUVC.h +++ b/adUVCApp/src/ADUVC.h @@ -34,8 +34,6 @@ #define ADUVC_UVCComplianceLevelString "UVC_COMPLIANCE" //asynInt32 #define ADUVC_ReferenceCountString "UVC_REFCOUNT" //asynInt32 #define ADUVC_FramerateString "UVC_FRAMERATE" //asynInt32 -#define ADUVC_VendorIDString "UVC_VENDOR" //asynInt32 -#define ADUVC_ProductIDString "UVC_PRODUCT" //asynInt32 #define ADUVC_ImageFormatString "UVC_FORMAT" //asynInt32 #define ADUVC_CameraFormatString "UVC_CAMERA_FORMAT" //asynInt32 #define ADUVC_FormatDescriptionString "UVC_FORMAT_DESCRIPTION" //asynOctet @@ -108,8 +106,6 @@ class ADUVC : ADDriver{ #define ADUVC_FIRST_PARAM ADUVC_UVCComplianceLevel int ADUVC_ReferenceCount; int ADUVC_Framerate; - int ADUVC_VendorID; - int ADUVC_ProductID; int ADUVC_ImageFormat; int ADUVC_CameraFormat; int ADUVC_FormatDescription; From f3388b6afd24543756b9626dd4105f77dbb019cd Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 16:04:54 -0400 Subject: [PATCH 11/15] Adding newline to end of auto settings file - needed for autosave --- iocs/adUVCIOC/iocBoot/iocADUVC/auto_settings.req | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/iocs/adUVCIOC/iocBoot/iocADUVC/auto_settings.req b/iocs/adUVCIOC/iocBoot/iocADUVC/auto_settings.req index 760eea9..d001d6b 100755 --- a/iocs/adUVCIOC/iocBoot/iocADUVC/auto_settings.req +++ b/iocs/adUVCIOC/iocBoot/iocADUVC/auto_settings.req @@ -1,3 +1,3 @@ file "ADUVC_settings.req", P=$(P), R=cam1: file "NDStdArrays_settings.req", P=$(P), R=image1: -file "commonPlugin_settings.req", P=$(P) \ No newline at end of file +file "commonPlugin_settings.req", P=$(P) From 26a2fdf19ebd1bfc79b9fa836612c2d9fdac5ea1 Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 16:22:25 -0400 Subject: [PATCH 12/15] added comments to newly added functions --- adUVCApp/src/ADUVC.cpp | 240 +++++++++++++++++++++++++---------------- 1 file changed, 147 insertions(+), 93 deletions(-) diff --git a/adUVCApp/src/ADUVC.cpp b/adUVCApp/src/ADUVC.cpp index 2129de8..aec48cd 100755 --- a/adUVCApp/src/ADUVC.cpp +++ b/adUVCApp/src/ADUVC.cpp @@ -33,9 +33,10 @@ #include #include - +// standard namespace using namespace std; +// define driver name for logging static const char* driverName = "ADUVC"; // Constants @@ -91,15 +92,27 @@ void ADUVC::reportUVCError(uvc_error_t status, const char* functionName){ } } + +//----------------------------------------------- +// ADUVC Camera Format selector functions +//----------------------------------------------- + + +/** + * External C function pulled from libuvc_internal diagnostics. + * Simply returns a string for a given subtype + * + * @return: string representing certain subtype identifier + */ extern "C" const char* get_string_for_subtype(uint8_t subtype) { - switch (subtype) { - case UVC_VS_FORMAT_UNCOMPRESSED: - return "UncompressedFormat"; - case UVC_VS_FORMAT_MJPEG: - return "MJPEGFormat"; - default: - return "Unknown"; - } + switch (subtype) { + case UVC_VS_FORMAT_UNCOMPRESSED: + return "UncompressedFormat"; + case UVC_VS_FORMAT_MJPEG: + return "MJPEGFormat"; + default: + return "Unknown"; + } } @@ -145,90 +158,6 @@ void ADUVC::applyCameraFormat(){ } -//----------------------------------------------- -// ADUVC connection/disconnection functions -//----------------------------------------------- - -/** - * Function responsible for connecting to the UVC device. First, a device context is created, - * then the device is identified, then opened. - * NOTE: this driver must have exclusive access to the device as per UVC standards. - * - * @params[in]: connectionType -> UVC can now connect with productID or serial ID. This flag switches - * @params[in]: serialNumber -> serial number of device to connect to - * @params[in]: productID -> product ID of camera to connect to - * @return: asynStatus -> true if connection is successful, false if failed - */ -asynStatus ADUVC::connectToDeviceUVC(int connectionType, const char* serialNumber, int productID){ - static const char* functionName = "connectToDeviceUVC"; - asynStatus status = asynSuccess; - deviceStatus = uvc_init(&pdeviceContext, NULL); - - if(deviceStatus<0){ - reportUVCError(deviceStatus, functionName); - return asynError; - } - else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, - "%s::%s Initialized UVC context\n", driverName, functionName); - } - if(connectionType == 0){ - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, - "%s::%s Searching for UVC device with serial number: %s\n", driverName, functionName, serialNumber); - deviceStatus = uvc_find_device(pdeviceContext, &pdevice, 0, 0, serialNumber); - } - else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, - "%s::%s Searching for UVC device with Product ID: %d\n", driverName, functionName, productID); - deviceStatus = uvc_find_device(pdeviceContext, &pdevice, 0, productID, NULL); - } - if(deviceStatus<0){ - reportUVCError(deviceStatus, functionName); - return asynError; - } - else{ - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, - "%s::%s Found UVC device\n", driverName, functionName); - } - deviceStatus = uvc_open(pdevice, &pdeviceHandle); - if(deviceStatus<0){ - reportUVCError(deviceStatus, functionName); - return asynError; - } - else{ - connected = 1; - asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, - "%s::%s Opened UVC device\n", driverName, functionName); - } - return status; -} - - -/** - * Function that disconnects from a connected UVC device. - * Closes device handle and context, and unreferences the device pointer from memory - * - * @return: asynStatus -> success if device existed and was disconnected, error if there was no device connected - */ -asynStatus ADUVC::disconnectFromDeviceUVC(){ - const char* functionName = "disconnectFromDeviceUVC"; - asynPrint(this->pasynUserSelf, ASYN_TRACEIO_DRIVER, - "%s::%s Calling all free functions for ADUVC\n", driverName, functionName); - int i; - for(i = 0; i< SUPPORTED_FORMAT_COUNT; i++){ - // free mem in supported - free(this->supportedFormats[i].formatDesc); - } - if(connected == 1){ - uvc_close(pdeviceHandle); - uvc_unref_device(pdevice); - uvc_exit(pdeviceContext); - return asynSuccess; - } - return asynError; -} - - /** * Function that reads all supported camera formats into a ADUVC_CamFormat_t struct, and then * selects the ones that are most likely to be useful for easy selection. @@ -271,6 +200,15 @@ asynStatus ADUVC::readSupportedCameraFormats(){ } +/** + * Function that takes a format descriptor and a frame descriptor, and populates a camera format + * structure with the appropriate values. + * + * @params[out]: camFormat -> Output camFormat struct + * @params[in]: format_desc -> Format descriptor struct + * @params[in]: frame_desc -> Frame descriptor struct + * @return: void + */ void ADUVC:: populateCameraFormat(ADUVC_CamFormat_t* camFormat, uvc_format_desc_t* format_desc, uvc_frame_desc_t* frame_desc){ const char* functionName = "populateCameraFormat"; switch(format_desc->bDescriptorSubtype){ @@ -298,12 +236,26 @@ void ADUVC:: populateCameraFormat(ADUVC_CamFormat_t* camFormat, uvc_format_desc_ } +/** + * Function that initializes a Camera Format struct with empty placeholder + * + * @params[in]: arrayIndex -> index in array of supported formats + * @return: void + */ void ADUVC::initEmptyCamFormat(int arrayIndex){ this->supportedFormats[arrayIndex].formatDesc = (char*) malloc(256); epicsSnprintf(this->supportedFormats[arrayIndex].formatDesc, 256, "Unused Camera Format"); this->supportedFormats[arrayIndex].frameFormat = ADUVC_FrameUnsupported; } + +/** + * Function that compares two camera format structs against one another + * + * @params[in]: cameraFormat1 -> first camera format struct + * @params[in]: cameraFormat2 -> second camera format struct + * @return: 0 if the two structs are identical, -1 if they are not + */ int ADUVC::compareFormats(ADUVC_CamFormat_t camFormat1, ADUVC_CamFormat_t camFormat2){ if (camFormat1.xSize != camFormat2.xSize) return -1; if (camFormat1.ySize != camFormat2.ySize) return -1; @@ -315,6 +267,12 @@ int ADUVC::compareFormats(ADUVC_CamFormat_t camFormat1, ADUVC_CamFormat_t camFor } +/** + * Function that checks if a Cam format struct is already in the camera's format array + * + * @params[in]: camFormat -> format to test + * @return: true if it is in the supportedFormats array, false otherwise + */ bool ADUVC::formatAlreadySaved(ADUVC_CamFormat_t camFormat){ int i; for(i = 0; i< SUPPORTED_FORMAT_COUNT; i++){ @@ -325,6 +283,17 @@ bool ADUVC::formatAlreadySaved(ADUVC_CamFormat_t camFormat){ return false; } + +/** + * Function that selects the best discovered formats from the set of all discovered formats. + * The current order of importance is MJPEG > Uncompressed (Higher end devices only have uncompressed, + * and lower end devices exhibit poor performance when using Uncompressed), then image resolution, + * then framerate. + * + * @params[in]: formatBuffer -> Buffer containing all detected camera formats + * @params[in]: numFormats -> counter for how many formats were detected + * @return: readFormats -> The number of formats read from the formatBuffer + */ int ADUVC::selectBestCameraFormats(ADUVC_CamFormat_t* formatBuffer, int numFormats){ const char* functionName = "selectBestCameraFormats"; asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, @@ -363,6 +332,91 @@ int ADUVC::selectBestCameraFormats(ADUVC_CamFormat_t* formatBuffer, int numForma return readFormats; } + +//----------------------------------------------- +// ADUVC connection/disconnection functions +//----------------------------------------------- + +/** + * Function responsible for connecting to the UVC device. First, a device context is created, + * then the device is identified, then opened. + * NOTE: this driver must have exclusive access to the device as per UVC standards. + * + * @params[in]: connectionType -> UVC can now connect with productID or serial ID. This flag switches + * @params[in]: serialNumber -> serial number of device to connect to + * @params[in]: productID -> product ID of camera to connect to + * @return: asynStatus -> true if connection is successful, false if failed + */ +asynStatus ADUVC::connectToDeviceUVC(int connectionType, const char* serialNumber, int productID){ + static const char* functionName = "connectToDeviceUVC"; + asynStatus status = asynSuccess; + deviceStatus = uvc_init(&pdeviceContext, NULL); + + if(deviceStatus<0){ + reportUVCError(deviceStatus, functionName); + return asynError; + } + else{ + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Initialized UVC context\n", driverName, functionName); + } + if(connectionType == 0){ + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Searching for UVC device with serial number: %s\n", driverName, functionName, serialNumber); + deviceStatus = uvc_find_device(pdeviceContext, &pdevice, 0, 0, serialNumber); + } + else{ + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Searching for UVC device with Product ID: %d\n", driverName, functionName, productID); + deviceStatus = uvc_find_device(pdeviceContext, &pdevice, 0, productID, NULL); + } + if(deviceStatus<0){ + reportUVCError(deviceStatus, functionName); + return asynError; + } + else{ + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Found UVC device\n", driverName, functionName); + } + deviceStatus = uvc_open(pdevice, &pdeviceHandle); + if(deviceStatus<0){ + reportUVCError(deviceStatus, functionName); + return asynError; + } + else{ + connected = 1; + asynPrint(this->pasynUserSelf, ASYN_TRACE_FLOW, + "%s::%s Opened UVC device\n", driverName, functionName); + } + return status; +} + + +/** + * Function that disconnects from a connected UVC device. + * Closes device handle and context, and unreferences the device pointer from memory + * + * @return: asynStatus -> success if device existed and was disconnected, error if there was no device connected + */ +asynStatus ADUVC::disconnectFromDeviceUVC(){ + const char* functionName = "disconnectFromDeviceUVC"; + asynPrint(this->pasynUserSelf, ASYN_TRACEIO_DRIVER, + "%s::%s Calling all free functions for ADUVC\n", driverName, functionName); + int i; + for(i = 0; i< SUPPORTED_FORMAT_COUNT; i++){ + // free mem in supported + free(this->supportedFormats[i].formatDesc); + } + if(connected == 1){ + uvc_close(pdeviceHandle); + uvc_unref_device(pdevice); + uvc_exit(pdeviceContext); + return asynSuccess; + } + return asynError; +} + + /** * Function responsible for getting image acquisition information * Gets the exposure, gamma, backlight comp, brightness, contrast, gain, hue, power line, saturation, and From 616e657fd0ba8d9f4bd19a13d403b53a7926bed1 Mon Sep 17 00:00:00 2001 From: jwlodek Date: Mon, 10 Jun 2019 17:09:17 -0400 Subject: [PATCH 13/15] Updating for R1-2 --- README.md | 6 +++--- RELEASE.md | 19 +++++++++++++++++++ adUVCApp/src/ADUVC.cpp | 34 ++++++++++++++++++++++++++++------ adUVCApp/src/ADUVC.h | 31 ++++++++++++++++++++----------- docs/index.html | 31 ++++++++++++++++++++++++++++--- 5 files changed, 98 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index 738a79c..4c6224d 100755 --- a/README.md +++ b/README.md @@ -8,14 +8,14 @@ Copyright (c): 2018-2019 Brookhaven National Laboratory ### An EPICS Driver for USB Video Class (UVC) devices -Release versions of this driver are available on Github. Release notes are available on https://jwlodek.github.io/ADUVC. Please report any problems or feature requests on the issues page on https://github.com/jwlodek/ADUVC. +Release versions of this driver are available on Github. Release notes are available on https://jwlodek.github.io/ADUVC. Please report any problems or feature requests on the issues page on https://github.com/epicsNSLS2-areaDetector/ADUVC. ### Installation Prior to installing the ADUVC area detector driver, there are several dependencies that must be met. First, libusb, libjpeg, and cmake and their development packages must be installed. On a debian based linux machine, this can be done with the following command: ``` -sudo apt install libusb-dev libjpeg-dev cmake +sudo apt install libusb-dev libusub-1.0-0-dev libjpeg-dev cmake ``` If you wish to use the libjpeg version included with ADSupport, it is important to specifiy that during the build of libuvc, because otherwise there will be a conflict when building ADUVC. The simplest solution is to set JPEG_EXTERNAL=YES in the CONFIG_SITE.local file in the configure directory at the top level of areaDetector. @@ -90,7 +90,7 @@ There are also several more traditional industrial cameras that use the UVC stan * If using ADUVC with Virtualbox, you need to passthrough the hold of the camera to the guest OS. Instructions for doing so can be found on this website: https://scribles.net/using-webcam-in-virtualbox-guest-os-on-windows-host/ -### USB Camera IOC Issues +### Fixing issues with root ownership of UVC devices * The USB camera device is typically owned by root, which prevents EPICS IOC from running as softioc user, and automatic startup using procServer. To grant access to USB camera device by other users, such as softioc, we wrote udev rules. diff --git a/RELEASE.md b/RELEASE.md index ddac856..6e5abfc 100755 --- a/RELEASE.md +++ b/RELEASE.md @@ -4,9 +4,28 @@ Author: Jakub Wlodek ADUVC requires libusb, libuvc, epics-base, epics-modules, ADCore, and ADSupport. Further installation information can be found in the README file. + Release Notes ============= +R1-2 (???-June-2019) +----- +* Key detector features implemented: + * Camera modes now read into structs at startup + * Valid camera mode structs selectable from dropdown in CSS - improves usability + * Autosave functionality tested and working. + * More extensive status messages/detector feedback + +* Key fixes and improvements + * Removed unused PVs (ADUVC_VendorID, ADUVC_ProductID) + * Fixed memory leak caused by early return from frame conversion function on error + * Added Makefiles to the support modules + * Documentation updates + * Added information on using camera with Virtual Box + * Removed newlines from status messages for better readability. + * CSS screen updated + + R1-1 (28-January-2019) ----- * Key detector features implemented: diff --git a/adUVCApp/src/ADUVC.cpp b/adUVCApp/src/ADUVC.cpp index aec48cd..4c50c02 100755 --- a/adUVCApp/src/ADUVC.cpp +++ b/adUVCApp/src/ADUVC.cpp @@ -85,14 +85,24 @@ void ADUVC::reportUVCError(uvc_error_t status, const char* functionName){ asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s UVC Error: %s\n", driverName, functionName, uvc_strerror(status)); if(status != UVC_ERROR_OTHER){ - char statusMessage[25]; - epicsSnprintf(statusMessage, sizeof(statusMessage), "UVC Error: %s", uvc_strerror(status)); - setStringParam(ADStatusMessage, statusMessage); - callParamCallbacks(); + updateStatus(uvc_strerror(status)); } } +/** + * Function that writes to ADStatus PV + * + * @params[in]: status -> message to write to ADStatus PV + */ +void ADUVC::updateStatus(const char* status){ + char statusMessage[25]; + epicsSnprintf(statusMessage, sizeof(statusMessage), "UVC Error: %s", status); + setStringParam(ADStatusMessage, statusMessage); + callParamCallbacks(); +} + + //----------------------------------------------- // ADUVC Camera Format selector functions //----------------------------------------------- @@ -127,6 +137,7 @@ void ADUVC::updateCameraFormatDesc(){ char description[256]; epicsSnprintf(description, sizeof(description), "%s", this->supportedFormats[selectedFormat].formatDesc); setStringParam(ADUVC_FormatDescription, description); + updateStatus("Updated format Desc."); callParamCallbacks(); } @@ -154,6 +165,7 @@ void ADUVC::applyCameraFormat(){ setIntegerParam(ADUVC_ImageFormat, format.frameFormat); } setIntegerParam(ADUVC_ApplyFormat, 0); + updateStatus("Applied format"); callParamCallbacks(); } @@ -573,6 +585,7 @@ uvc_error_t ADUVC::acquireStart(uvc_frame_format imageFormat){ callParamCallbacks(); } } + updateStatus("Started acquisition"); return deviceStatus; } @@ -594,6 +607,7 @@ void ADUVC::acquireStop(){ setIntegerParam(ADStatus, ADStatusIdle); setIntegerParam(ADAcquire, 0); callParamCallbacks(); + updateStatus("Stopped acquisition"); asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s Stopping aquisition\n", driverName, functionName); } @@ -834,6 +848,7 @@ void ADUVC::newFrameCallback(uvc_frame_t* frame, void* ptr){ asynStatus ADUVC::setExposure(int exposureTime){ const char* functionName = "setExposure"; asynStatus status = asynSuccess; + updateStatus("Set Exposure"); deviceStatus = uvc_set_exposure_abs(pdeviceHandle, exposureTime); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -852,7 +867,7 @@ asynStatus ADUVC::setExposure(int exposureTime){ asynStatus ADUVC::setGamma(int gamma){ const char* functionName = "setGamma"; asynStatus status = asynSuccess; - + updateStatus("Set Gamma"); deviceStatus = uvc_set_gamma(pdeviceHandle, gamma); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -871,6 +886,7 @@ asynStatus ADUVC::setGamma(int gamma){ asynStatus ADUVC::setBacklightCompensation(int backlightCompensation){ const char* functionName = "setBacklightCompensation"; asynStatus status = asynSuccess; + updateStatus("Set Backlight Comp."); deviceStatus = uvc_set_backlight_compensation(pdeviceHandle, backlightCompensation); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -889,6 +905,7 @@ asynStatus ADUVC::setBacklightCompensation(int backlightCompensation){ asynStatus ADUVC::setBrightness(int brightness){ const char* functionName = "setBrightness"; asynStatus status = asynSuccess; + updateStatus("Set Brightness"); deviceStatus = uvc_set_brightness(pdeviceHandle, brightness); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -907,6 +924,7 @@ asynStatus ADUVC::setBrightness(int brightness){ asynStatus ADUVC::setContrast(int contrast){ const char* functionName = "setContrast"; asynStatus status = asynSuccess; + updateStatus("Set Contrast"); deviceStatus = uvc_set_contrast(pdeviceHandle, contrast); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -925,6 +943,7 @@ asynStatus ADUVC::setContrast(int contrast){ asynStatus ADUVC::setGain(int gain){ const char* functionName = "setGain"; asynStatus status = asynSuccess; + updateStatus("Set Gain"); deviceStatus = uvc_set_gain(pdeviceHandle, gain); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -943,6 +962,7 @@ asynStatus ADUVC::setGain(int gain){ asynStatus ADUVC::setPowerLineFrequency(int powerLineFrequency){ const char* functionName = "setPowerLineFrequency"; asynStatus status = asynSuccess; + updateStatus("Set Power Line Freq."); deviceStatus = uvc_set_power_line_frequency(pdeviceHandle, powerLineFrequency); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -962,6 +982,7 @@ asynStatus ADUVC::setPowerLineFrequency(int powerLineFrequency){ asynStatus ADUVC::setHue(int hue){ const char* functionName = "setHue"; asynStatus status = asynSuccess; + updateStatus("Set Hue"); deviceStatus = uvc_set_hue(pdeviceHandle, hue); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -980,6 +1001,7 @@ asynStatus ADUVC::setHue(int hue){ asynStatus ADUVC::setSaturation(int saturation){ const char* functionName = "setSaturation"; asynStatus status = asynSuccess; + updateStatus("Set Saturation"); deviceStatus = uvc_set_saturation(pdeviceHandle, saturation); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -998,6 +1020,7 @@ asynStatus ADUVC::setSaturation(int saturation){ asynStatus ADUVC::setSharpness(int sharpness){ const char* functionName = "setSharpness"; asynStatus status = asynSuccess; + updateStatus("Set Sharpness"); deviceStatus = uvc_set_sharpness(pdeviceHandle, sharpness); if(deviceStatus < 0){ reportUVCError(deviceStatus, functionName); @@ -1007,7 +1030,6 @@ asynStatus ADUVC::setSharpness(int sharpness){ } - //------------------------------------------------------------------------- // ADDriver function overwrites //------------------------------------------------------------------------- diff --git a/adUVCApp/src/ADUVC.h b/adUVCApp/src/ADUVC.h index 5b3b3f4..31bd66d 100755 --- a/adUVCApp/src/ADUVC.h +++ b/adUVCApp/src/ADUVC.h @@ -29,8 +29,7 @@ #include "ADDriver.h" -// PV definitions - +// PV String definitions #define ADUVC_UVCComplianceLevelString "UVC_COMPLIANCE" //asynInt32 #define ADUVC_ReferenceCountString "UVC_REFCOUNT" //asynInt32 #define ADUVC_FramerateString "UVC_FRAMERATE" //asynInt32 @@ -61,7 +60,7 @@ typedef enum { } ADUVC_FrameFormat_t; -/* Struct for individual supported camera format */ +/* Struct for individual supported camera format - Used to auto read modes into dropdown for easier operation */ typedef struct ADUVC_CamFormat{ char* formatDesc; size_t xSize; @@ -87,7 +86,6 @@ class ADUVC : ADDriver{ // Constructor ADUVC(const char* portName, const char* serial, int productID, int framerate, int xsize, int ysize, int maxBuffers, size_t maxMemory, int priority, int stackSize); - //TODO: add overrides of ADDriver functions // ADDriver overrides virtual asynStatus writeInt32(asynUser* pasynUser, epicsInt32 value); @@ -118,7 +116,7 @@ class ADUVC : ADDriver{ int ADUVC_Hue; int ADUVC_Saturation; int ADUVC_Sharpness; - #define ADUVC_LAST_PARAM ADUVC_Sharpness + #define ADUVC_LAST_PARAM ADUVC_Sharpness private: @@ -170,21 +168,36 @@ class ADUVC : ADDriver{ // reports device and driver info into a log file void report(FILE* fp, int details); + // writes to ADStatus PV + void updateStatus(const char* status); + // ---------------------------------------- // UVC Functions - Connecting to camera //----------------------------------------- //function used for connecting to a UVC device and reading supported camera modes. asynStatus connectToDeviceUVC(int connectionType, const char* serialNumber, int productID); + + //function used to disconnect from UVC device + asynStatus disconnectFromDeviceUVC(); + + // ---------------------------------------- + // UVC Functions - Camera Format Detection + //----------------------------------------- + + // functions for reading camera formats, and linking them to the appropriate PVs asynStatus readSupportedCameraFormats(); void populateCameraFormat(ADUVC_CamFormat_t* camFormat, uvc_format_desc_t* format_desc, uvc_frame_desc_t* frame_desc); int selectBestCameraFormats(ADUVC_CamFormat_t* formatBuffer, int numberInterfaces); + + // helper functions void initEmptyCamFormat(int arrayIndex); bool formatAlreadySaved(ADUVC_CamFormat_t camFormat); int compareFormats(ADUVC_CamFormat_t camFormat1, ADUVC_CamFormat_t camFormat2); - //function used to disconnect from UVC device - asynStatus disconnectFromDeviceUVC(); + // Functions for applying saved camera mode to PVs + void updateCameraFormatDesc(); + void applyCameraFormat(); // ---------------------------------------- // UVC Functions - Camera functions @@ -202,10 +215,6 @@ class ADUVC : ADDriver{ asynStatus setSaturation(int saturation); asynStatus setSharpness(int sharpness); - - void updateCameraFormatDesc(); - void applyCameraFormat(); - //function that begins image aquisition uvc_error_t acquireStart(uvc_frame_format format); diff --git a/docs/index.html b/docs/index.html index 43609d2..9a9706c 100644 --- a/docs/index.html +++ b/docs/index.html @@ -58,6 +58,32 @@

Usage:

Release Notes:

+ +

Release Notes

+

R1-2 (???-June-2019)

+
    +
  • +

    Key detector features implemented:

    +
      +
    • Camera modes now read into structs at startup
    • +
    • Valid camera mode structs selectable from dropdown in CSS - improves usability
    • +
    • Autosave functionality tested and working.
    • +
    • More extensive status messages/detector feedback
    • +
    +
  • +
  • +

    Key fixes and improvements

    +
      +
    • Removed unused PVs (ADUVC_VendorID, ADUVC_ProductID)
    • +
    • Fixed memory leak caused by early return from frame conversion function on error
    • +
    • Added Makefiles to the support modules
    • +
    • Documentation updates
    • +
    • Added information on using camera with Virtual Box
    • +
    • Removed newlines from status messages for better readability.
    • +
    • CSS screen updated
    • +
    +
  • +

R1-1 (28-January-2019)

  • @@ -133,9 +159,8 @@

    R0-1 (Beta) (5-November-2018)

  • No custom screens (uses ADBase screen)
- - - + +

Issues and pull requests:

From 07a1a7bdc1180b195b352f003edc74d89198c869 Mon Sep 17 00:00:00 2001 From: jwlodek Date: Tue, 11 Jun 2019 09:48:56 -0400 Subject: [PATCH 14/15] Fixed status message --- adUVCApp/src/ADUVC.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/adUVCApp/src/ADUVC.cpp b/adUVCApp/src/ADUVC.cpp index 4c50c02..e37e6aa 100755 --- a/adUVCApp/src/ADUVC.cpp +++ b/adUVCApp/src/ADUVC.cpp @@ -85,7 +85,9 @@ void ADUVC::reportUVCError(uvc_error_t status, const char* functionName){ asynPrint(this->pasynUserSelf, ASYN_TRACE_ERROR, "%s::%s UVC Error: %s\n", driverName, functionName, uvc_strerror(status)); if(status != UVC_ERROR_OTHER){ - updateStatus(uvc_strerror(status)); + char errorMessage[25]; + epicsSnprintf(errorMessage, sizeof(errorMessage), "UVC Error: %s", uvc_strerror(status)); + updateStatus(errorMessage); } } @@ -97,7 +99,7 @@ void ADUVC::reportUVCError(uvc_error_t status, const char* functionName){ */ void ADUVC::updateStatus(const char* status){ char statusMessage[25]; - epicsSnprintf(statusMessage, sizeof(statusMessage), "UVC Error: %s", status); + epicsSnprintf(statusMessage, sizeof(statusMessage), "%s", status); setStringParam(ADStatusMessage, statusMessage); callParamCallbacks(); } From ceb2d2c67f8bf1a6ccc2f99ab7c8aad8a8714b13 Mon Sep 17 00:00:00 2001 From: jwlodek Date: Tue, 11 Jun 2019 09:57:32 -0400 Subject: [PATCH 15/15] Doc edits for R1-2 --- README.md | 2 +- RELEASE.md | 2 +- docs/assets/ADUVCBase.png | Bin 164957 -> 180128 bytes docs/index.html | 10 ++++++---- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 4c6224d..2000d6c 100755 --- a/README.md +++ b/README.md @@ -61,7 +61,7 @@ sudo ./startEPICS.sh Note that running as sudo is not required if connecting via product ID. -Further documentation is available at https://jwlodek.github.io/ADUVC +Further documentation, including CSS screenshots and usage information, is available at the driver's [website](https://jwlodek.github.io/ADUVC). ### Possible use cases diff --git a/RELEASE.md b/RELEASE.md index 6e5abfc..04561aa 100755 --- a/RELEASE.md +++ b/RELEASE.md @@ -8,7 +8,7 @@ ADUVC requires libusb, libuvc, epics-base, epics-modules, ADCore, and ADSupport. Release Notes ============= -R1-2 (???-June-2019) +R1-2 (11-June-2019) ----- * Key detector features implemented: * Camera modes now read into structs at startup diff --git a/docs/assets/ADUVCBase.png b/docs/assets/ADUVCBase.png index c44b084cbc2a4d665b8cfad77be06a24e63513e7..88d7c2ee3284af78260b468e5aaf7cbef92d3b12 100644 GIT binary patch literal 180128 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%0D%7 zB1Z#s8-h}r@9@bzR>RtzsM+_W;cwkbQYj7oc?)@VmleXv@7g8XHeR*sW{#d7o;W5) z0GOXVbo#o*EV!P3kdzp)7G$6cNNRN9RYZ!q}X!KP6j8FV${qWHRHJeVhMFHni`l>Te*DH(_YA4}S<$&w_Jpq`zw; z_hNKnrAdXJZoW`!B|lKR+ff^kzWsH1x!g=vb8@EM^X#H~vlh{_D5`6+v*;i3Dq%eK zH^wiib^4Bvd0DcMY4WscPsg*_RpFTO_$H^+lznt)dS}$~ze5ONsgjhzldjL!5-x}R z52)8M?AvGu(V2o%pT@Lwm=oT^QIDN*r4|G#G0t&J?-D}2o+4vI2|?|W)neTwhxF$E zLeJaYeP^5R^p6g)2)kGWM2QPP&ualHyaY^YfeXBUq<=Ofs zJu#msnmEtod)>roQ}Jwfa0yAZeGEk&`vW zG32B56n!l-?gaWc9%NVTPHdCd*vP-jl>Wh+xGPpmr)my_@9#85=gS(*k5U!X1Kk{l zB*TIBg@cpJtaYfbJ$c1Z2~dB>UR0xz^=rrwu}wjiPCkhL|fQIw^be#b zKCxg0I9|mf2ZnhJK#^e%Yu6*dg##Sk3q_W+Y7{%XEP%2v3Ezc!o{hf4@N>O z5VXn}iWv;%vIo>}A4=;Sh~n_zN2u_Kh8Z)hEl-SqQ!crjes97TGMIPD?a7_Q5!k`a z`x}TFu>VIO8inQ&R0oekt})Fy#b4X7Ig`SoXd9Rc|)8B zHK*o|Wm#Si_~zh84e{Gz(x}ndt(j!rTtOIx6_wRXG*!jD=uUr*7E@da5QhciVj)R+ zx=2fz0CO2r=u@e``lkZuK1K=3oh<;Q9X#K=+PGPQ%v|0kV|DABSLA>}+JNOWGG~gZ z`F|w6Kc+jX|0zxf_QFqus(9Ao@E~S(N8{jdQg&oCUJ69_XQB^t^{ZQ_F!Z5n3LHM_ z3xs!#w#>5=7W>{j5|DnYEE>JPZhLbB&~0DX3D)>DN!aXqky@=(IwUzxpWRE+E1URUG>a_Aam{}@K7ywX@;A#cm2 zrETZp_PYW*6i1Ok>EZR!sAF^r^dMBmsS}<@{i4=)Vb~PZ`)|Ade7KRX=kUe)e+G#p zE44PgZgO05*yW|s<(as`4S#wsx?3GxiGd(4->J&=*ut0l8PY{cuRjV3JzFC9-khnP zFqUvOn+`!Eim`D3LsGE_*qS+Lu{$SvVWl+|_^6Ed0{z76`GAYse+O>&%31e&IyOqI z!JtZ>Z~&a7o~h2iUxDWBuYTvR>zgV=FfMi4isxvNmcbr< zuMt>%yZU!705r(iAiV}}yt^Z09S;Q*O!8+XGwvYxbW}R^iGyLX!_kJK9|u02M>mAY z=f_u6%F(}mEF;J4g_-*8X*%J}##Q-XNWVmyEUxVJuvTMIQ)U@-BlqhE+3rk9HKtCq zE6*IV9>76ZlD2=gm}E!b3wF(um#Wk4=~1r3sAY-+%ftn=ypiKAVib{9kkI_g7z9E{ z3&9{EErI2OwLJh!@>pEMG&*J6zS3Wbj^B=mehxvYb35*(zCL?8hXd1Tn8^~}rvO&( zQ*dpf?{CjB2J^OX?)!gC3*Mtb1m(|s`5pOc*h&{;yb61p-F=F$T)w+sc0#k^)NElr zDFBX^Dh;8PgwFpy>WV@vG>Kt)ZQ;tOD z!KtyKNJl6uU7zrhMh~A;qjwHe8kD~#@exZDreo<*3a2YNhmIQr9D&e>hAPcj)g0#H zeo?NPpJwW)SMljfQp`1xa%hN4BVj5mKFmmWzA#74Y+uR@^w-62ABb3p zgNppo4uTf#I~5&mdK72$+P16DM+oEO_W%iq=*-|t&%U_qs;pFM9NRVug`!GJ6f5yr zzb#H?`8+g}q(d0LwDt;@E^v03!kHz^h-`OqIJ^jWh?6yOLmw%11ojzl;^z{}75meT z7__AJJTjug4*U5N42qYurs9>Up&1I}+cEaw9TuFeHxr;m>AM?caierc(Nj zI5|d?YKI2C5dU+kcJaTba*Hg%+kaH+t(g(e*9&z=JCmLRnXdI@AT%q*97p$H%+Eav z6Buw@I+OZyU4iy5wZB9Edi-^b+a2F<7gR;-?&Creq6-ndB?a$lzhyW06GFz(=U))* zW`o(RsLOqGoi9?jQA5zP)w`G%LSnGoG3F=m1ch`ZjZIL;MrF!NA^-*oe@@vx6!Q1g zbS^AbI=>LO*+G;t^Ny@r!zq>@$j~wovB{7&TDj)bDnIXz&MY@uTF$8CUDHcThN&1S zU47lKCILtn@}aAam=^tvNkl#4tuZ?3`vSqiHdB#>hyGQIGkYk?8jHEpF6URId2 z(WNq2uOs_RNg=pPXi0zh-Q1b`3NF`mO7}aMi*9vc0Ab3?VRfv##WpGe3d(J+An-k7 zm9VqB42RolAo{lzv1u~em5}bCt(q)dlg-OABNUN0KOU9HErfzdkIDNRaC1M79FuHF zcMXKu!Ain&UwCcvX9JehufFnicU5pY;^sZ+>!4%Mq*ewJtox`n2yiBJ!!H{9rK~=Y{2iyVZLz1&*|DO6!hXH%d z@2~m&eKUZp5|%hhsOh&`?JN@|>VkwbN_)*`C&`6{6+mK-wr7 zo!3QCq+i4_ZSnK~#Wm%jWl|ec9mVJ7@3}M&^h#Rc%0(gpq_l=k|6I9!iRm2+MdHKE zl;y)L7#AzuL)$1H5Q(e1Y~%<6O3-&Afh5c>9By#33nIn7Cp%Lq_*Cu()A}=A3!Zy? zD~4>F$xcSIQrNkq{{UG-fsZ)`1%3SPMs%^p1w@e5Du1e4-0M|^CZ4j5NN2h4R)53p zcMJPYVME@}UKq8H{+IxMX2FL=#gie;rUOS>fzp19@)r%mIh{y1Y+xl3nNw9&%u*OY zb{X%RRb6a$l37M4ToN91Bt$6_lpC5V;ZL_raRO=JV@{p28N7Cv151ZhiFob(AyNr{ zYW(6S#}n*GXE&3j zXd<{Bq@eiLPLq*ywWIw?rtRhFvjifBQlQrl55|kpr-ba8bO#ko_{k9V&Yx3xz680u zMN%iakh*WZnT1Uq4d!6DzH~(o0b5EkqRx8bATRFbriwlh=`1v##Tcvo^QIVSK0b4vj$ZJIhI5u{#7q77Ka{;=cpYrFE!-we z(ypj!>_&}kx50{S+qT`&Cpt7<0@ysdiaa zsJk+ZUQnGA%dl1U77sh;>dWpGLJJW$9WLlWD!KuVi^v8m` zj~W_N7W;s2#$nq-9pNJ1K9Xz~A@MogeCTL0&sBr5&HD zbwhX@2xLHm0YdygSAIcHQ2Qi^FNpb1zL^d=RawY}>|jeOMw7qaghOp)_XvV4nWL99 z1n+(;gRk0;I?VC$`DyasLFuddQ#D5n<<60HL%*;3)I!@J)p9xoXuEYe+9ujxal4G9 z9`JWW{3h$4#O&3@TnNlXH|B2frZLlh3j6VD&#C6~EPS>n)I&+fyP*#RVF(MUYtyel z&C0K2^38m8S`IAk>@DT}oD(pn7{J&~yclX^;S)B6#B%|_+s0Jv*GPuCx7*$s2x#mO&83`;fj)0mi))a-w$ZWJvezIN1^u>NAT>5 zl2sTRuVHr5)iLL-a+xTbrJrP44kv5vNLB4V% zPZ*K=i(kItCr82cRO|*Jr$Z)g?iIC8=>&rGSp`mLFEXvH ztXObIz4Lrl_7w(U)O5kffAC!xar+WgAD@SW>M5TYnlm_T<(J>EXsJ|GSQ$b!!YB3L1QRwP6tL&m9ikt85(`bmxh|KWh>Vgi;MgCf@ zbvRCJjtlJ&&1jFSuz#Hz#$PQ5NT;WBs*F3Z`-dMzx&iH}n?yRB?3=ef%qvf2pqMJ5 zh}hn8ebN=asm{J5majkhRV!UNcr26Q1KR>zkXf7yS@t#CXT?MH9bMBpD9eZWPV2>A z{f%^HEEMO4;^K;-tLZmo3vhAkv5nmn0I`*d)VXE%>65ZFO*q^f2MSWTu|Rf^{$-|I zz@8`&X@_A3Bb>)#Lu#M0h}n?;$(jCO!h)6C!lM1&`8J%BftKQTF;InU?~lY7veNdJ z4>ecra!sZyyCY2{LEm^`jL(4f9J&%x=`Xvx8`A}6FZ~l+(2V}f z3~?pCG3mq?473jr{P`~D8zuEpZsQU$ruG3IaM)Y-k+q^vPH<^vKWK8zKIBEe1`QLu;*geQ(-2Vn^4> z%hmrz^i5JweSlJfT;{HWyb*yF(qOYiFmFEEYqPOPFvnYqMRl|Db2ZgNppuqIkU>Fg zk+YKY@C}Op7@({kV84`kaMf!H%h+{1aSuquOS>ihK;Y ziO_?CS%In|F|M+&%|bfZvmf%x8A{D0ZgS`zFqp^2|d> zbrcNLuE{#J)(ov3aPc4CxFr_Vtv*>mNz$FVd<-7_tGEWt$;^W$H1*`1oAiAhL~8w+ z*oj&&PL@tCycOE-||0h~8BOognw z(d}O!=>=w8qQGIu&vZojd&MZg-o^>W{qN|fL5_%r>Hk5RnjS;vt<%! zz>L9qnsxcAQb-V#R?w2jbAv&nmD_vp!S^|-_soP*b%>NM2}ImPKLY^H6L=h`FFXu+ zj~%-s$?q6BKtV|uzgU5Ab7{iIN(?8(7`fpUGW`XmE7N>5X2z$;TYs9)^B9zL<2%-zcG?W^sp zrGbR9HH25+(g9SyrACVLNq(u=Mi(Qs zxlMITJ_UhZ#lRH+bvck@KYcg#OPLWUI5EPJ=Pk_Yx7=<4y8Y2k$- zC2Uf!TS6hV*d6@?FX));VI4Owbcu%$!l%ZckX72}pcsX33;gE5zrbRzh5~6v+`m98 zjA-{y3VyS-2mP&l&=piL7!*)wDuwqxl+`n8q5*3^29uRR`~M9lHLG3sBW`YOOO9af?|P<*4qni z)V4Uk4+4B{l(LX6O~t1~%>9X=*QFkS^auF(q+&!{xKP&BNoP{t5|wl2<4vHSMM`RUGBm zjUgqT4nSm4ZIj&uRer3hixfYs913{xl&O14NEY+f`L3{xcZ!)Qd^xp?jAUcBcQuN} zOU=HR%aD8&V6T1X(Fp_lK0#QZM8pi%gKbx%4e36cb zAX%iD45Y+Zcghe2b=wdHX3hC?*ra2lcN4#h7IE*Kg7(HA%I1#WAOA0RRY#Z32HnVR z5enZeZrhx-qH_TSmkFnd=i>Bzl!(w9cMX$)0U6CvcqIWL_GWSyoE@Y#ON5Lu9#s!d2z6imU&`DgU}N zFbA5LQ&;>u7JxQd(Pl(zk0b7W{VDED%HU2ph%HZCWc(CsvzwWKwPu6b97v>dD*rVc zMPp)piY!5gP+v=IH)Q!%vr=Kk=NmN7m!ju-ZJdGS1vbBvsXYW|s&6Sln@g@RGu)-g zJ`N)9Y<#l^v@9UKB0lX<+Q(gkfk2}-B|_UvCvA>UNLR2UBPnxe;_;sCa`r?hJ>~ea zZTx9t$sTOy(pkqSvVA36WP!O9ksRObfaS!E0v7elk}c9zP`YHT3Idijk@eMBAZQXY zla$bt(FElO{yl+8>bot>crCKz4UWFYn#~vu`e&QmmHPRXVm+yo7t;8RwNoOpEbh86Y2;)wq}QRwlkp3*m|hnU1{wcwLfc5pfT)o_XzsE58uj7mhByB{HomSV2UCi9r!<1 z_o=>ZECA(K<wW9EMpp@#{O~HGny6-ve~}+&wR!g0luTYitUkdMRYW=kAvKyDQw_z_Mq<$H`jy`Zxvkq2f7G)mYPlle_#pk~a ze5)Wj1`xmwNo4P)Ssb`ppy_QYDg<8;JtVgRT6kvg?>49Iw@^c$Q{}iwpu=w0r6e;W zo_w?l*k~kDi|70{r;eexK=qw)=Or^fALk?{b#9E|7>~wO9R8bBu+FU- zeJB@SRw}Yl1YXfgcktoAC=WNh&Ho?eA?@`EyN5L(+<7)T1ATohh3U*Z=gm1b4tnt_ zEE>#lD)R#6HNh%kN~rdWEF8C+s)L8VoiAL91WlF^6HCh*xL9j}|Eg{te&T+t+kywa zr*!aY-y|O<pWt%v&&5^wNY z?|P;J4fS|TUEg(Qbp|tvU$LqRd*q7GD$(;ORgxW*_9JG^wxza(S8ehW_yBUx0wSil zuHDcXJLg<~cPIv^8PSgXzS@Fq6|f1y03Z4CDRJ?Oi#Ma{n%sbgMf;o?i zQU)p_o>ek3T(_L{WUaEf!UxF4Q3!GgUkBwP22zX1&x3^mq8si7?ZP~{5GWc!*`a_B{xo7`eJ%oj@jpXko87V5>?IK7}dwlQ>9+x$TXOK z_eW!>NOgXDUJc#Fd=2hC} zL=FVYwVo!iaZ+l4$9jbUPG>O`>`jI-3<#Z~gjEog#3_Ff{QB6!<(B-eo3i!7`d~7PkQoBMXc@tPQ;wGU(cW28oGi{g1(~E& z3@KFsX}M`LL)G3{Meu0~Qj*jD+EVMUa(jHLMc}s(($Ks0NN$+$)gFnQw)k)MrN4y2 zT@1o@dN=<(a~)8)%lwhfE(<@H;3S1&eLdo$@Q#xj=j4U%!NycTo@w|ThK@ol^Aa2( z61sbOgT`JEy@6iUn@EvNvNe!Liui+X zFD&xx8>9l8PdR{V2ia9xWotqT~--IGkkG{ZN||#rT@=%GiXZOs6#rwa+ZEcVx!wSbr=!*r1al-0wIKvTs-Qj;&$S z!+W@vnpW- z@N;O7V;em9hC&zp^Af`h0r$g67Hh>GQlNz6Ly$N>Jx9u?A#@2u1^ti#Aw!^!vz7kI z4~15z@EsW{ne!&f>0t_?PlRV_J%L{>z?A2HrE9M_!~BOAz{+00}iIHJ;ARCw8*qcAX#I1k)l z8I4}?zP&va*Jkn5hKdiK(U;dx@Ac*v*8f808o~?;R4IGU4=^57s^2-}!J`@~Tw2;n~BN+d0Bf3!(Fs zr0PYrq+b{MyoB3K(sdzP|Db^krS>V$CAZ#m<)HJCo>O9!s%Nk37Shd9Z^dE`1I?1Nu zO1Erazgs$~6y1(GYP^PyUFD`@v-Ivni zSgK?T>gHQu=zHDjXl4-jO`H3(VmjKNXCSuWTwWP4_Q zWTVoY%qosKp!d0Rlh&BMWWw$D?{lWLnWRQan+@}J{s7_DaBF+MJjU$izCEeNnU;G< zYb)sjM)Bd_%Oty=d38W&wXtI{n=j#Eyw%nO9u0XR_Z8xchsFS$8?J1JdE4C^;{lEq z@UoALh8OPWa4%6aa);;U3_(V>B8v6KD7~m+G{14T4u3%d^c1s( znvc=A?nhJ1rnqz#mIW=Tye<5ZWsj6-k5meHy3Iq=J?Oq6Lot~H^i&FL3zC!0X@Q0% zZ_ws>Xa{e<9<}(nCTL%Mu5-pKHA8cP$n?x`Ir%f~$xb}R6J|REYrr6i3SC#37!h*N zHhz$oBe)G9a;*(h|wC$hFmJk9NVj56k@1F*a6Jcc8UFi z9{0y%@t=_EMB35Op)4u+74$*Ph5~x=2y}0TV+}5=Bl^Q=#S)6(v}eW#?*{V%3`j^w z0^IRfS*i|*m}cOaELNYhy1u?iiF4WPJW&4rIu`yefFwG{ZT(mA0@B*l8mBzTd}MZuOsLZ&BoN#T6{Oo9lS3}Z*Sm#CCGC6UXh(MH$S9ayfB!Z9y7qXgA<@WfEZGuW;+XcjcP44cq z*a2041mHpV7z0-uIR_eR^xy>9(@&ksK(jq;4%5~+``3ppfG978R#ZsWcCzk|q65#U z98x-0qM@))44vlQb~wJqC$fujL{r;w|DC9JcJ0Xeex)Yhl=CmoJ`9H2g1yWWWk=-E zP3J%bU9Oq$f%r1R$Ch`Oz3eBa+t4KZnv$RaCx;`=)O#}S;ueESxwB0P+QvF@0!?|W?Jg*C*zBNnFy@wjZbp^dPw$kneEk$@(Vr6-eE8W-Os@#L@t9vWf z-~jJk0YL+_GF+h8EnORX=qJ1`dnlA_LtIIU>lPw$!J_pFAeT^C86k5PFcWwc@On9x-nTGCuh zryUrygd8fw8%l9IF(DUZ1HkJh$a`$r|D2ZoikdkZ4EHyUg6}VwMbbp^Y&2c+ZAjom zdoK_th8!v*vc>@&QyE_C_<5opZA)mnEAk17^gYr2kT~^u)h^iBE>&6p->7cBWe1n! z2|YFysl7dSCL8U(xYK3Df2t*byfK+rk=X{at2dceM^%j@W_au_W6yFlrY(`noK@-u zlFrN!4=Z2;IN$bLSy%p&EN}|ipYGWK+s-*mN0OG^99wB1l{PYYXaov0VYOiZ47{{@YSv7|#tO za5NQ4lql#M!=E=;xmL-36KEu9Lv`dlv)O&+O((d6ZyKS$M6=%53q0WC2 zKg-UAu6WPO+5)w~h3lB+-{2+cm_ZWNA6-?mY0^&BkxD_7QH@A*A)Z4*fY;W8rRFQrZhy|D`uCfSXDtut z^Dq=S$@uP#b1xH&qJi5{sc2^$6Ui10`r1FD5%?u|rlb-1(5vwDSDh}Lj!Q_$g=b25 z%J7mG+#B#HTQ&}FM^b8vhZCx1KcIDuSu(N3(MKmsn_Tkx7nd#98-Z#Q)6N#sWvrlc ze(kI!GSz?!1jlFUR%*w%H_=(_4C!5>4mxuF9(NQ7Lb}6m!K8N$LhaBxVCBINiMbPB zDY`oE=Hz{xT<(P%iV@UCWUO!m5;%NgoE2mICZ(2Z!8IjT^C|Qb#5Fq5Qc3ya1xA8+ z_}^?-bB$~~#`RMc`on1(tIYVqUhiD(vQ0TX>APHmADBfPfrip4mrWUKvy`1v7VMWb zrN>G!lw}B8)KqRTGz-mOlCQHgYf~?KA|B`>1eNWVS3hn!i0>RXcr2jZfBTU3z>3UV z1pgQqH3D}rmZ^iqT@`1bmW+Zl+21l*i!yEL%-sq6)Ht zI?fDCS04)lv_^tByV;U@(Vd~R!WjHUR*Qk=f zUBn~r=fl+VY?8KO$~kJ2>@&|2&Jw04Lv51nEva@U;{JC|QP^+t7wKI58~ zVE%=8&GYhll>RT-y~XRVImCJB-+Mj`K#qq*#C+Osr=ZNM#tg-BkaBvXl$6%&(*+Mc zErLNWThGh=qcGAg$~dtqovEyMuU`lZ?Ep|IFv=hQ9_-pqrpNnDL-hA~JXgJjo=7;n z(?>o-DTms+iM=jsqI2_6(&9>?_w93svTy6%0b`T55yXZ#l@F!j94z%MIInIr(V7S7QIH&WR~Y#qP3+~)ipk3*ROwa^T0==;YE-~i5y z<2j@3zjq^-DEN7l?a5xx8fG3Pwir=uOjsGpn{QLk#US9$cFgFmc6)o?ZlRT?4>ULU zDB;Hb_7(X^R)f>!KLXfRtn7vkhJm?%SoJmlDw}z7P|CHQWMxeKZ(Ng`!S|nV$r<-A zTmqNGF)jxewv#b>j_nOV0e&+@BKxCYq=N77jS3Q3B-_5CtAFnvI*i2N4kRO7B&QK06_jkB z>l%fh>$I0Rryq^e1XY$=%bShbyOEF@HBprU6z`BT5E|UTq1=+kmt6@k>r{yfl+sYo z&HTff?OZ1Jti)hQ(PZgush6?>jI8v~J>W#RXj0akhkS9W3 zPBmz!nDG}_sqz;&;FU{y8_OBxPi6w@q#T<Wt$b)~Jov z(W(=iV2{d|gk`%s<8va0kS?n>=z!TZN8jZy%5*HPEXLFCgp!4BA!~dUrLU<}`eq@aWy2pHt{^WAH zQll=}Na-J1^KSfCG2xck;~O)wGXJsI?gL+5^ww)S2=*|Y+h<(#soC^kZg`#fsA{7l z+}xF>n@ZW^Xy-F7GWRsr;3}=Z?B61bV8gVF8%pY!hz!og`h%!KQ%t3%65lz)^Q*F^m+s+T4nW?0#nR8K=4FnMve_bIkSy3M?P28MxS`q3 z(|IDnSu6z^|0Do{RMqg3H;Q*{URIQsv^QaAix^>UcP zyE0v=JD4>pC7B#YuHo0wW{XHrl3Y;oXSu|hz7a&X3866n-hjN?_^sy2hLD}C8}Seo zUr87gljZ)Ah((6`V<|CN(J;fbG{I+e=d+E-Fukdz+e*20A07zUaV3$E5OFgY#fCNw z-|c9Y0cBFWGOC6wdI+2%FaGh1NZ@`@OduiIP-48U!&Wu1$3naKwtdYuA(4~j2UKbz z)sd@D13OcgB>_GbY}?aGZ9#GOW>AyOj|+pn`V`|UERz4QtPSb@=mwVuI3qIC7T-!V zX#}8Z6|Dt_{rr4UbmW0>*u4LJ_3K~5{>7y*>rlE!N>}lPA>_}8jtk=Sa=ATH0Se0WphWNOr)VN=j1oYFDYDBX-JbrPh|g+Rf*g# zN4z-m1u5jP+-Chb92fS&tjIEd>`dxApqHm^Pg9yaKd;cb z47TEiOyO!2C#SHuL-2lCtC8aW2MH#F-8U5$Byn@aMgCR|`9&T>ezKbT)fo>4+!x0K zOzq2MOx5mwni(G^Sq^2Y+4}71Nw=cHcZr`rEO@JIRK;tZ;AEN4tH$fmAd!St>>s@S zV#B?o1G~lKPtxt%zEXGo^+SCI5v~-%z%<;#_rjXZ+*nIP@Z|Cb$y#xz%g2WehqrL< z+#}iipVLgUXW2`4B3+GX&rP~y(6_%W z2`&MBv+g6!D;Ma%QN{mB{PYLj>H4%%j3~!{|DWG#Jt+)<;H92ri&>jzV4< zI-cgkiHeff!Y6l6JtYjrb0X6PS$%WPk(mJU6qwhvLh|y>wE~3Po17JPhcJrNp|y!aJQH|0J;Ig^#N}9BEKdz6~ELWE%6y<*6O4uqgy8a&)K8 zDOMtq&B;~>npoRsN3PxGhi(rRy-c0HSHb>vghBtifIB%W`geY*d{2y9*y#dobCMin zQn}+;yB7Ds$+3s)OO6cDX1nwjGYpR-4L%)QvQm#^WWoo1`IQ~0d*H%p=Wunx0yom(V z*o*7bo&eR#%$8CS4lh(Kar>sxlY0Whzp2?9c&23L_^@p4aCe^a}kBhiUiSQMcF0DRB{X#PHsUC82hNm|3DsJr_&5Ud-prH3rX z;>jo^n;%odXYXauDq;(e<0Vg~7=9^w_xI@p&57Sc8!?twrMT`6Ua5d;a&Vn?x!CD$ zL^;3*j*}-79=m)Rp0aom-nZ$UH1Yjuv6309Nx%*{V)1H&+1Y1zfT_hTI85lgz-61X zkYfSnBLKN2bh% z2OyJqgRo>ZM>tHew3_k7!|ymGNm#-jew&wP1p5-T_HkHDBL>rNxNWhGhr#wwAF3h4 zckhxPoXQ{kYbXwVeU!kYGW!-MlH^nor8ZBKx#Ng8u03IN3^jG7rNV)TwcS^JuxDCkK_+!?qEd->P9h`3@-(2}g z6k0ykofQ-c;p-sz$Bk&OKE9-ci}IW$r2}r*CrXWkQe^8DqP2r63Ba4fDs+dwl=UKI z-%UjzP^}yyYFgJs^_Gee?BDyawxGh~KfWNVF=+n@ z&3%c#uuWzTa~=g4D&3?iss6tf%y12GW{~r~gjel{XREekM;2RBHr|{FXSmGHD7l%C zz!>Ij>Oxz^Gwy~n(v2wyqzi+3@ctAwlAQKKf!Z<0gpV~peC0#A3aFEzxTHCv5KIpM3hG}jmo>ZT1JoHq}cHCsyd|xmnKTSRHI4!(14!rWbY;H#7T= z+6^p^l^^!eF`g6>%B@5L;Dru2ZjjU+jW2DNt$ z;8JG}izO|Ou!4-z{ZacKTTg}Iw5naE$m)sA{L43&&BE<_tH~X!#YDVSZgk8Ye@T$O zuieYd@GyyV^sCmEIei+g3b@FJ;V&@eJcV~mmkz3k>Xzg{y6(i5l?K+)*F<%%`1qey(L5-HA+cY_Kl0SC|2C!ag9RY zxC*{el5XKAIOd-3T-#I65J0a#ze5R&Gw%PrS0XIw@OmPx>a#y?Njb%J+!xuNBwH-) zi*bV~-PG*X+9pYa4qiHnU67^mV+PXg-1zBXH z%`|#nx{BhDbLongQ}WC)?`=$w)Se6_k2vG2cOPcuhG``k9%9H}W3Um)Ei1tMfdHjU$X4ZCEoE+^H6;zb zBa)brCOtwu@c-}vl$Qnblv{$6I}}`Bw^cW5XKH2^>FRaVmM+uLe-MGNamx66k2ocd zF~=7TFq4_FGZlQ38bCEG{`1!gY&R;*gxWo;$->2ir)s^;u}hzWTluUTA)DyrjAoDQ zKs!-iiKQ+^d^ko#pv*803?3vejIyn$P>lthx-{D{ zU3(L^^_(r&YIESZxy4sS#Vqs}BljmKR3q^bLnKWA3ZoIi zc00F68UA*Ur%II4o_y-S4mrS{4Y!#h`ZFlKpIM}!{sG^gK2xAU`@}!oq+^3LbQE<> zn)G0|Dc0odls(U3h`MWmn$Ag9A_-?WXZ z6@nAd)T^F&ptan)4mZhx=#@3>gSlW`NpYewmzi=`imR<&n!I^;6>d7e6yBcEY$+s8 zR=GE-UCbDj>Yg}X!2A5Nr2NWNp1mdTQegB&Q!G_sEswXGPd~&lzQ7#YNO1v?JzDfz zcGrA^5vReS`{*{+*hHldYPP(XUYR)wwLB^R;Kt0bvfIb>vg`sW#oxWptc|UzvDh}m z7e<90*T&KaP-S0HZDQ11t~t1yp<@BA5R8tDCShwq>G$?=JgN`zhP&A<)OMI-eifD? zD6vQK9YZ51Cp*!m+*sj-{={Vu{JIpUS};LEEk#u)xaUQg>-x|a{vi}g0AvlhvbQJ! zQ@U@vB^y19KN|<%Czs z)6r#f9|R%bAxRDB}oIdLpAF zHeFr{kLn9vEpw!tQu<$x=4QjZfSwe4Z2psC=DnhtPnVZ+T>Tv&5PTuY`Qn9tL&wf+ zPTbQ(J{I3{MU5R)_A!)f)L^35L(q5}?1N6HK9`3XeNa{gV_i>S4Jxw9wN|HqS;3aO zjz2?BE1ZQZYqW7&iSEi-H99+YqUa15)L788DMJLaay;-?N81@+Z}OPlhWFh@6Nm0b&@xXtb0tGhY3mb}Ltg zw3%V_(j@wd+e%Oavhgrv>r%7le2lHEh=Qw$-Nx3hQmX+6`_Ki>kYBV$-_7#}tIk3R z^L%QHJ8f1NuT5+?bCGD@3QS8gE_uu#LJ{!iFca^Pb9B8+^E&25&lPl#?m$snbNT;UkME(KoB2hM2@BC+cnUgOi2QvFMv)B)`!O;qn)w&I2 zATtt&Q`+mDO;4D9`ZG^8*w~Sy(Ice#;M0Uvzw|4bwD)1@;AF)dJHxS@AYLdUql^2` zku(Ton*0laBcqfvR*~jpxb3Yx@ZhzAqfnc?71Sd`1x>H4!_hXiAd|165~+j-2X`JbMlLvZN@<%nfSut zlG&0pvcAWVuS7ZPvo)|Y@l+eh7IIXx`yzDuu78`=UZYVx)l=Y z^6f-9nZ%|W7SzpA8-{I_ys}nLiN3IDnz0c%&@3@$d)&}nZS8MXQcr*}xpz%H@amfS zZ+j9PB;HTZ>TjOEKZ>BMX>@s&Khbt=^0wltHblVBV|D7^?WLx|CN`emu-gZ@F6!bw z`nBzr{J7oM`ZkuYIcrDY(`G1lZ63qJk&PrnZVD|zp(~aA@$6>3cwy_HY2ee6^sOU= zU9Lcj4n?ba|EF^Ctwht70AG_lTI*M282K>AM`nYcl3EVbY~?x1oBzCd3=$7pg&<&d zv0fk~z>2XaV&g$ilY-Bn8t&0{dAZ??$jAv^ssIh9;_$Ubfrj;H~ES|`MqTrX( zwGXXpEbDm$060cxdh^wjM3m(5on2gHlV@f4o$6WMtHRod=LG)kSPC|UT#zVAoXRl- zdQrYQkZviG4NzliSl1v31_O41ukw7$^7Bd4Q@ zqlzg!mHuwl$Zz#&9fe9FA0T{Q;g$ZzYOl*WV(K(vCBy{p51t^zN5jUfTOCU-`GvS3MT_g~yv%a+cE_@Dhj&89UV;zOcUg+doUG z{?l4g_-9LFtb|5l$E&HN4c!3E@vcXzJ6LvFh-fS#xca6`Df3FcSbn~PmCVPY{X1&C zKs#JWw^{h6oRi^XhWN4G)82uSZ`7elyb$Dk!t}0% zeeHd?wJklN7jrCU$5ML|#zYesD`6Y2Jre0Jh`%j`=`Z>tR}#eD(-Q~KM$7v5WO)j- zhkj4gGqSAk+^=6w&503>ZF}*W_}ce6jHvXI__*7;D@IK zvoqsTcL6MhGsWr9RTx0h&pq{Z`%VdprObjqq5<*_$a&!00*PJ535>9dT`L@fr5SsOf;i5)PpMP<0eq$Nju03mMV<#@)AGWvGBGq33O~0l z=Bg7{^2Wp;5fMhg79)o-Q%YcAEC zWKWI^bqyDOm4u6K{u%jy5G9kCUf+8{0%6Us*cfGci~cVx-xQ;b<%%S;-Fc1U>*ApT zzn%XdbSKqCbwqYRw*5IzE*K^5r=M_K(el*;&m1J+;%f+pTEDmnXeV*lFJ0fu0FmN1 z2!s7w`lwMuH2d+@Ky~>;)O2Dac=TPK0|`{7^1}t(#$V2uD1^%JA^5X5;#dViP4OmH z?P07@$v?6pP+(qt!NhL7>^=W@e_&cUu3vpLRcdqII0%k>b+2&qfH-(tVFqF9ufgHU5bc{ucpYc_TkVdb5XT9{_itaOW7BXI$*u61qpd1}Liu)0+f(U^t^Cdks9yH# z9Z9;FEC{Onxnp;XvbJRdnmz;Dr;#~EWV6OTd~C=c<1bWp1<#bm6if z8DtXd6pGm2h@yxAZ3bWE|KjW&!z=5ytX?22u>Dz%#Y5l-my*Cl zsX(cNfHnT4{_I7!P2E_&$91H$Co=y_rX#UDh@dEzlc= z1jadUBgx$09UIt3FLvB4>d}0Q7m*oCc&|Z}&FQ7Tew)dj0M=iFKdRlBu_m0`l$0c( zG0Rhr7cnr~gQRSU2shR$G7aGG#o?4vD+o!k3wg{94B|!PpJ%Mb6l^QGejtgTN&L=@ zqvwRFT8~1Zq-gh{XPiBmhi{>sZASt&EnWQDii24{C@$bxdGOa!Ozg)y#GmnGaWYc9 z_}!8eNT>P!qc-sA4*AC*g@LKi{W&aP>nB~xH3Kuwu~7B-r&rL&Vv%kGDjsc7?1~T) zo0^Ugp#`l&!>7PQ!7I9*yM)2E38Mh|R{{gh0K=FQJ8xO?03_wN!P$iF;#!2?Khtey zee|sSF>8Kbu+V;IA;y`TM%hr)d~}g9*9bYRrPo94XuHJ-4rm2KkB@I=V?zggiEO3@ z9_12b$K1;6v3j}ei6*aRUd}t1fbddE}IzBnC1{MDan`wxMKKSj=4iF z{pl|v+-3o)FM?WhTL+_e9baQH`&B)mlS?q_jrNLVN}wchj<>Qsr>g^vkleN$Q86Je zn~bAQb%=W9_b5o`Cv=C(KFi%f&vSSm-+ja_EFT#xINMv+)KQ-sW{Y(X(jsNcnUHg&XQ?&E92|6xSyif-tao zKN-&xpKZmxLkoq&Xyq?YPUW*}Ef}*J+Pq(5vJhQtDa;$%F*!A=eV%G}AZ3E;c{~?` zpxB^0eq{Ycj^e1zIJ=IU&*oTqHfE2;Wp~ewdlecTOS)@pK{79Fm-TeQ&&xa8XzI@Cc6%)9UlqJEKH}A9;K?FaQd_N zM`CQ9#y&(!6TcioIH|S|McIAy2!$J+JWZ%zo(!Q+^t*n_&lyG!l6;Rz4xXI6qt>c+ z5Qw#p!LbcZ^87h+$RKIk+nK*>IvOP1zwv~!UQ6zqpECG#%Se_aBgz`P5cWjPO)0hJ zmV;CPpzDhvX}0CEHWlJKo+y+0LL8Wa@Xn0L$CZ$gzdH_OMz^&N0qZydM`Z}XX0HVO zoL)d$;Q+vX$unMvpjW~gbG2$Tu6XN`Cn={FAnO%Lp2#76VCEHB$@j$;3kn%Z7PLPN zrneN+VL!v)*oPHY*L~P^HH{~?#?nd^t;OqhJVHn8+DM8GuE1{H06W|jhJ!;X3;EZ! zB>&5>MKiik?Q&8{A9;`LyI5FG+K9vQ((?Ye5kvU|O!EzP=zA#GbAK%z+)ib0>>_7a zZsbng_jtzfeH56BDz&g?Nxmo2Jpx>*SQBlrKnNQfbdi=(S&u|FG+&^Ehwsbm?Tm$H zbCPy_;J5Uo2tC6{ds946Ob5Lm6KZVaOQ+8{Fi4CW+l7F!Dk|Bt2fMSi!7iY|a0co4 zhLZ+=#0D2lbM1kclq&8-)1X_K^L(zuI9m>;BN>BDzDA0#xB;eeiWN!UI>cP>b9OB- zg*qqwb36F@T!ZM1GWT+(;PFPLS;6CK52@a&M7hTNEePYst|L;Kw_IlGNHEPu=L{Ia zC`>|W^qB-~=cC4xLn|3yx6i0;3D|}EM3{`>>L1k-si%0|^quIBl_u<_4udlDMKG%Bw8Zg*Q-FPwJyMEyosh}6JW52w%6keq^7*MNKtO2&YsJ=(eS| zYMkRekkm>W;(t!<%1cpuVJHgrMIVfK39^>Heu!e#KwFx0g(x;an>0D*vVxcA#QUuS zBT(OuxAmjH&iFG`^VY%@R4mglO-HqD}k85KNip(3n%Y$F!%o}RMXlFRU z`CI=!15njnsAsIUa`0A)fAJCIFVXnOiF!XEbx1Ys3*>DR_mq#%^X0uh^9etV6eAKh z_fM}ugM03nNDbG3{y1G=i?P%WE>j0311{bIjb8DR;%KhXrh^Akf^v+E1ot4-Os3y4 z_Yf21VMOxct2!jkh0WAEZ<^FuAJa%sR}&JHus#T zG}5b}JV4Dk32@-N7@xfVa{eisiz|*h_N$esQ95O4DFisy3`5*}-q(0rsN8trb+C-z z;uwf|rmeQDZQkB`(@AbS#ciWkrO}7wuk<68Vaco+%aj5I>G%V~q#NFkAvvGI8o07h zO08z951CFHqv8Y1q8qrvv1yFb2Yx)cUu6A>)MZl~Tc;pEpD^N*bjWs=242=A8S~!A zu$hAfk5Lh&0Mrd9{v$c9z;scH!uq$)vLXGcMz4_{-ZMUxibx?=>dPIY$&X0Emcoo@ zJt2$HVz0?ay-D0fM~o1oQm}nHN!@#xj3PGk*+#g%=bdb;&M7wawyf1KVN%6p2M78G zOzAf`MtXGEeOsAcjb}H6HMYifgWUwT%&XESO&TwpG);@y;hKIY?>}A86YT5745v@5 z4t%oN#3x1@F&%=)8k8@g?)Lcx0D0yh)m3bAkK7?0yA?(626~9k9QlNnBE>B+$fWiX z6JFusi&Drb2?mq?Unkg-zmf|Cs~~PZQ%s~{>nn~Pyr#Y4AtoC)C7}#mQJ$ze?sKDR zNeRs<(M;g4jrx75k*tBtC$%@GUWWXgN;m&A){dwT@$BBMr5NZ{4Cxf?6)iHXmqmTK~ z9@MzKh{o85G^_Z!=Vmxqs^N50b7-u+6>aE$rd4hlygx%kc6CLZErlX7Sl(8z;n;Kd zn;BKk#3;?Bhop&?X=nx=gg`%1PrO(QvSQ1@`D+_2hQ9&m7)m8cr%EB*PNoew>xcnL zw03&l-TP)+3#IqmqL-D)EwH0Zzed{OzFU!^LVQ2aJ|!TSQce-@adxaO_Z*~pKm@#N zC8cYGC?ZNyCcJn=cE8kswG7S}D88rpF}&}pJVnXcf(D->@W244(j5^n0^<_CpnCea z7Sg4-)&MWL_###!AL{;MN_=6CB?8AvQ%=_A9z)8{6vMK}51$FU+oY67nWZBfEr(%m zp^3Gb?R`3*hFbHbq}s5hV9`Sqtkcn9ne_s=dNC`E^c|4^Q*S-bX|DE=j*t?-z#Kym zJWJET+F8pCn?8A|REKDDNxsjydBE}tTCNqNN1E`ovgTlOl5Ux78Gxnqr~E)knpA5g z4hnD~G7zDi=3Xv=Es;&gh~t3RXaQ{APHTB(!0d}5iN{nTg%Y@SI#New-N-^UH&uY& zEETK}if0OLuI4rO2coboTn>K^aK={^o-nAnT)7yE*{rq5+4a33&&FzU?qCeIIW?-k zW*lmOs}Tii%kfsj$$ftu2_ZkRb3-Jkiu)SFjtFy&Aaj2XeNmL{w;Ky%1`SUuOf;lh z8fH4bK>Y-x?_>2rQYggb=nrINZ^UQP5fKi?6R9*+_%qBPccxM^PI79U^5d2k2xln!QzV7=XA|J5f$n0T3C2P?1@#`2McvhBl2vF+6>y@2${o zH%5s~X;mp8pQjf&MfI=j~Oi_f+g!yQAp%v?J`n}D9&O1gzt+l zxbT#&tAJc`ri-iUIZ3Lw;5l#OF&4A-9)&rRerFGX&c~Fs*|EDR?`=v(oqAs(FB0>D zA+s6*f9gcBMGze77{sAfmVJ}`gfvOkpp_e4>A@Ei6P^D@8wx}YT%SfA&)H02^EAhP zfFqYf%;{|I&xxDKp$ASZ%`_?l6UFDv^KHLeO^T~TE6ts_jXJV~MHO-b4apXAw8-C! zFo1@={eSX8Cyc=$s13T}K+5RU21M7&ljUoD&19+?fwFO&_78lV6KI3vetir)Px&?W zq&_?W^ZmegH6If}m}AWfe#&|7GP)EBlUr76H1p2e2f3=aR+A53`o`R1%d~; z1b_?r#3)d;d50i^UKKZW$Bg~hjK@gDv-{E&5A$?6h;QNKy}q;*RSctDSnV;)^|N~E zPSA^!448UxAXy(X+3ZBFQ6^pO2*%8WCoQtc*2{ghmN@2jzgP_llWtLVq4%I+47?>$ ztjzDf%=egT|4*sw8^khbg`>d2J@vb@5eH1*gHCo64$b@6(Yu}`{Ckpn{(nkPaYdN; zLfg9=(ik(tXRbsW1GV{b0i**3pcol%LrsP5DX|!jIB2!nn+`7DwJ?&4l;TB8xe_16 z7MuuYV)i(F;{0fBmS(?{{}gvi?_j$)vBSH_#&3CL+op-^GQGKBGshWpI{snj5250p zn8%B1pp-6I#sOc*i@Bqx7n-erB=?#*P%Ur=3~!ENA|gSU*w_*xB7?bBKt~BKq!70W zPmT51xkqi+gSj;(?OO~>3u%DMpu5ItL)?Q8v^Xcl@0w<&Q$UY;^u8e6@2ty)`KaUGHTzDoa2N=j1q zO8Ao!<8A>{u3gIilX^x;DPY1=wMd;zE*}2cugul!Z2rC@kwR>E@~~OHWeMPJOiB)A zL2{Fg)a*-u#pF&B;z0UAY(bUNcV+63d zL8Lhn-%@NLtW@A0e|$1(?RWlVEI!t^Pk!hIdA$&lYY&$5+Sb$I>}zP~+Z+^>f+kBU6TVY)KG z3T8bhodbT$?V^X|U_Xx!9+zVBXjOFGwGQVYgi}$M?#-1%HXHs8bqz7VaL*TXGFz(t zbQ^!5{<-15v;Y{V6A;X#v9LW>?+ZtybjL%33heZo#O(`iGoH&1ZfWZ(?zDRvN?};rKS>@d*XXg}hb(pwmakMnFV-0LsJH^sYpw2BY%eD&LX`?8 ztdE2ckd0ZA(8h18s$ox~eyT_-S>hjw>`2}OfHRW}(BEgi4n^j6kd$9IXqA`P*_?k-Vvo?%Q?_ObA!m^y zUV-^(3%!4*Ygw!V`sk3WTq7B_oRvMW-OhDU1Y&r&a3t-O>G*5sS?P1K`9F1M^U42R zcU~N5mQ1|7xFPpEIgtTbsPA#v+x^6|nBtuL{x5Zs-ZLv;BpqjW+3$Cc-Xg09;mUYJ zPO9mDE02gbgJQ>FKDs&L9Dijh`)#edLR>gCq2Ai|v}wez-Xy;~IcmZhwgBtb_SUt( z+()uo?T^U#z2D+}HHBpdUaba59yr1)P{3N0`=!8=60`fV&Ml5Qg0vqV3>@B8v@-R= z_?;&}pVi9D4Xwkv(RVh}w6dQiORb0Flm{1KMJc|S{F%PntN%}_&`O4?%6UdN=-GEi zmHBY33YKGrUqDDj_GL}2@#Oqmzo&Nut@0$%tg5Dg|K!v+a;?sK5IVu>UIjfybf#3N zBI@6QE(Qvnu<$L31V(0xwN|dtH0V!zbVD%682ZxRqGS4phBQsspX!B7HG-rWay~;$ zWpAk!crHc~{$?&#%7T6~cir}ynC)Tf`P^;CBc#f60af{b#Z28E0w z^e@6bKJ{OO{r45b;KH>tSHVBfWc@F_P4NGbsh9D|$ug;JzyZ6y_r@pnG1TYL&E;2K zN9O_IO{Yd(ws7)fk7DmPU-^cn@2-~{Qo?rA9Y+jXsx>K`K`FWMl3}KaP<^38rW?3G zZ@J{L>h3unxBkAnGNX4ER<`@{rrp*iAv&<1g57g>R$`AaNNzH+uNTgL&#gfTovT8o zQbeJuYC~O}l>AABB1t^zPZ8y7B*qgGFu@GcP{ZSh%p6N&mp@ePiWBoJU~nF{;4!`U zZJ3Tfn!*{#Zf|t$b_SU#D<}!QbIIv2p!nz*@?HY=FV~)uPoUPJc+r<)v}$YD;U?R;CtHp{M*) z(RO4uSy2B!B>yU#6OCA3H5HrK-%=6qDuJXBaC)YGNO%nvN8o3@@#7-dN>C0~alPCf zGUZZSEe;%xbSx(XU1&eOliz`o&|B`(Q6-=O1`$-51JCyTSpHPzQ|)zF1Buc*fop}q z(yc!p3zDf;qrC`i{{M0Mu|6zcds-pVTfo0|JTsDfyy8Wp?KC0VhiRTH)bRcU4?Q?s z>5`%q?*MXokv>*vVfwoUk`4V zbEj9gYX&}+#~y6v->SJTgG65Bt?bm9QqoR(0FiXF%v;K zEq#;=uO#ZVdb^ot(AhtL1!rNdw^YXOUpiqw+L179fZnfro}TceWn9nbSt{LcRJI-oytwP*-5BJb+5u7XSZ?bM-Lg++&m%2%qh=1E z-3z^s=xbC$&VM$?=TVbW9`9(wm!ai(oXn&=uK?fso7|&Z{Q9BfR#HLEx1_%#W$I zL9UT;ZLjSHOUNL$Op)fPzal1+#gK7Y=Ipew*!zc5U?`jN4^Fnenpreb(c-P>$`_MQ zF>dDl-9*PA^6p9S;nCv9NJf9&Hq_KE4u4O9z0a^ysx$Z^1o=Eb>d<_NKY{NO9+ z@|@8FISTls%CSw^+qb#ENa89tEe8D&4h7E+BhtINie1u7zQUXfyYTp~V>T_1UMyhV>TT!a4o=`>EQD4af zQZds#S_*T;FHtjO+bw0=TK6z5j2=^|@f4x^MJX2!Zip2~Q?8=+U81p*)TmeopPEwM z{YquE=w=}8idz|-ESJhn}89uP{`)8hGj$+cz(_Ry(XQB!`p5Ouf;VK z*HhRNSn{nsrf$jcev}vBGEDp$ps5sMN z^jChGJoqB+#oO&qNpT;qcD)>=3}rWiS_7L^fP_+=1YX*J&n&TIU`1bGnHJ$01K{ixRo|+d5E+=gW)7lh_G%6kG7VJ$6u`@oe2xJCnPP zD!|f2W4qP(kn4%47=2In8CvaIEh~IK-+1zm`>UtdyRFXz(#ASU?Jz%M3uT7}wx8eL zaXEv7E>&zQq}P^U051TfmWT8oXUZ8erSnWHbb;3i;P=P)(>mKKP?-w}dhu$Bna1xT zcTZq|@ppeX$BwR>hp#0|xLbq5zDqaGL`y32$4$|-Da_c)Gak=!#Ag&K64?9pPr6>;vVpRjEYoB%jNqB_GmDHM{;}l z+GYW(pCBCN`38#ecAmLtu$~+o>b0MU5^GZU-ZiVLE+QAI-ru>TJ;30m%e3e2)mtXW zOLsBj^_Z?Ynl#~cAg7hgXwIuUtK33w&XP8CgUaAM{Bm1-5T?hJJs*UJv9Jn#llAaK zP2?996)s_Rku*_O^s-b5Ie`9zW;~N33n&(UXKZ1pzq&}xjD5Q{g1`v@BI$afu#2wt zohELXSnq9-M;M32Zv&H-p=6$$IQJIfw67Zb@J{flLGOFiu*-P-2WS(Q6NlC!EFeeT zR}+)cLoT|^V39-&Hb)i|Pj1_+_v#dhPO9T1PsETzwMybpJkVF}jp;JB3A8)8fR09@yLzF?yBBiK;2BpKcYs-vHuaj!hQ>ARflTKLO#b{L<5O1KGNgPvdoN)tFeyHwi;4v(ofg z9B^*mfs1@+2dY|Mp@JHvGUVdITqxl#a{|sQfedF9A0Sh@L@Z?iJMcwE4(g-*jNA|+ zgr9JDj%jPSNnn<593!HPfbXo^9>XViZ7j z5?c4Fv6X4j-MTz1$UOphn^s9;MrR7oLtNbR``t;`K9rmoyN=TyY%=@qORAMb1mOq(bbevQ*rzU)F&O~WR9V>% zZa#p;tsucvB*cG?0G`H3qD62vdhsgv5!k9K0RgKZkZ2|#89_QT^ilA_%|6>3Y7l2P z4%fVPJ5pK9lR=|Bru(3bqw?sF_bJ!-+iX23@}x4x{~K#tMS-!_ByD6`MK$Zk78eRYwf*$nsus`QIKOd*Ac>PEiFdh*8T)CmaLUF*`StOj3&ORVx!G~Yer>Cv{A zuF8mRaa`35OIR(Is`q4Bfd*8-^SeFj$JAO?nP}*D$oD6E6nt8U)fk}vI&5$!OAyjHV^p+4$z+LL~C1or!`j^}d>z73CTrWvjfKuwomP2}_teHwIlT{hg(zBt0y9{6OIE~wNQ*=AJb>`@f`;Rm(BZdd8P1r-DdJPi zTVa);l295_K8G5{POE(*VOXL+MR{^!e*-z z8sz&EQ+InMc@?R>h2kGuk49knF!{Le{IqEmBt25n9VjZC37t8% z5^vp33#Qblw?21-zE_@8zI#xn8V|5JI#cIP9c^Ekwr_Nqd9l%eR+U0$Ek=k@Sg*Pj z#hy}~@g@HQ5ycp!oHrh#Zs)oe#EA8@Cpb>{wQtxZgWt0(>D+iM4W66brWrL{xuP)P zBb~PFs$1>-SS`TX>^SLVTL9Lx@athdbz|ktSyb!og`7-%>k7PtUb-pRiir0BEgWd{qNwceA zl|Ghmm%Wr8-qpHHw_JwfG=Q;kzcE$%=G=Ea52i1dp2b@YMNu|7roY1yfx9xWCttML zKAiNg@gu!E;!sdfvcA5)z!%q9OT=wdYPDJ&h1*=KzS!dZ@x8|8=5=YBc&> z`EkQ#U+CQXFIcL@$aEohpKbkUK5nKLiA!?j0d1to%J3Mf#1$s{r=|o{c$5A$9G3=X zJ|Yv|@i0BNh6s@N3plyDP;OVjbHF^<55rynHtY%0A~Rxh;mWb`hwDE?ka_s5cS%m= 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 z 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

M_lYe#)=zOJSBNUipzg<< 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 Ty={Oq&q}0*e%q`F??R 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%0A6=$%XHsb2; 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: Once the driver is installed, you may start the ioc by entering the IOC folder and running 'sudo ./startEPICS.sh'. Sudo access is important because access to UVC devices is limited to users with root permissions. You may then integrate ADUVC into your area detector screen setup. Below is an image of the ADUVC base control screen. It extends the standard ADBase screen with UVC controls for various camera functionality, - such as brightness, exposure, backlight compenstation, saturation, etc. Currently the driver only supports 8-bit RGB images (most UVC cameras - only allow for this anyway), but support for more formats is planned in R1-1. + such as brightness, exposure, backlight compenstation, saturation, etc. The driver supports a variety of UVC formats, though the two that are used + the most often are MJPEG and Uncompressed. Because acquisition modes are locked down in most UVC cameras, as of R1-2 there has been added a section + to the screen that allows for selecting from up to the 7 most useful acquisition modes supported by the camera. If the camera has fewer than 7 modes, + the remaining ones will show as Unused.

ADUVC base screen

The ADUVC Base screen. Based on the ADBase screen with added controls specific to ADUVC.

@@ -60,7 +62,7 @@

Release Notes:

Release Notes

-

R1-2 (???-June-2019)

+

R1-2 (11-June-2019)