Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
133 changes: 81 additions & 52 deletions ADApp/op/adl/NDPluginBaseFull.adl

Large diffs are not rendered by default.

135 changes: 85 additions & 50 deletions ADApp/op/bob/autoconvert/NDPluginBaseFull.bob

Large diffs are not rendered by default.

150 changes: 97 additions & 53 deletions ADApp/op/edl/autoconvert/NDPluginBaseFull.edl

Large diffs are not rendered by default.

191 changes: 141 additions & 50 deletions ADApp/op/opi/autoconvert/NDPluginBaseFull.opi

Large diffs are not rendered by default.

187 changes: 137 additions & 50 deletions ADApp/op/ui/autoconvert/NDPluginBaseFull.ui

Large diffs are not rendered by default.

9 changes: 5 additions & 4 deletions ADApp/pluginSrc/NDFileHDF5.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2384,12 +2384,13 @@ NDFileHDF5::NDFileHDF5(const char *portName, int queueSize, int blockingCallback
}

/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileHDF5");

unsigned majnum=0, minnum=0, relnum=0;
H5get_libversion( &majnum, &minnum, &relnum );
char* plugin_type = (char*)calloc(40, sizeof(char));
epicsSnprintf(plugin_type, 40, "NDFileHDF5 ver%d.%d.%d", majnum, minnum, relnum);
//printf("plugin type and version: %s\n", plugin_type );
setStringParam(NDPluginDriverPluginType, plugin_type);
char sdkVersion[40];
epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%u.%u.%u", majnum, minnum, relnum);
setStringParam(ADSDKVersion, sdkVersion);
this->supportsMultipleArrays = 1;
this->pAttributeId = NULL;
this->pFileAttributes = new NDAttributeList;
Expand Down
8 changes: 8 additions & 0 deletions ADApp/pluginSrc/NDFileJPEG.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -323,6 +323,14 @@ NDFileJPEG::NDFileJPEG(const char *portName, int queueSize, int blockingCallback

/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileJPEG");

char sdkVersion[40];
#ifdef JPEG_LIB_VERSION_MAJOR
epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%d.%d", JPEG_LIB_VERSION_MAJOR, JPEG_LIB_VERSION_MINOR);
#else
epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%d.%d", JPEG_LIB_VERSION / 10, JPEG_LIB_VERSION % 10);
#endif
setStringParam(ADSDKVersion, sdkVersion);
this->supportsMultipleArrays = 0;
setIntegerParam(NDFileJPEGQuality, 50);
}
Expand Down
1 change: 1 addition & 0 deletions ADApp/pluginSrc/NDFileMagick.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -206,6 +206,7 @@ NDFileMagick::NDFileMagick(const char *portName, int queueSize, int blockingCall

/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileMagick");
setStringParam(ADSDKVersion, MagickLibVersionText);
this->supportsMultipleArrays = 0;

createParam(NDFileMagickQualityString, asynParamInt32, &NDFileMagickQuality);
Expand Down
5 changes: 5 additions & 0 deletions ADApp/pluginSrc/NDFileNetCDF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <string>
#include <netcdf.h>

#include <iocsh.h>
Expand Down Expand Up @@ -532,6 +533,10 @@ NDFileNetCDF::NDFileNetCDF(const char *portName, int queueSize, int blockingCall

/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileNetCDF");

// nc_inq_libvers() returns e.g. "4.3.3.1 of Jan 1 2020 00:00:00 $"
std::string ncVersion(nc_inq_libvers());
setStringParam(ADSDKVersion, ncVersion.substr(0, ncVersion.find(' ')).c_str());
this->supportsMultipleArrays = 1;
this->pAttributeId = NULL;
this->ncId = 0;
Expand Down
1 change: 1 addition & 0 deletions ADApp/pluginSrc/NDFileNexus.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -884,6 +884,7 @@ NDFileNexus::NDFileNexus(const char *portName, int queueSize, int blockingCallba

/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileNexus");
setStringParam(ADSDKVersion, NXgetversion());
this->supportsMultipleArrays = 1;
}

Expand Down
7 changes: 7 additions & 0 deletions ADApp/pluginSrc/NDFileTIFF.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <string>

#include <iocsh.h>

Expand Down Expand Up @@ -619,6 +620,12 @@ NDFileTIFF::NDFileTIFF(const char *portName, int queueSize, int blockingCallback

/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDFileTIFF");

// TIFFGetVersion() returns e.g. "LIBTIFF, Version 4.0.6\nCopyright ..."
std::string tiffVersion(TIFFGetVersion());
size_t start = tiffVersion.find("Version ");
start = (start == std::string::npos) ? 0 : start + strlen("Version ");
setStringParam(ADSDKVersion, tiffVersion.substr(start, tiffVersion.find('\n', start) - start).c_str());
this->supportsMultipleArrays = 0;

this->pAttributeId = NULL;
Expand Down
6 changes: 6 additions & 0 deletions ADApp/pluginSrc/NDPluginPva.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
#include <pv/pvDatabase.h>
#include <pv/nt.h>
#include <pv/channelProviderLocal.h>
#include <pv/pvaVersion.h>

#include <iocsh.h>

Expand Down Expand Up @@ -165,6 +166,11 @@ NDPluginPva::NDPluginPva(const char *portName, int queueSize,
/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDPluginPva");

char sdkVersion[40];
epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%d.%d.%d",
EPICS_PVA_MAJOR_VERSION, EPICS_PVA_MINOR_VERSION, EPICS_PVA_MAINTENANCE_VERSION);
setStringParam(ADSDKVersion, sdkVersion);

/* Set PvName */
setStringParam(NDPluginPvaPvName, pvName);

Expand Down
7 changes: 7 additions & 0 deletions ADApp/pluginSrc/NDPluginPvxs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include <pvxs/sharedpv.h>
#include <pvxs/nt.h>
#include <pvxs/iochooks.h>
#include <pvxs/version.h>

#include <iocsh.h>

Expand Down Expand Up @@ -138,6 +139,12 @@ NDPluginPvxs::NDPluginPvxs(const char *portName, int queueSize,
/* Set the plugin type string */
setStringParam(NDPluginDriverPluginType, "NDPluginPvxs");

unsigned long pvxsVersion = pvxs::version_int();
char sdkVersion[40];
epicsSnprintf(sdkVersion, sizeof(sdkVersion), "%lu.%lu.%lu",
(pvxsVersion >> 24) & 0xff, (pvxsVersion >> 16) & 0xff, (pvxsVersion >> 8) & 0xff);
setStringParam(ADSDKVersion, sdkVersion);

/* Set PvName */
setStringParam(NDPluginPvxsPvName, pvName);

Expand Down
6 changes: 6 additions & 0 deletions RELEASE.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,12 @@ files respectively, in the configure/ directory of the appropriate release of th

### NDFileHDF
* Added support for direct chunk write for NDArrays compressed with the lz4hd5 codec.

### Plugin SDK versions
* Plugins that use third-party libraries (NDFileHDF5, NDFileJPEG, NDFileMagick, NDFileNetCDF,
NDFileNexus, NDFileTIFF, NDPluginPva, NDPluginPvxs) now report the library version in SDKVersion_RBV.
* NDFileHDF5 no longer includes the HDF5 library version in PluginType_RBV.
* Added SDKVersion_RBV to the NDPluginBaseFull screen.

### Database template files
* Fixed record names in NDROIStat.template to avoid record name duplication.
Expand Down
Loading