diff --git a/andorApp/src/shamrock.cpp b/andorApp/src/shamrock.cpp
index 60748ce..1651dec 100644
--- a/andorApp/src/shamrock.cpp
+++ b/andorApp/src/shamrock.cpp
@@ -20,6 +20,7 @@
#include
+#include "atmcdLXd.h"
#include
#include
@@ -125,7 +126,7 @@ extern "C" int shamrockConfig(const char *portName, int shamrockId, const char *
* \param[in] stackSize The size of the stack for the EPICS port thread. 0=use asyn default.
*/
shamrock::shamrock(const char *portName, int shamrockID, const char *iniPath, int priority, int stackSize)
- : asynPortDriver(portName, MAX_ADDR, NUM_SR_PARAMS,
+ : asynPortDriver(portName, MAX_ADDR,
asynInt32Mask | asynFloat64Mask | asynFloat32ArrayMask | asynDrvUserMask,
asynInt32Mask | asynFloat64Mask | asynFloat32ArrayMask,
ASYN_CANBLOCK | ASYN_MULTIDEVICE, 1, priority, stackSize),
@@ -140,6 +141,8 @@ shamrock::shamrock(const char *portName, int shamrockID, const char *iniPath, in
float pixelWidth;
int i;
int numFlipperStatus;
+ int width, height;
+ float xSize, ySize;
createParam(SRWavelengthString, asynParamFloat64, &SRWavelength_);
createParam(SRMinWavelengthString, asynParamFloat64, &SRMinWavelength_);
@@ -166,6 +169,32 @@ shamrock::shamrock(const char *portName, int shamrockID, const char *iniPath, in
driverName, functionName, numDevices);
return;
}
+
+ //Get Detector dimensions
+ error = GetDetector(&width, &height);
+ if (error != DRV_SUCCESS) {
+ asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,
+ "%s:%s: GetDetector() status = %d\n",
+ driverName, functionName, error);
+ return;
+ }
+
+ //Sets the number of pixels for calibration purposes
+ error = ShamrockSetNumberPixels(shamrockId_, width);
+ status = checkError(error, functionName, "ShamrockSetNumberPixels");
+
+ //Get Detector pixel size
+ error = GetPixelSize(&xSize, &ySize);
+ if (error != DRV_SUCCESS) {
+ asynPrint(pasynUserSelf, ASYN_TRACE_ERROR,
+ "%s:%s: GetPixelSize() status = %d\n",
+ driverName, functionName, error);
+ return;
+ }
+
+ //Set the pixel width in microns for calibration purposes.
+ error = ShamrockSetPixelWidth(shamrockId_, xSize);
+ status = checkError(error, functionName, "ShamrockSetPixelWidth");
// Determine the number of pixels on the attached CCD and the pixel size
error = ShamrockGetNumberPixels(shamrockId_, &numPixels_);
diff --git a/andorSupport/ShamrockCIF.h b/andorSupport/ShamrockCIF.h
old mode 100755
new mode 100644
index 3078133..70b9858
--- a/andorSupport/ShamrockCIF.h
+++ b/andorSupport/ShamrockCIF.h
@@ -1,4 +1,6 @@
-/* #pragma hdrstop */
+#ifndef __linux__
+#pragma hdrstop
+#endif
#define SHAMROCK_COMMUNICATION_ERROR 20201
#define SHAMROCK_SUCCESS 20202
@@ -10,8 +12,8 @@
#define SHAMROCK_NOT_INITIALIZED 20275
#define SHAMROCK_NOT_AVAILABLE 20292
-#define SHAMROCK_ACCESSORYMIN 1
-#define SHAMROCK_ACCESSORYMAX 2
+#define SHAMROCK_ACCESSORYMIN 0
+#define SHAMROCK_ACCESSORYMAX 1
#define SHAMROCK_FILTERMIN 1
#define SHAMROCK_FILTERMAX 6
#define SHAMROCK_TURRETMIN 1
@@ -66,6 +68,7 @@ unsigned int WINAPI ShamrockGetNumberDevices(int *nodevices);
unsigned int WINAPI ShamrockGetFunctionReturnDescription(int error,char *description, int MaxDescStrLen);
//sdkeeprom functions
unsigned int WINAPI ShamrockGetSerialNumber(int device,char *serial);
+unsigned int WINAPI ShamrockEepromSetOpticalParams(int device, float FocalLength, float AngularDeviation, float FocalTilt);
unsigned int WINAPI ShamrockEepromGetOpticalParams(int device,float *FocalLength,float *AngularDeviation,float *FocalTilt);
//sdkgrating functions
unsigned int WINAPI ShamrockSetGrating(int device,int grating);
@@ -101,6 +104,10 @@ unsigned int WINAPI ShamrockAutoSlitIsPresent(int device, int index, int *presen
unsigned int WINAPI ShamrockSetAutoSlitCoefficients(int device, int index, int x1, int y1, int x2, int y2);
unsigned int WINAPI ShamrockGetAutoSlitCoefficients(int device, int index, int &x1, int &y1, int &x2, int &y2);
+// new new Slit functions.
+unsigned int WINAPI ShamrockSetSlitZeroPosition(int device, int index, int offset);
+unsigned int WINAPI ShamrockGetSlitZeroPosition(int device, int index, int *offset);
+
///// Deprecated Slit Functions
// Deprecated Input Slit Functions
unsigned int WINAPI ShamrockSetSlit(int device,float width);
@@ -138,6 +145,9 @@ unsigned int WINAPI ShamrockGetFlipperMirror(int device, int flipper, int * port
unsigned int WINAPI ShamrockFlipperMirrorReset(int device, int flipper);
unsigned int WINAPI ShamrockFlipperMirrorIsPresent(int device, int flipper, int *present);
unsigned int WINAPI ShamrockGetCCDLimits(int device, int port, float *Low, float *High);
+unsigned int WINAPI ShamrockSetFlipperMirrorPosition(int device, int flipper, int position);
+unsigned int WINAPI ShamrockGetFlipperMirrorPosition(int device, int flipper, int *position);
+unsigned int WINAPI ShamrockGetFlipperMirrorMaxPosition(int device, int flipper, int *max);
// Deprecated
unsigned int WINAPI ShamrockSetPort(int device,int port);
@@ -164,6 +174,12 @@ unsigned int WINAPI ShamrockGetPixelWidth(int device, float* Width);
unsigned int WINAPI ShamrockGetNumberPixels(int device, int* NumberPixels);
unsigned int WINAPI ShamrockGetCalibration(int device, float* CalibrationValues, int NumberPixels);
unsigned int WINAPI ShamrockGetPixelCalibrationCoefficients(int device, float* A, float* B, float* C, float* D);
+
+//SDK iris functions
+unsigned int WINAPI ShamrockIrisIsPresent(int device, int iris, int *present);
+unsigned int WINAPI ShamrockSetIris(int device, int iris, int value);
+unsigned int WINAPI ShamrockGetIris(int device, int iris, int *value);
+
#ifdef __cplusplus
}
#endif
diff --git a/andorSupport/atmcdLXd.h b/andorSupport/atmcdLXd.h
index b34349b..e5a89b8 100644
--- a/andorSupport/atmcdLXd.h
+++ b/andorSupport/atmcdLXd.h
@@ -115,6 +115,7 @@ typedef struct ANDORCAPS
at_u32 ulPCICard;
at_u32 ulEMGainCapability;
at_u32 ulFTReadModes;
+ at_u32 ulFeatures2;
} AndorCapabilities;
@@ -165,6 +166,7 @@ unsigned int GetAvailableCameras(at_32 * totalCameras);
unsigned int GetBackground(at_32 * arr, at_u32 size);
unsigned int GetBaselineClamp(int * state);
unsigned int GetBitDepth(int channel, int * depth);
+unsigned int GetBitsPerPixel(int readout_index, int index, int * value);
unsigned int GetCameraEventStatus(at_u32 * camStatus);
unsigned int GetCameraHandle(at_32 cameraIndex, at_32 * cameraHandle);
unsigned int GetCameraInformation(int index, at_32 * information);
@@ -209,6 +211,7 @@ unsigned int GetDICameraInfo(void * info);
unsigned int GetEMAdvanced(int * state);
unsigned int GetEMCCDGain(int * gain);
unsigned int GetEMGainRange(int * low, int * high);
+unsigned int GetESDEventStatus(at_u32 * camStatus);
unsigned int GetExternalTriggerTermination(at_u32 * puiTermination);
unsigned int GetFastestRecommendedVSSpeed(int * index, float * speed);
unsigned int GetFIFOUsage(int * FIFOusage);
@@ -275,6 +278,7 @@ unsigned int GetPhysicalDMAAddress(at_u32 * Address1, at_u32 * Address2);
unsigned int GetPixelSize(float * xSize, float * ySize);
unsigned int GetPreAmpGain(int index, float * gain);
unsigned int GetPreAmpGainText(int index, char * name, int length);
+unsigned int GetCurrentPreAmpGain(int * index, char * name, int length);
unsigned int GetDualExposureTimes(float * exposure1, float * exposure2);
unsigned int GetQE(char * sensor, float wavelength, unsigned int mode, float * QE);
unsigned int GetReadOutTime(float * ReadOutTime);
@@ -329,6 +333,7 @@ unsigned int Merge(const at_32 * arr, at_32 nOrder, at_32 nPoint, at_32 nPixel,
unsigned int OutAuxPort(int port, int state);
unsigned int PrepareAcquisition();
unsigned int SaveAsBmp(const char * path, const char * palette, at_32 ymin, at_32 ymax);
+unsigned int SaveAsCalibratedSif(char * path, int x_data_type, int x_unit, float * x_cal, float rayleighWavelength);
unsigned int SaveAsCommentedSif(char * path, char * comment);
unsigned int SaveAsEDF(char * szPath, int iMode);
unsigned int SaveAsFITS(char * szFileTitle, int typ);
@@ -346,12 +351,14 @@ unsigned int SetAccumulationCycleTime(float time);
unsigned int SetAcquisitionMode(int mode);
unsigned int SetSensorPortMode(int mode);
unsigned int SelectSensorPort(int port);
+unsigned int SelectDualSensorPort(int port);
unsigned int SetAcquisitionType(int typ);
unsigned int SetADChannel(int channel);
unsigned int SetAdvancedTriggerModeState(int iState);
unsigned int SetBackground(at_32 * arr, at_u32 size);
unsigned int SetBaselineClamp(int state);
unsigned int SetBaselineOffset(int offset);
+unsigned int SetBitsPerPixel(int state);
unsigned int SetCameraLinkMode(int mode);
unsigned int SetCameraStatusEnable(unsigned long Enable);
unsigned int SetChargeShifting(unsigned int NumberRows, unsigned int NumberRepeats);
@@ -400,6 +407,7 @@ unsigned int SetDDGVariableGateStep(int mode, double p1, double p2);
unsigned int SetDelayGenerator(int board, short address, int typ);
unsigned int SetDMAParameters(int MaxImagesPerDMA, float SecondsPerDMA);
// unsigned int SetDriverEvent(HANDLE driverEvent);
+// unsigned int SetESDEvent(HANDLE esdEvent);
unsigned int SetEMAdvanced(int state);
unsigned int SetEMCCDGain(int gain);
unsigned int SetEMClockCompensation(int EMClockCompensationFlag);
@@ -410,8 +418,8 @@ unsigned int SetFanMode(int mode);
unsigned int SetFastExtTrigger(int mode);
unsigned int SetFastKinetics(int exposedRows, int seriesLength, float time, int mode, int hbin, int vbin);
unsigned int SetFastKineticsEx(int exposedRows, int seriesLength, float time, int mode, int hbin, int vbin, int offset);
-unsigned int SetSuperKinetics(int exposedRows, int seriesLength, float time, int mode, int hbin, int vbin, int offset);
-unsigned int SetTimeScan(int rows, int tracks, int mode);
+unsigned int SetFastKineticsStorageMode(int mode);
+unsigned int SetFastKineticsTimeScanMode(int rows, int tracks, int mode);
unsigned int SetFilterMode(int mode);
unsigned int SetFilterParameters(int width, float sensitivity, int range, float accept, int smooth, int noise);
unsigned int SetFKVShiftSpeed(int index);
@@ -431,6 +439,7 @@ unsigned int SetImageFlip(int iHFlip, int iVFlip);
unsigned int SetImageRotate(int iRotate);
unsigned int SetIsolatedCropMode(int active, int cropheight, int cropwidth, int vbin, int hbin);
unsigned int SetIsolatedCropModeEx(int active, int cropheight, int cropwidth, int vbin, int hbin, int cropleft, int cropbottom);
+unsigned int SetIsolatedCropModeType(int type);
unsigned int SetKineticCycleTime(float time);
unsigned int SetMCPGain(int gain);
unsigned int SetMCPGating(int gating);
@@ -498,6 +507,7 @@ unsigned int WaitForAcquisitionTimeOut(int iTimeOutMs);
unsigned int WhiteBalance(unsigned short * wRed, unsigned short * wGreen, unsigned short * wBlue, float * fRelR, float * fRelB, WhiteBalanceInfo * info);
unsigned int OA_Initialize(const char * const pcFilename, unsigned int uiFileNameLen);
+unsigned int OA_IsPreSetModeAvailable(const char * const pcModeName);
unsigned int OA_EnableMode(const char * const pcModeName);
unsigned int OA_GetModeAcqParams(const char * const pcModeName, char * const pcListOfParams);
unsigned int OA_GetUserModeNames(char * pcListOfModes);
@@ -626,6 +636,7 @@ unsigned int PostProcessDataAveraging(at_32 * pInputImage, at_32 * pOutputImage,
#define DRV_BINNING_ERROR 20099
#define DRV_INVALID_AMPLIFIER 20100
#define DRV_INVALID_COUNTCONVERT_MODE 20101
+#define DRV_USB_INTERRUPT_ENDPOINT_TIMEOUT 20102
#define DRV_ERROR_NOCAMERA 20990
#define DRV_NOT_SUPPORTED 20991
@@ -672,6 +683,7 @@ unsigned int PostProcessDataAveraging(at_32 * pInputImage, at_32 * pOutputImage,
#define DRV_OA_MODE_DOES_NOT_EXIST 20193
#define DRV_OA_CAMERA_NOT_SUPPORTED 20194
#define DRV_OA_FAILED_TO_GET_MODE 20195
+#define DRV_OA_CAMERA_NOT_AVAILABLE 20196
#define DRV_PROCESSING_FAILED 20211
@@ -682,8 +694,7 @@ unsigned int PostProcessDataAveraging(at_32 * pInputImage, at_32 * pOutputImage,
#define AC_ACQMODE_FRAMETRANSFER 16
#define AC_ACQMODE_FASTKINETICS 32
#define AC_ACQMODE_OVERLAP 64
-#define AC_ACQMODE_SUPERKINETICS 128
-#define AC_ACQMODE_TIMESCAN 256
+#define AC_ACQMODE_TDI 0x80
#define AC_READMODE_FULLIMAGE 1
#define AC_READMODE_SUBIMAGE 2
@@ -735,6 +746,8 @@ unsigned int PostProcessDataAveraging(at_32 * pInputImage, at_32 * pOutputImage,
#define AC_CAMERATYPE_ALTAF 27
#define AC_CAMERATYPE_IKONXL 28
#define AC_CAMERATYPE_RES1 29
+#define AC_CAMERATYPE_ISTAR_SCMOS 30
+#define AC_CAMERATYPE_IKONLR 31
#define AC_PIXELMODE_8BIT 1
#define AC_PIXELMODE_14BIT 2
@@ -775,6 +788,9 @@ unsigned int PostProcessDataAveraging(at_32 * pInputImage, at_32 * pOutputImage,
#define AC_SETFUNCTION_PRESCANS 0x4000000
#define AC_SETFUNCTION_GATEWIDTHSTEP 0x8000000
#define AC_SETFUNCTION_EXTENDED_CROP_MODE 0x10000000
+#define AC_SETFUNCTION_SUPERKINETICS 0x20000000
+#define AC_SETFUNCTION_TIMESCAN 0x40000000
+#define AC_SETFUNCTION_CROPMODETYPE 0x80000000
// Deprecated for AC_SETFUNCTION_MCPGAIN
#define AC_SETFUNCTION_GAIN 8
@@ -841,6 +857,9 @@ unsigned int PostProcessDataAveraging(at_32 * pInputImage, at_32 * pOutputImage,
#define AC_EMGAIN_LINEAR12 4
#define AC_EMGAIN_REAL12 8
+#define AC_FEATURES2_ESD_EVENTS 1
+#define AC_FEATURES2_DUAL_PORT_CONFIGURATION 2
+
#ifdef __cplusplus
}
#endif
diff --git a/andorSupport/ftdi_table.c b/andorSupport/ftdi_table.c
new file mode 100644
index 0000000..efd991e
--- /dev/null
+++ b/andorSupport/ftdi_table.c
@@ -0,0 +1,46 @@
+/*
+ This is a simple method to enable users to configure their own table of
+ VID and PIDs.
+ Just overwrite entries in the table or add/subract as many as you want.
+ There may be a performance drop when using FT_Open, FT_OpenEx or
+ FT_ListDevices when using this method. Therefore it is advised to avoid
+ excessive used of these functions.
+
+ Compile with:
+ $ gcc -fpic -shared -Wl,-soname,libd2xx_table.so -o libd2xx_table.so ftdi_table.c
+
+ This is Andor Shamrock 500i:
+ Bus 001 Device 073: ID 0403:d493 Future Technology Devices International, Ltd
+
+*/
+
+
+#define SIZE(x) (sizeof(x)/sizeof(x[0]))
+
+static int id_table[][2] = {
+ { 0x0403, 0x6010 }, /* 2232C */
+ { 0x0403, 0x6001 }, /* AM or BM */
+ { 0x0403, 0x6006 }, /* Direct Driver PID */
+ { 0x0403, 0xD493 } /* Andor Shamrock 500i */
+};
+
+/*
+ int lib_check_device(int vendor, int product)
+
+ Description: Check the VID and PID against our table
+ Arguments: vendor (device to check VID), product (device to check PID)
+ Return: 0 if no match, 1 if match
+*/
+int lib_check_device(int vendor, int product)
+{
+ int i;
+
+ for(i = 0; i < SIZE(id_table); i++) {
+ if ((id_table[i][0] == vendor) && (id_table[i][1] == product)) {
+ return 1;
+ }
+ }
+ return 0; /* no match */
+}
+
+
diff --git a/andorSupport/os/linux-x86/libUSBI2C-i386.so.2.102.30034.0 b/andorSupport/os/linux-x86/libUSBI2C-i386.so.2.102.30034.0
new file mode 100755
index 0000000..d6c010f
Binary files /dev/null and b/andorSupport/os/linux-x86/libUSBI2C-i386.so.2.102.30034.0 differ
diff --git a/andorSupport/os/linux-x86/libUSBI2C.so b/andorSupport/os/linux-x86/libUSBI2C.so
new file mode 120000
index 0000000..d99510d
--- /dev/null
+++ b/andorSupport/os/linux-x86/libUSBI2C.so
@@ -0,0 +1 @@
+libUSBI2C.so.2
\ No newline at end of file
diff --git a/andorSupport/os/linux-x86/libUSBI2C.so.2 b/andorSupport/os/linux-x86/libUSBI2C.so.2
new file mode 120000
index 0000000..8dfc02c
--- /dev/null
+++ b/andorSupport/os/linux-x86/libUSBI2C.so.2
@@ -0,0 +1 @@
+libUSBI2C-i386.so.2.102.30034.0
\ No newline at end of file
diff --git a/andorSupport/os/linux-x86/libandor-i386.so.2.102.30034.0 b/andorSupport/os/linux-x86/libandor-i386.so.2.102.30034.0
new file mode 100755
index 0000000..9d9c7a7
Binary files /dev/null and b/andorSupport/os/linux-x86/libandor-i386.so.2.102.30034.0 differ
diff --git a/andorSupport/os/linux-x86/libandor.so.2 b/andorSupport/os/linux-x86/libandor.so.2
index 1889ad3..ce1f170 120000
--- a/andorSupport/os/linux-x86/libandor.so.2
+++ b/andorSupport/os/linux-x86/libandor.so.2
@@ -1 +1 @@
-libandor-i386.so.2.99.30002.0
\ No newline at end of file
+libandor-i386.so.2.102.30034.0
\ No newline at end of file
diff --git a/andorSupport/os/linux-x86/libatsifio-i386.so.2.102.30034.0 b/andorSupport/os/linux-x86/libatsifio-i386.so.2.102.30034.0
new file mode 100755
index 0000000..f0d269f
Binary files /dev/null and b/andorSupport/os/linux-x86/libatsifio-i386.so.2.102.30034.0 differ
diff --git a/andorSupport/os/linux-x86/libshamrockcif-i386.so.2.102.30034.0 b/andorSupport/os/linux-x86/libshamrockcif-i386.so.2.102.30034.0
new file mode 100755
index 0000000..013763d
Binary files /dev/null and b/andorSupport/os/linux-x86/libshamrockcif-i386.so.2.102.30034.0 differ
diff --git a/andorSupport/os/linux-x86/libshamrockcif.so.2 b/andorSupport/os/linux-x86/libshamrockcif.so.2
index 16fa8de..82a8bbe 120000
--- a/andorSupport/os/linux-x86/libshamrockcif.so.2
+++ b/andorSupport/os/linux-x86/libshamrockcif.so.2
@@ -1 +1 @@
-libshamrockcif-i386.so.2.99.30002.0
\ No newline at end of file
+libshamrockcif-i386.so.2.102.30034.0
\ No newline at end of file
diff --git a/andorSupport/os/linux-x86_64/libUSBI2C-x86_64.so.2.102.30034.0 b/andorSupport/os/linux-x86_64/libUSBI2C-x86_64.so.2.102.30034.0
new file mode 100755
index 0000000..2842fa9
Binary files /dev/null and b/andorSupport/os/linux-x86_64/libUSBI2C-x86_64.so.2.102.30034.0 differ
diff --git a/andorSupport/os/linux-x86_64/libUSBI2C.so b/andorSupport/os/linux-x86_64/libUSBI2C.so
new file mode 120000
index 0000000..d99510d
--- /dev/null
+++ b/andorSupport/os/linux-x86_64/libUSBI2C.so
@@ -0,0 +1 @@
+libUSBI2C.so.2
\ No newline at end of file
diff --git a/andorSupport/os/linux-x86_64/libUSBI2C.so.2 b/andorSupport/os/linux-x86_64/libUSBI2C.so.2
new file mode 120000
index 0000000..16f0344
--- /dev/null
+++ b/andorSupport/os/linux-x86_64/libUSBI2C.so.2
@@ -0,0 +1 @@
+libUSBI2C-x86_64.so.2.102.30034.0
\ No newline at end of file
diff --git a/andorSupport/os/linux-x86_64/libandor-x86_64.so.2.102.30034.0 b/andorSupport/os/linux-x86_64/libandor-x86_64.so.2.102.30034.0
new file mode 100755
index 0000000..d75db45
Binary files /dev/null and b/andorSupport/os/linux-x86_64/libandor-x86_64.so.2.102.30034.0 differ
diff --git a/andorSupport/os/linux-x86_64/libandor.so.2 b/andorSupport/os/linux-x86_64/libandor.so.2
index f2a2e3a..73b4564 120000
--- a/andorSupport/os/linux-x86_64/libandor.so.2
+++ b/andorSupport/os/linux-x86_64/libandor.so.2
@@ -1 +1 @@
-libandor-x86_64.so.2.99.30002.0
\ No newline at end of file
+libandor-x86_64.so.2.102.30034.0
\ No newline at end of file
diff --git a/andorSupport/os/linux-x86_64/libatsifio-x86_64.so.2.102.30034.0 b/andorSupport/os/linux-x86_64/libatsifio-x86_64.so.2.102.30034.0
new file mode 100755
index 0000000..4e437ac
Binary files /dev/null and b/andorSupport/os/linux-x86_64/libatsifio-x86_64.so.2.102.30034.0 differ
diff --git a/andorSupport/os/linux-x86_64/libd2xx_table.so b/andorSupport/os/linux-x86_64/libd2xx_table.so
new file mode 100755
index 0000000..49394ed
Binary files /dev/null and b/andorSupport/os/linux-x86_64/libd2xx_table.so differ
diff --git a/andorSupport/os/linux-x86_64/libshamrockcif-x86_64.so.2.102.30034.0 b/andorSupport/os/linux-x86_64/libshamrockcif-x86_64.so.2.102.30034.0
new file mode 100755
index 0000000..0e47f37
Binary files /dev/null and b/andorSupport/os/linux-x86_64/libshamrockcif-x86_64.so.2.102.30034.0 differ
diff --git a/andorSupport/os/linux-x86_64/libshamrockcif.so.2 b/andorSupport/os/linux-x86_64/libshamrockcif.so.2
index 0b1647e..3306184 120000
--- a/andorSupport/os/linux-x86_64/libshamrockcif.so.2
+++ b/andorSupport/os/linux-x86_64/libshamrockcif.so.2
@@ -1 +1 @@
-libshamrockcif-x86_64.so.2.99.30002.0
\ No newline at end of file
+libshamrockcif-x86_64.so.2.102.30034.0
\ No newline at end of file
diff --git a/documentation/andorDoc.html b/documentation/andorDoc.html
index 6a9bbd1..280076e 100755
--- a/documentation/andorDoc.html
+++ b/documentation/andorDoc.html
@@ -94,6 +94,22 @@
This is a rather strange requirement of the Andor Shamrock SDK, which will hopefully
be fixed by them in a future release.
+
+ NOTE: When using SDK version >= 2.102.30000.0 on Linux one must make sure that
+ libUSBI2C-[ARCH].so.[VERSION] is installed as part of support into libUSBI2C.so and libUSBI2C.so.2.
+
+
+ Also libd2xx_table.so might be needed to get Shamrock communicating. See andorSupport/ftdi_table.c for more.
+
+
+ Compile with:
+
+
+ $ gcc -fpic -shared -Wl,-soname,libd2xx_table.so -o libd2xx_table.so ftdi_table.c
+
+
+ Place the libd2xx_table.so into the folder with the rest of SDK support libraries.
+
Implementation of standard driver parameters