ToupCam cameras support various kinds of APIs (Application Program Interface), namely Native C/C++, .NET/C#/VB.NET, DirectShow, Twain, LabView and so on. Compared with other APIs, Native C/C++ API, as a low level API, don't depend any other runtime libraries. Besides, this interface is simple, flexible and easy to be integrated into the customized applications. The SDK zip file contains all of the necessary resources and information:
toupcam.h, C/C++ head file
toupcam.cs, for C#. The toupcam.cs use P/Invoke to call into toupcam.dll. Please copy toupcam.cs to your C# project to use it.
toupcam.vb, for VB.NET. The toupcam.vb use P/Invoke to call into toupcam.dll. Please copy toupcam.vb to your VB.NET project to use it.
toupcam.lib, lib file for x86.
toupcam.dll, dll file for x86.
democpp.exe, x86 C++ demo exe file.
toupcam.lib, lib file for x64.
toupcam.dll, dll file for x64.
democpp.exe, x64 C++ demo exe file.
DLL files for WinRT / UWP (Universal Windows Platform) / Windows Store App.
These dll files are compatible with Windows Runtime, and can be consumed from a Universal Windows Platform app.
If use C# to develop the UWP, toupcam.cs wrapper class can be used to P/Invoke into toupcam.dll.
Please pay attation to DeviceCapability of uwp, see: How to add USB device capabilities to the app manifest. (It seems that microsoft limits the number of Device items to 100)
demouwp.zip is a simple demo, before build and run this demo, please change the value of vidpid in file Package.appxmanifest
Toupcam offers two modes to obtain image data: Pull Mode and Push Mode. The former is recommended since it's simpler and the application seldom gets stuck in multithreading conditions, especially when using windows message to notify the events.
There are to ways to notify applications:
a) Use Windows message: Start pull mode by using the function Toupcam_StartPullModeWithWndMsg. When event occurs, toupcam will post message (PostMessage) to the specified window. Parameter WPARAM is the event type, refer to the definition of TOUPCAM_EVENT_xxxx. This model avoids the multithreading issues, so it's the most simple way. (Obviously, this is only supported in Windows systems, and not supported in Linux and macOS.)
b) Use Callback function: Start pull mode by using the function Toupcam_StartPullModeWithCallback. When event occurs, toupcam will callback the function PTOUPCAM_EVENT_CALLBACK.
In Pull Mode, the SDK could not only notify the application that the image data or still image are available for 'PULL', but also inform you of the other events, such as:
TOUPCAM_EVENT_EXPOSURE exposure time changed TOUPCAM_EVENT_TEMPTINT white balance changed. Temp/Tint Mode, please see here. TOUPCAM_EVENT_WBGAIN white balance changed. RGB Gain Mode, please see here. TOUPCAM_EVENT_IMAGE Video image data arrives. Use Toupcam_PullImage(V2) to 'pull' the image data TOUPCAM_EVENT_STILLIMAGE Still image which is triggered by function Toupcam_Snap or Toupcam_SnapN arrives. Use Toupcam_PullStillImage(V2) to 'pull' the image data TOUPCAM_EVENT_ERROR Generic error, data acquisition cannot continue TOUPCAM_EVENT_DISCONNECTED Camera disconnected, maybe has been pulled out TOUPCAM_EVENT_TIMEOUT Grab image timeout error, data acquisition cannot continue TOUPCAM_EVENT_TRIGGERFAIL trigger failed (for example, bad frame data or timeout) TOUPCAM_EVENT_BLACK black balance changed TOUPCAM_EVENT_FFC flat field correction status changed TOUPCAM_EVENT_DFC dark field correction status changed TOUPCAM_EVENT_FACTORY restore factory settings. Please note that restoring factory settings may cause resolution changes.
Most cameras support the so-called still capture capability. This function switches the camera to another resolution temporarily when the camera is in preview mode, after a "still" image in the new resolution is captured and then switch back to the original resolution and resume preview mode.
For example, UCMOS05100KPA support 3 resolutions and the current one in preview mode is 1280 * 960. Call Toupcam_Snap(h, 0) to "still capture" an image in 2592 * 1944 resolution. To realize this function, the camera will temporarily switch to 2592 * 1944 firstly, get an image in 2592 * 1944 resolution and then switch back to 1280 * 960 and resume preview.
a) In pull mode operation, after the still capture, TOUPCAM_EVENT_STILLIMAGE will be sent out for external acknowledgement. The external application should call Toupcam_PullStillImage(V2) to get the still captured image.
b) In push mode operation, after the still capture, the callback function PTOUPCAM_DATA_CALLBACK(_V2) will be called with bSnap parameter setting TRUE. The image information including the resolution information will be obtained via the parameter pHeader.
To check whether the camera have the still capture capability, call Toupcam_get_StillResolutionNumber function or check the still field of the struct ToupcamModelV2.
Toupcam supports two data formats: RGB format (default) and RAW format. RAW format could be enabled by assigning TOUPCAM_OPTION_RAW parameter to 1 when calling Toupcam_put_Option function.
Users could switch these two format by calling Toupcam_put_Option function with different value setting to TOUPCAM_OPTION_RAW. You must call this function BEFORE the camera start function (Toupcam_StartPullModeWithWndMsg or Toupcam_StartPullModeWithCallback or Toupcam_StartPushMode).
1. Toupcam sdk supports two independent modes for white balance: a) Temp/Tint Mode; b) RGB Gain Mode
a) Temp/Tint mode is the default white balance mode. In this mode, temp and tint are the parameters that could be used to control the white balance. Toupcam_get_TempTint function is used to acquire the temp and tint values and Toupcam_put_TempTint is used to set the temp and tint values. Function Toupcam_AwbOnePush is used to execute the auto white balance. When the white balance parameters change, TOUPCAM_EVENT_TEMPTINT event will be notified for external use.
b) In RGB Gain mode, the while balace is controled by the gain values of the R,G,B channels. Toupcam_get_WhiteBalanceGain is used to acquire the parameters and Toupcam_put_WhiteBalanceGain is used to set the white balance parameters. Toupcam_AwbInit is used to execute the execute the auto white balance. When the white balance parameters change, TOUPCAM_EVENT_WBGAIN event will be notified for external use.
The functions for these two modes cannot be misused:
a) In Temp/Tint mode, please use Toupcam_get_TempTint and Toupcam_put_TempTint and Toupcam_AwbOnePush. Toupcam_get_WhiteBalanceGain and Toupcam_put_WhiteBalanceGain and Toupcam_AwbInit cannot be used, they always return E_NOTIMPL.
b) In RGB Gain mode, please use Toupcam_get_WhiteBalanceGain and Toupcam_put_WhiteBalanceGain and Toupcam_AwbInit. Toupcam_get_TempTint and Toupcam_put_TempTint and Toupcam_AwbOnePush cannot be used, they always return E_NOTIMPL
When calling Toupcam_Open function, whether to add a '@' character at the beginning of the id parameter will determine the white balance mode. Add a '@' character at the beginning of the id parameter means the RGB gain mode. If you want to use the RGB Gain mode, for example, if the id parameter is "abcdef", please call the Toupcam_Open function with the id parameter "@abcdef".
2.   For "one push" auto white balance mechanism, the white balance parameters will be calculated and updated only when triggered. Toupcam cameras support "one push" auto white balance mechanism since it is more accurate and propriate for the microscope application, especially when the background is in pure color. Continuous white balance mechanism will encounter some problem in some cases.
3. Monochromatic camera does not support white balance. The functions metioned above always return E_NOTIMPL.
1. What is Trigger Mode
ToupCam camera has two working modes: video mode and trigger mode. When in trigger mode, no images will be available until the trigger conditions are met. Cameras have 3 types for triggering according to the types of trigger source, including software trigger mode, external trigger mode and simulated trigger mode.
2. The Difference between Trigger and Snap
Trigger mode is designed for accurate control of the camera and images would be acquired only when the conditions are met. Users could get the images by controlling the trigger conditions. Trigger mode must be pre-specified. Once the trigger mode is entered, no images will come out from the camera until the trigger conditions are met. The triggered images will stay the same property as the pre-specified resolution. Snap is designed to acquire the images from the camera in video mode. The resolution of the snapped image could be the same resolution as the video or could be different.
3. Software Trigger Mode
Camera could be triggered by software. In software trigger mode, images burst out only when users trigger the camera from the software. Numbers of the images of the triggering could also be controlled by software.
4. External Trigger Mode
Camera could be triggered by external trigger signal. By now Toupcam camera only supports positive-edge trigger mode.
5. Simulated Trigger Mode
For cameras that do not support software trigger and external trigger, simulated trigger mode could be available. When in simulated trigger mode, the camera hardware actually works in the same mode as the video mode. But the up-level software will not obtain any images from the camera. The software buffer will stay empty until the user set the trigger conditions by software.
6. How to Enter the Trigger Mode
After the numeration of the connected camera, you can check the flag and find out what trigger mode does the camera support according to the following definition.Function Toupcam_put_Option(HToupCam h, unsigned iOption, int iValue) could be used to set the camera to trigger mode when assign TOUPCAM_OPTION_TRIGGER to the iOption parameter. iValue is used to specify the types of the trigger modes. Please see the following for reference.
#define TOUPCAM_FLAG_TRIGGER_SOFTWARE 0x00080000 /* support software trigger */ #define TOUPCAM_FLAG_TRIGGER_EXTERNAL 0x00100000 /* support external trigger */ #define TOUPCAM_FLAG_TRIGGER_SINGLE 0x00200000 /* only support trigger single: one trigger, one image */Function Toupcam_get_Option(HToupCam h, unsigned iOption, int* piValue) could be used to get what type of trigger mode the camera is in.
#define TOUPCAM_OPTION_TRIGGER 0x0b /* 0 = video mode, 1 = software or simulated trigger mode, 2 = external trigger mode, default value = 0 */
7. How to Trigger the camera
Function Toupcam_Trigger(HToupCam h, unsigned short nNumber) could be used to trigger the camera. Assigning different value to nNumber means different:nNumber = 0 means stop the trigger.If the TOUPCAM_FLAG_TRIGGER_SINGLE flag is checked, the nNumber parameter must be assigned to 1 and 1 image will come out from the camera when Toupcam_Trigger is called. Enter the trigger mode first and then call Toupcam_Trigger function to trigger the camera.
nNumber = 0xFFFF means trigger continuously, the same as video mode;
nNumber = other valid values means nNumber images will come out from the camera.
8. Trigger timeout
The timeout is recommended for not less than (Exposure Time * 102% + 8 Seconds).
HRESULT is not uncommon on the Windows platform. It's borrowed to macOS and Linux, see the table:
| Name | Description | Value |
| S_OK | Operation successful | 0x00000000 |
| S_FALSE | Operation successful | 0x00000001 |
| E_FAIL | Unspecified failure | 0x80004005 |
| E_INVALIDARG | One or more arguments are not valid | 0x80070057 |
| E_NOTIMPL | Not supported or not implemented | 0x80004001 |
| E_POINTER | Pointer that is not valid | 0x80004003 |
| E_UNEXPECTED | Unexpected failure | 0x8000FFFF |
| E_WRONG_THREAD | Called in wrong thread | 0x8001010E |
#define SUCCEEDED(hr) (((HRESULT)(hr)) >= 0) #define FAILED(hr) (((HRESULT)(hr)) < 0) |
Win: __stdcall, please see here
macOS and Linux: __cdecl
These callback functions are called back from the internal thread in toupcam.dll, so great attention should be paid to multithread issue.
There are limitation in the callback context:
(a) Do NOT call Toupcam_Stop and Toupcam_Close in this callback function, otherwise, deadlocks.
(b) Do NOT call Toupcam_put_Option with TOUPCAM_OPTION_TRIGGER, TOUPCAM_OPTION_BITDEPTH, TOUPCAM_OPTION_PIXEL_FORMAT, TOUPCAM_OPTION_BINNING, TOUPCAM_OPTION_ROTATE, the return value is E_WRONG_THREAD.
Return value: non-negative integer, enumerated camera number
Parameters:
ToupcamInstV2 pti[TOUPCAM_MAX]: ToupcamInstV2 buffer
Remarks: call this function to enumerate ToupCam cameras that are currently connected to computer and when it is returned, ToupcamInstV2 buffer contains the information of each camera instance enumerated.If we don't care about that multiple cameras connect to the computer simultaneously, it's optional to call this function to enumerate the camera instances.
The code snippet shows as below:
ToupcamInstV2 arr[TOUPCAM_MAX]; unsigned cnt = Toupcam_EnumV2(arr); for (unsigned i = 0; i < cnt; ++i) ...... |
typedef struct{ #ifdef _WIN32 const wchar_t* name; /* model name */ #else const char* name; #endif unsigned long long flag; /* TOUPCAM_FLAG_xxx */ unsigned maxspeed; /* maximum speed level, Toupcam_get_MaxSpeed, the speed range = [0, maxspeed], closed interval */ unsigned preview; /* number of preview resolution, Toupcam_get_ResolutionNumber */ unsigned still; /* number of still resolution, Toupcam_get_StillResolutionNumber */ unsigned maxfanspeed; /* maximum fan speed */ ToupcamResolution res[TOUPCAM_MAX]; }ToupcamModelV2; |
| name | The name of this model | |
| flag | Bitwise flag | |
| TOUPCAM_FLAG_CMOS | cmos sensor | |
| TOUPCAM_FLAG_CCD_PROGRESSIVE | progressive ccd sensor | |
| TOUPCAM_FLAG_CCD_INTERLACED | interlaced ccd sensor | |
| TOUPCAM_FLAG_ROI_HARDWARE | support hardware ROI. Hardware ROI means only the ROI part of image is output from the sensor and the software cropping operation is not required. Higher frame rate is achieved when using hardware ROI method. Software ROI means the image with the complete field of view of the sensor will be output and software cropping operation is required to obtain the ROI image. | |
| TOUPCAM_FLAG_MONO | monochromatic sensor | |
| TOUPCAM_FLAG_BINSKIP_SUPPORTED | support bin/skip mode, see Toupcam_put_Mode and Toupcam_get_Mode | |
| TOUPCAM_FLAG_USB30 | usb3.0 | |
| TOUPCAM_FLAG_TEC | Thermoelectric Cooler | |
| TOUPCAM_FLAG_USB30_OVER_USB20 | usb3.0 camera connected to usb2.0 port | |
| TOUPCAM_FLAG_ST4 | ST4 port | |
| TOUPCAM_FLAG_GETTEMPERATURE | support to get the temperature of the sensor, Toupcam_get_Temperature | |
| TOUPCAM_FLAG_PUTTEMPERATURE | support to put the target temperature of the sensor, Toupcam_put_Temperature | |
| TOUPCAM_FLAG_RAW10 | Pixel format, RAW 10 bits | |
| TOUPCAM_FLAG_RAW12 | Pixel format, RAW 12 bits | |
| TOUPCAM_FLAG_RAW14 | Pixel format, RAW 14 bits | |
| TOUPCAM_FLAG_RAW16 | Pixel format, RAW 16 bits | |
| TOUPCAM_FLAG_FAN | cooling fan | |
| TOUPCAM_FLAG_TEC_ONOFF | Thermoelectric Cooler can be turn on or off, target temperature of TEC, see: TOUPCAM_OPTION_TEC TOUPCAM_OPTION_TECTARGET |
|
| TOUPCAM_FLAG_ISP | ISP (Image Signal Processing) chip | |
| TOUPCAM_FLAG_TRIGGER_SOFTWARE | support software trigger | |
| TOUPCAM_FLAG_TRIGGER_EXTERNAL | support external trigger | |
| TOUPCAM_FLAG_TRIGGER_SINGLE | only support trigger single, one trigger, one image | |
| TOUPCAM_FLAG_BLACKLEVEL | support set and get the black level | |
| TOUPCAM_FLAG_AUTO_FOCUS | support auto focus | |
| TOUPCAM_FLAG_BUFFER | frame buffer | |
| TOUPCAM_FLAG_DDR | use very large capacity DDR (Double Data Rate SDRAM) for frame buffer | |
| >TOUPCAM_FLAG_CG | Conversion Gain: LCG, HCG | |
| >TOUPCAM_FLAG_CGHDR | Conversion Gain: LCG, HCG, HDR | |
| TOUPCAM_FLAG_YUV411 | pixel format, yuv411 | |
| TOUPCAM_FLAG_YUV422 | pixel format, yuv422 | |
| TOUPCAM_FLAG_YUV444 | pixel format, yuv444 | |
| TOUPCAM_FLAG_RGB888 | pixel format, RGB888 | |
| TOUPCAM_FLAG_RAW8 | pixel format, RAW 8 bits | |
| TOUPCAM_FLAG_GMCY8 | pixel format, GMCY, 8bits | |
| TOUPCAM_FLAG_GMCY12 | pixel format, GMCY, 12 btis | |
| maxspeed | Maximum speed level, same with Toupcam_get_MaxSpeed. The speed range is [0, maxspeed]. see Toupcam_put_Speed and Toupcam_get_Speed | |
| preview | Number of preview resolution. Same with Toupcam_get_ResolutionNumber | |
| still | Number of still resolution, zero means still capture is not supported. Same with Toupcam_get_StillResolutionNumber | |
| res | Resolution, width and height |
Return value: NA
Parameters:
PTOUPCAM_HOTPLUG pHotPlugCallback: callback function
typedef void (*PTOUPCAM_HOTPLUG)(void* pCallbackCtx);void* pCallbackCtx: callback context
Remarks:
This function is only available on macOS and Linux, it's unnecessary on Windows.
To process the device plug in / pull out in Windows, please refer to the MSDN(Device Management, Detecting Media Insertion or Removal).
To process the device plug in / pull out in Linux / macOS, please call this function to register the callback function. When the device is inserted or pulled out, you will be notified by the callback funcion, and then call Toupcam_EnumV2(...) again to enum the cameras.
Recommendation: for better rubustness, when notify of device insertion arrives, don't open handle of this device immediately, but open it after delaying a short time (e.g., 200 milliseconds).
Return value: HToupCam handle. Return NULL when fails (Such as the device has been pulled out).
Parameters:
id: ToupCam camera instance, enumerated by Toupcam_EnumV2. If id is NULL, Toupcam_Open will open the first camera which connects to the computer. So, if we don't care about that multiple cameras connect to the computer simultaneously, Toupcam_EnumV2 is optional, we can simply use NULL as the parameter.
Remarks: open the camera instance.
Return value: void
Parameters:
HToupCam h: camera instance handle
Remarks: close the camera instance. After it is closed, never use the HToupCam handle any more.
Return value: HRESULT type means "success / failure"
Parameters:
HToupCam h: instance handle opened by Toupcam_Open
HWND hWnd: event occurs, message will be posted in this window
UINT nMsg: Windows custom message type. Its WPARAM parameter means event type TOUPCAM_EVENT_xxxx, LPARAM is useless (always zero)
PTOUPCAM_EVENT_CALLBACK pEventCallback, void* pCallbackContext: callback function specified by user's application and callback context parameter.
typedef void (*PTOUPCAM_EVENT_CALLBACK)(unsigned nEvent, void* pCallbackCtx);see here.
Remarks: Obviously, Toupcam_StartPullModeWithWndMsg is only supported in Windows OS.
Return value: HRESULT type means "success/ failure". Return E_FAIL when there isn't image ready for pull.
Parameters:
HToupCam h: instance handle opened by Toupcam_Open
void* pImageData: Data buffer. Users have to make sure that the data buffer capacity is enough to save the image data, data buffer capacity must >= rowPitch * nHeight.
int bits: 24, 32, 48, 8, 16, means RGB24, RGB32, RGB48, 8 bits gray or 16 bits gray images. This parameter is ignored in RAW mode.
int rowPitch: the distance from one row of to the next row. rowPitch = 0 means using the default row pitch.
unsigned* pnWidth, unsigned* pnHeight: out parameter. width and height of image.
ToupcamFrameInfoV2* pInfo: out parameter, frame info. Some cameras support frame sequence and frame timestamp, for other unsigned cameras, sequence and timestamp are always 0
Remarks: when pImageData is NULL, while pnWidth and pnHeight are not NULL, you can "peek" the width and height of images.
Please ensure that the pImageData buffer is large enough to hold the entire frame data, see the table below:
Format Default Row Pitch RGB RGB24 TDIBWIDTHBYTES(24 * Width) RGB32 Width * 4 RGB48 TDIBWIDTHBYTES(48 * Width) RGB8 grey image TDIBWIDTHBYTES(8 * Width) RAW 8bits Mode Width 10bits, 12bits, 14bits, 16bits Mode Width * 2
#ifndef TDIBWIDTHBYTES
#define TDIBWIDTHBYTES(bits) ((unsigned)(((bits) + 31) & (~31)) / 8)
#endif
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: instance handle opened by Toupcam.
PTOUPCAM_DATA_CALLBACK(_V2) pDataCallback, void* pCallbackCtx: the callback function and callback context parameters that are specified by the user's program. Toupcam.dll gets image data from the camera, then calls back this function.
typedef void (*PTOUPCAM_DATA_CALLBACK)(const void* pData, const BITMAPINFOHEADER* pHeader, int bSnap, void* pCallbackCtx);
typedef void (*PTOUPCAM_DATA_CALLBACK_V2)(const void* pData, const ToupcamFrameInfoV2* pInfo, int bSnap, void* pCallbackCtx);see here.
when calls back, if Parameter pData == NULL, then internal error occurs (eg: the camera is pulled out suddenly).
The row pitch of pData is always the default value.
For parameter int bSnap, TRUE means still image snap by Toupcam_Snap or Toupcam_SnapN function, FALSE means ordinary previewed pictures / videos.
Remarks: start camera instance.
Return value: HRESULT type means success or failure
Parameters:
HToupCam handle
Remarks: stop the camera instance. After stopped, it can be restart again. For example, switching the video resolution:
Step 1: call Toupcam_Stop to stop
Step 2: call Toupcam_put_Size or Toupcam_put_eSize to set the new resolution
Step 3: call Toupcam_StartPullModeWithWndMsg or Toupcam_StartPullModeWithCallback or Toupcam_StartPushMode to restart
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
Remarks: pause/continue camera instance.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned nResolutionIndex: resolution index.
Remarks: snap 'still' image, please see here. When snap successfully:
a) If we use Pull Mode, it will be notified by TOUPCAM_EVENT_STILLIMAGE.
b) If we use Push Mode, the image will be returned by callback function PTOUPCAM_DATA_CALLBACK(_V2) with the parameter int bSnap is TRUE.
Most cameras can snap still image with different resolutions under continuous preview. For example, UCMOS03100KPA's previewed resolution is 1024*768, if we call Toupcam_Snap(h, 0), we get so called "still image" with 2048*1536 resolution.
Some cameras hasn't this ability, so nResolutionIndex must be equal the preview resolution which is set by Toupcam_put_Size, or Toupcam_put_eSize.
Whether it supports "still snap" or not, see "still" domain in ToupcamModelV2.Toupcam_Snap(h, index) == Toupcam_SnapN(h, index, 1)
Return value: HRESULT type means success or failure.
Parameters:
HToupCam h: camera instance handle
unsigned short nNumber: 0xffff(trigger continuously), 0(stop / cancel trigger), others(number of images to be triggered)
Remarks: in trigger mode, call this function to trigger an image:
a) If we use Pull Mode, it will be notified by TOUPCAM_EVENT_IMAGE.
b) If we use Push Mode, the image will be returned by callback function PTOUPCAM_DATA_CALLBACK(_V2) with the parameter int bSnap is FALSE.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned nResolutionIndex: current/present resolution index
int nWidth, int nHeight: width and height of current resolution index
Remarks: set/get current resolution
Set resolution before running Toupcam_StartPullModeWithWndMsg or Toupcam_StartPullModeWithCallback or Toupcam_StartPushMode
There are two ways to set current resolution: one is by resolution index, the other by width/height. Both ways are equivalent. For example, UCMOS03100KPA supports the following three kinds of resolution:
Index 0: 2048, 1536
Index 1: 1024, 768
Index 2: 680, 510
So Toupcam_put_Size(h, 1024, 768) is as effective as Toupcam_put_eSize(h, 1)
Return value: HRESULT type means success or failure.
Parameters:
HToupCam h: camera instance handle
unsigned xOffset: x offset, must be even number
unsigned yOffset: y offset, must be even number
unsigned xWidth: width, must be even number and must not be less than 16
unsigned yHeight: height, must be even number and must not be less than 16
Remarks: set/get the ROI. Toupcam_put_Roi(h, 0, 0, 0, 0) means to clear the ROI and restore the original size.
Important: It is forbidden to call Toupcam_put_Roi in the callback context of PTOUPCAM_EVENT_CALLBACK and PTOUPCAM_DATA_CALLBACK(_V2), the return value is E_WRONG_THREAD.
The second resolution of UHCCD03100KPB, UHCCD05000KPA, UHCCD05100KPA don't support ROI, so the return value is E_NOTIMPL.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned nResolutionIndex: resolution index
int* pWidth, int* pHeight: width/height
Remarks: Toupcam_get_ResolutionNumber means the number of resolution supported. Take UCMOS03100KPA as an example, if we call the function Toupcam_get_ResolutionNumber and get "3", which means it can support three kinds of resolution. Toupcam_get_Resolution gets the width/height of each kind of resolution.
These parameters have also been contained in ToupcamModelV2.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned* nFourCC: raw format, see the table below
unsigned* bitdepth: Bit Depth, such as 8, 12, 14, 16
#ifndef MAKEFOURCC
#define MAKEFOURCC(a, b, c, d) ((unsigned)(unsigned char)(a) | ((unsigned)(unsigned char)(b) << 8) | ((unsigned)(unsigned char)(c) << 16) | ((unsigned)(unsigned char)(d) << 24))
#endif
MAKEFOURCC('G', 'B', 'R', 'G') GBGBGB...
RGRGRG...
GBGBGB...
RGRGRG...
...
see hereMAKEFOURCC('R', 'G', 'G', 'B') RGRGRG...
GBGBGB...
RGRGRG...
GBGBGB...
...MAKEFOURCC('B', 'G', 'G', 'R') BGBGBG...
GRGRGR...
BGBGBG...
GRGRGR...
...MAKEFOURCC('G', 'R', 'B', 'G') GRGRGR...
BGBGBG...
GRGRGR...
BGBGBG...
...MAKEFOURCC('V', 'U', 'Y', 'Y') YUV4:2:2, please see: http://www.fourcc.org MAKEFOURCC('U', 'Y', 'V', 'Y') YUV4:2:2 MAKEFOURCC('Y', 'Y', 'Y', 'Y') Black / White camera
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned iOption: see the table
int iValue: see the table
Option Description Default The value can be changed after Toupcam_StartPullModeWithWndMsg or Toupcam_StartPullModeWithCallback or Toupcam_StartPushMode?
The value can be changed on-the-fly?TOUPCAM_OPTION_NOFRAME_TIMEOUT Report error if cannot grab frame in a certain time.
1 = enable this feature;
0 = disable this feature.0 Yes TOUPCAM_OPTION_THREAD_PRIORITY set the priority of the internal thread which grab data from the usb device.
0 = THREAD_PRIORITY_NORMAL;
1 = THREAD_PRIORITY_ABOVE_NORMAL;
2 = THREAD_PRIORITY_HIGHEST;
3 = THREAD_PRIORITY_TIME_CRITICAL;
Please refer to SetThreadPriority
This option is not available at Linux and macOS.1 Yes TOUPCAM_OPTION_PROCESSMODE 0 = better image quality, more cpu usage.
1 = lower image quality, less cpu usage.0 Yes TOUPCAM_OPTION_RAW 0 means RGB mode.
1 means RAW mode, read the CMOS or CCD raw data.0 No
(The return value is E_UNEXPECTED when set this option after the camera is started)TOUPCAM_OPTION_BITDEPTH Some cameras support the bit depth which is more than 8 such as 10, 12, 14, 16.
0 = use 8 bits depth.
1 = use the maximum bits depth of this camera.NA Yes TOUPCAM_OPTION_FAN Some cameras support the cooling fan.
0 = turn off the cooling fan
[1, max] = fan speedNA Yes TOUPCAM_OPTION_TEC Some cameras support to turn on or off the thermoelectric cooler.
0 = turn off the thermoelectric cooler
1 = turn on the thermoelectric cooler1 Yes TOUPCAM_OPTION_LINEAR 0 = turn off the builtin linear tone mapping
1 = turn on the builtin linear tone mapping1 Yes TOUPCAM_OPTION_CURVE 0 = turn off the builtin curve tone mapping
1 = turn on the builtin polynomial curve tone mapping
2 = turn on the builtin logarithmic curve tone mapping2 Yes TOUPCAM_OPTION_COLORMATIX 0 = turn off the builtin color matrix
1 = turn on the builtin color matrix1 Yes TOUPCAM_OPTION_WBGAIN 0 = turn off the builtin white balance gain
1 = turn on the builtin white balance gain1 Yes TOUPCAM_OPTION_TRIGGER 0 = video mode
1 = software or simulated trigger mode
2 = external trigger mode0 Yes TOUPCAM_OPTION_RGB 0 = RGB24
1 = enable RGB48 format when bitdepth > 8
2 = RGB32
3 = 8 bits gray (only for mono camera)
4 = 16 bits gray (only for mono camera and bitdepth > 8)0 No
(The return value is E_UNEXPECTED when set this option after the camera is started)TOUPCAM_OPTION_TECTARGET get or set the target temperature of the thermoelectric cooler, in 0.1℃. For example, 125 means 12.5℃, -35 means -3.5℃ NA Yes TOUPCAM_OPTION_AGAIN enable or disable adjusting the analog gain when auto exposure is enabled Yes Yes TOUPCAM_OPTION_FRAMERATE limit the frame rate, range=[0, 63].
frame rate control is disabled automatically in trigger mode.0
(means no limit)No
(The return value is E_UNEXPECTED when set this option after the camera is started)TOUPCAM_OPTION_DEMOSAIC Demosaic mothod for both video and still image: (Please refrence https://en.wikipedia.org/wiki/Demosaicing)
0 = BILINEAR
1 = VNG(Variable Number of Gradients interpolation)
2 = PPG(Patterned Pixel Grouping interpolation)
3 = AHD(Adaptive Homogeneity-Directed interpolation)
Always return E_NOTIMPL for monochromatic camera.0 Yes TOUPCAM_OPTION_DEMOSAIC_VIDEO Demosaic mothod for video 0 Yes TOUPCAM_OPTION_DEMOSAIC_STILL Demosaic mothod for still image
Always return E_NOTIMPL for camera that don't support sill image capture.0 Yes TOUPCAM_OPTION_BLACKLEVEL Black Level
Always return E_NOTIMPL for camera that don't support black level.0 Yes TOUPCAM_OPTION_MULTITHREAD multithread image processing 1 No
(The return value is E_UNEXPECTED when set this option after the camera is started)TOUPCAM_OPTION_BINNING digital binning:
0x01 (no binning)
0x02 (add, 2*2)
0x03 (add, 3*3)
0x04 (add, 4*4)
0x82 (average, 2*2)
0x83 (average, 3*3)
0x84 (average, 4*4)1 Yes TOUPCAM_OPTION_ROTATE rotate clockwise: 0, 90, 180, 270 0 Yes TOUPCAM_OPTION_CG Conversion Gain:
0: LCG
1: HCG
2: HDRNA Yes TOUPCAM_OPTION_PIXEL_FORMAT pixel format NA Yes TOUPCAM_OPTION_DDR_DEPTH the number of the frames that DDR can cache:
1: DDR cache only one frame
0: Auto:->one for video mode when auto exposure is enabled->full capacity for others-1: DDR can cache frames to full capacity0 Yes TOUPCAM_OPTION_FFC Flat Field Correction:
set:0: disable1: enable-1: reset(0xff000000 | n): set the average number to n, [1~255]get:(val & 0xff): 0 -> disable, 1 -> enable, 2 -> inited((val & 0xff00) >> 8): sequence((val & 0xff0000) >> 8): average number0 Yes TOUPCAM_OPTION_DFC Dark Field Correction:
set:0: disable1: enable-1: reset(0xff000000 | n): set the average number to n, [1~255]get:(val & 0xff): 0 -> disable, 1 -> enable, 2 -> inited((val & 0xff00) >> 8): sequence((val & 0xff0000) >> 8): average number0 Yes TOUPCAM_OPTION_SHARPENING Sharpening, (threshold << 24) | (radius << 16) | strength)
strength: [0, 500], default: 0 (disable)radius: [1, 10]threshold: [0, 255]0 Yes TOUPCAM_OPTION_FACTORY restore the factory settings Always 0 Yes TOUPCAM_OPTION_TEC_VOLTAGE get the current TEC voltage in 0.1V, 59 mean 5.9V; readonly NA/td> NA TOUPCAM_OPTION_TEC_VOLTAGE_MAX get the TEC maximum voltage in 0.1V; readonly NA NA TOUPCAM_OPTION_DEVICE_RESET reset usb device, simulate a replug NA NA
Important:
a. Some options cannot be changed after the camera is started. This is to say the option cannot be changed on-the-fly.
b. It is forbidden to call Toupcam_put_Option with TOUPCAM_OPTION_TRIGGER, TOUPCAM_OPTION_BITDEPTH, TOUPCAM_OPTION_PIXEL_FORMAT, TOUPCAM_OPTION_BINNING, TOUPCAM_OPTION_ROTATE in the callback context of PTOUPCAM_EVENT_CALLBACK and PTOUPCAM_DATA_CALLBACK, the return value is E_WRONG_THREAD.
c. The second resolution of UHCCD03100KPB, UHCCD05000KPA, UHCCD05100KPA don't support RAW mode.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
int bEnable: TRUE or FALSE
Remarks: If you set RealTime mode as TRUE, then you get shorter frame delay but lower frame rate which damages fluency. The default value is FALSE.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
int bAutoExposure: TRUE or FALSE
unsigned short Target: auto-exposure target
unsigned maxTime, unsigned short maxAGain: the maximum time and maximum analog gain of auto-exposure
Remarks: If auto exposure is enabled, the exposure time and analog gain are controlled by software to make the average brightness of the target rectangle as close as possible to the auto exposure target. The auto exposure target value is the target brightness of the target rectangle (see Toupcam_put_AEAuxRect, Toupcam_get_AEAuxRect).
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned Time: exposure time, unit: microsecond
unsigned* nMin, unsigned* nMax, unsigned* nDef: the minimum, maximum and default value of exposure time.
Remarks: exposure time related.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned short AGain: analog gain, shown in percentage, eg, 200 means the analog gain is 200%
unsigned short* nMin, unsigned short* nMax, unsigned short* nDef: the minimum, maximum and default value of analog gain.
Remarks: analog gain related.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
Remarks: set or get hue, saturation, brightness, contrast and gamma.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
int bChrome: TRUE or FALSE
Remarks: color or gray mode
Return value: HRESULT type means success or failure
Parameters: HToupCam h: camera instance handle
Remarks: vertical/horizontal flip.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned short nSpeed: frame rate level
Remarks: the minimum frame rate level is "0", the maximum one can be achieved through Function "Toupcam_get_MaxSpeed" which equals to maxspeed in ToupcamModelV2.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
int nHZ: 0: 60Hz alternating current, 1: 50Hz alternating current, 2: direct current
Remarks: set the light source power frequency
Return value: HRESULT type means success or failure, E_NOTIMPL means not supporting get or set the temperature
Parameters:
HToupCam h: camera instance handle
short nTemperature: in 0.1℃ (32 means 3.2℃, -35 means -3.5℃).
Remarks: get the temperature of the sensor. see TOUPCAM_FLAG_GETTEMPERATURE.
set the target temperature of the sensor.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
int bSkip: Bin mode or Skip mode.
Remarks: set Bin mode or Skip mode. Cameras with higher resolution can support two sampling modes, one is Bin mode (Neighborhood averaging), the other is Skip (sampling extraction). In comparison, the former is with better image effect but decreasing frame rate while the latter is just the reverse.
Return value: HRESULT type means success or failure. Works int Temp/Tint mode. Does not work int RGB Gain mode, E_NOTIMPL will be return.
Parameters:
HToupCam h: camera instance handle
int nTemp, int nTint: color temperature and Tint
Remarks: set/get the color temperature and Tint parameters of white balance (Temp/Tint Mode, please see here).
Return value: HRESULT type means success or failure. Works int Temp/Tint mode. Does not work int RGB Gain mode, E_NOTIMPL will be return.
Parameters:
HToupCam h: camera instance handle
PITOUPCAM_TEMPTINT_CALLBACK fnTTProc, void* pTTCtx: callback function and callback context when the automatic white balance completes.
Remarks: Call this function to perform one "auto white balance" in Temp/Tint Mode. When the "auto white balance" completes, TOUPCAM_EVENT_TEMPTINT event notify the application (In Pull Mode) and callback happens. In pull mode, this callback is useless, set it to NULL.
Return value: HRESULT type means success or failure. Works int RGB Gain mode. Does not work int Temp/Tint Gain mode, E_NOTIMPL will be return.
Parameters:
HToupCam h: camera instance handle
int aGain[3]: RGB Gain
Remarks: set/get the RGB gain parameters of white balance (RGB Gain Mode, please see here).
Return value: HRESULT type means success or failure. Works int RGB Gain mode. Does not work int Temp/Tint mode, E_NOTIMPL will be return.
Parameters:
HToupCam h: camera instance handle
PITOUPCAM_WHITEBALANCE_CALLBACK fnWBProc, void* pWBCtx: callback function and callback context when the automatic white balance completes.
Remarks: Call this function to perform one "auto white balance" in RGB Gain Mode. When the "auto white balance" completes, TOUPCAM_EVENT_WBGAIN event notify the application (In Pull Mode) and callback happens. In pull mode, this callback is useless, set it to NULL.
Return value: HRESULT type means success or failure.
Parameters:
HToupCam h: camera instance handle
PITOUPCAM_BLACKBALANCE_CALLBACK fnBBProc, void* pBBCtx: callback function and callback context when the automatic black balance completes.
Remarks: Call this function to perform one "auto black balance". When the "auto black balance" completes, TOUPCAM_EVENT_BLACK event notify the application (In Pull Mode) and callback happens. In pull mode, this callback is useless, set it to NULL.
Return value: HRESULT type means success or failure.
Parameters:
HToupCam h: camera instance handle
unsigned short aSub[3]: RGB Offset
Remarks: set/get the RGB offset parameters of black balance.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
Remarks: set/get the rectangle of automatic white balance and auto-exposure and automatic black balance. The default Rectangle is in the center of the image, its width is 20% image with, its height is 20% image height.
Pay attention to that the rectangle is always relative to the original resolution, even that the video has been flipped, rotated, digital binning, ROIed, or combination of the previous operations.
Return value: S_OK means mono mode, S_FALSE means color mode
Parameters:
ToupCam h: camera instance handle
Remarks: gray camera or not, find the flag in ToupCamModelV2: TOUPCAM_FLAG_MONO
Return value: the maximum bit depth this camera supports.
Parameters:
HToupCam h: camera instance handle
Remarks: Some cameras support the bit depth which is more than 8 such as 10, 12, 14, 16.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned nResolutionIndex: resolution index
int* pWidth, int* pHeight: width/height
Remarks: Toupcam_get_StillResolutionNumber means the number of supported still resolution. Take UCMOS03100KPA as an example, if we call the function Toupcam_get_StillResolutionNumber and get "3", which means it can support three kinds of resolution. If it doesn't support "still snap", then we get "0". Toupcam_get_Resolution gs the width/height of each kind of resolution.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
char sn[32]: buffer to the serial number, such as: TP110826145730ABCD1234FEDC56787
char fwver[16]: buffer to the firmware version, such as: <IP_ADDRESS>40922
char hwver[16]: buffer to the hardware version, such as: 3.12
char pdate[10]: buffer to the production date, such as: 20150327
unsigned short pRevision: revision
Remarks: each camera has a unique serial number with 31 letters, eg,"TP110826145730ABCD1234FEDC56787"
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned nResolutionIndex: resolution index
float* x, float* y: physical pixel size(µm)
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned short iLed: the index of LED light
unsigned short iState: LED status, 1 -> Ever bright; 2 -> Flashing; other -> Off
unsigned short iPeriod: Flashing Period (>= 500ms)
Remarks: One or more LED lights installed on some camera. This function controls the status of these lights.
Return value: HRESULT type means failure or byte(s) transferred
Parameters:
HToupCam h: camera instance handle
unsigned addr: EEPROM address
const unsigned char* pBuffer: data buffer to be written
unsigned char* pBuffer: read EEPROM to buffer
unsigned nBufferLen: buffer length
Remarks: In some cameras, EEPROM is available for read and write. If failed to read or write, a negative HRESULT error code will be return, when success, the bytes number has been read or written will be return.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned index: IO port index
unsigned nType: type of control
int outVal: output control value
int* inVal: input control value
TOUPCAM_IOCONTROTYPE_GET_SUPPORTEDMODE get the supported mode:
0x01->Input
0x02->Output
(0x01 | 0x02)->support both Input and OutputTOUPCAM_IOCONTROTYPE_GET_ALLSTATUS A single bit field indicating the current logical state of all available line signals at time of polling TOUPCAM_IOCONTROTYPE_GET_MODE get current mode, 0x01->Input, 0x02->Output TOUPCAM_IOCONTROTYPE_GET_FORMAT get the format, 0x00->not connected, 0x01->Tri-state, 0x02->TTL, 0x03->LVDS, 0x04->RS422, 0x05->Opto-coupled TOUPCAM_IOCONTROTYPE_SET_FORMAT set the format TOUPCAM_IOCONTROTYPE_GET_INVERTER Enables the signal inverter function TOUPCAM_IOCONTROTYPE_SET_INVERTER Enables the signal inverter function TOUPCAM_IOCONTROTYPE_GET_LOGIC 0x01->Positive, 0x02->Negative TOUPCAM_IOCONTROTYPE_SET_LOGIC 0x01->Positive, 0x02->Negative TOUPCAM_IOCONTROTYPE_GET_MINIMUMOUTPUTPULSEWIDTH minimum signal width of an output signal (in microseconds) TOUPCAM_IOCONTROTYPE_SET_MINIMUMOUTPUTPULSEWIDTH minimum signal width of an output signal (in microseconds) TOUPCAM_IOCONTROTYPE_GET_OVERLOADSTATUS 0x01->Positive, 0x02->Negative TOUPCAM_IOCONTROTYPE_SET_OVERLOADSTATUS 0x01->Positive, 0x02->Negative TOUPCAM_IOCONTROTYPE_GET_PITCH Number of bytes separating the starting pixels of two consecutive lines TOUPCAM_IOCONTROTYPE_SET_PITCH Number of bytes separating the starting pixels of two consecutive lines TOUPCAM_IOCONTROTYPE_GET_PITCHENABLE Number of bytes separating the starting pixels of two consecutive lines. This feature is used to facilitate alignment of image data. TOUPCAM_IOCONTROTYPE_SET_PITCHENABLE Number of bytes separating the starting pixels of two consecutive lines. This feature is used to facilitate alignment of image data. TOUPCAM_IOCONTROTYPE_GET_SOURCE get the source
0->ExposureActive
1->TimerActive
2->UserOutput
3->TriggerReady
4->SerialTx
5->AcquisitionTriggerReadyTOUPCAM_IOCONTROTYPE_SET_SOURCE set the source TOUPCAM_IOCONTROTYPE_GET_STATUS get status TOUPCAM_IOCONTROTYPE_SET_STATUS set status TOUPCAM_IOCONTROTYPE_GET_DEBOUNCERTIME debouncer time in microseconds TOUPCAM_IOCONTROTYPE_SET_DEBOUNCERTIME debouncer time in microseconds
Return value: HRESULT type means failure or byte(s) transferred
Parameters:
HToupCam h: camera instance handle
const unsigned char* pBuffer: data buffer to be written
unsigned char* pBuffer: read buffer
unsigned nBufferLen: buffer length
Remarks: If failed to read or write, a negative HRESULT error code will be return, when success, the bytes number has been read or written will be return.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
PITOUPCAM_EXPOSURE_CALLBACK fnExpoProc, void* pExpoCtx: exposure callback function and callback context. If we set fnExpoProc as NULL, then it means stop calling back.
Remarks: Once we set non-NULL callback function, then callback happens whenever the exposure time changes.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
PITOUPCAM_CHROME_CALLBACK fnChromeProc, void* pChromeCtx: color/gray switches callback function and callback context. If we set fnChromeProc as NULL, then it means stop calling back.
Remarks: once we set non-NULL callback function, then callback happens whenever the color/gray switches, eg, call Toupcam_put_Chrome
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
Remarks: auto Level Range.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
unsigned short aLow[4], unsigned short aHigh[4]: Level Range of R, G, B, and Gray. RGB is only available for color image, and gray is only available for gray image.
Remarks: level range related.
Return value: HRESULT type means success or failure
Parameters:
HToupCam h: camera instance handle
PITOUPCAM_HISTOGRAM_CALLBACK fnHistogramProc, void* pHistogramCtx: callback function and callback context of histogram data.
Remarks: get histogram data.
Toupcam does support .NET development environment (C# and VB.NET).
toupcam.cs in the 'inc' directory use P/Invoke call into toupcam.dll. Copy toupcam.cs to your C# project, please reference demowinformcs1 and demowinformcs2 in the samples directory.
The C# class ToupTek.ToupCam is a thin wrapper class of the native C/C++ API of toupcam.dll, it's properties and methods P/Invoke into the corresponding Toupcam_xxxx functions of toupcam.dll. So, the descriptions of the Toupcam_xxxx function are also applicable for the corresponding C# properties or methods. For example, the C# Snap method call the function Toupcam_Snap, the descriptions of the Toupcam_Snap function is applicable for C# Snap method:
[DllImport("toupcam.dll", ExactSpelling = true, CallingConvention = CallingConvention.StdCall)] private static extern int Toupcam_Snap(SafeHToupCamHandle h, uint nResolutionIndex); public bool Snap(uint nResolutionIndex) { if (_handle == null || _handle.IsInvalid || _handle.IsClosed) return false; return (Toupcam_Snap(_handle, nResolutionIndex) >= 0); } |
VB.NET is similar with C#, not otherwise specified.
Windows: BGR
macOS, Linux: RGB
Parameters Range Default value Get Set Auto Auto Exposure Target 16~235 120 Toupcam_get_AutoExpoTarget Toupcam_put_AutoExpoTarget White Balance Temp/Tint Mode Color Temperature 2000~15000 6503 Toupcam_get_TempTint Toupcam_put_TempTint Toupcam_AwbOnePush Tint 200~2500 1000 RGB Gain Mode Red Gain -127~127 0 Toupcam_get_WhiteBalanceGain Toupcam_put_WhiteBalanceGain Toupcam_AwbInit Green Gain Blue Gain LevelRange 0~255 Low = 0
High = 255Toupcam_get_LevelRange Toupcam_put_LevelRange Toupcam_LevelRangeAuto Contrast -100~100 0 Toupcam_get_Contrast Toupcam_put_Contrast Hue -180~180 0 Toupcam_get_Hue Toupcam_put_Hue Saturation 0~255 128 Toupcam_get_Saturation Toupcam_put_Saturation Brightness -64~64 0 Toupcam_get_Brightness Toupcam_put_Brightness Gamma 20~180 100 Toupcam_get_Gamma Toupcam_put_Gamma Black Level 0~31 (bit depth=8)
0~31 * 4 (bit depth=10)
0~31 * 16 (bit depth=12)
0~31 * 64 (bit depth=14)
0~31 * 256 (bit depth=16)Toupcam_get_Option Toupcam_put_Option
v30: Add TOUPCAM_FLAG_CGHDR
v29: Add ToupcamFrameInfoV2, a group of functions (PullImageV2 and StartPushModeV2), some cameras support frame sequence number and timestamp. Please see here
v28: Add Toupcam_read_Pipe, Toupcam_write_Pipe, Toupcam_feed_Pipe
v27: Add Toupcam_SnapN, support to snap multiple images, please see here and democpp
v26: Add support to restore factory settings, TOUPCAM_OPTION_FACTORY
v25: Add sharpening, TOUPCAM_OPTION_SHARPENING
v24: Add support to Auto Exposure with the 50/60 HZ constraint
v23: Add support to Linux armhf, armel and arm64
Add FFC and DFC, please see here and here
v22: Add TOUPCAM_OPTION_DDR_DEPTH, please see here
v21: Add Toupcam_IoControl
v20: Add Toupcam_EnumV2, ToupcamModelV2, ToupcamInstV2; (Toupcam_Enum, ToupcamModel and ToupcamInst are obsoleted)
Add Pixel Format, see TOUPCAM_OPTION_PIXEL_FORMAT; (TOUPCAM_OPTION_PIXEL_FORMAT is the super set of TOUPCAM_OPTION_BITDEPTH)
Add Flat Field Correction
v19: Add Black Balance: please see here
v18: Add Toupcam_get_Revision
v17: Add TOUPCAM_OPTION_ROTATE
v16: Add TOUPCAM_FLAG_DDR, use very large capacity DDR (Double Data Rate SDRAM) for frame buffer
v15: Add TOUPCAM_OPTION_BINNING
v14: Add support to WinRT / UWP (Universal Windows Platform) / Windows Store App
v13: support row pitch, please see Toupcam_PullImageWithRowPitch and Toupcam_PullStillImageWithRowPitch
v12: support RGB32, 8 bits Gray, 16 bits Gray, please see here
v11: black level: please see here
v10: demosaic method: please see here
v9: change the histogram data type from double to float
v8: support simulated trigger, please see here
v7: support RGB48 when bit depth > 8, please see here
v6: support trigger mode, please see here
v5: White Balance: Temp/Tint Mode vs RGB Gain Mode, please see here
v4: ROI (Region Of Interest) supported: please see here
v3: more bit depth supported: 10bits, 12bits, 14bits, 16bits
v2: support RAW format, please see here and here; support Linux and macOS
v1: initial release
If you have any problems in using this SDK, please use the following information to contact us.
www: www.touptek.com
email: support@touptek.com


I used to post most of my pictures on the now defunct Google+. For a while, I also posted them on Flickr.
I used to maintain dedicated pages for the kids, but maintenance got the best of me. All the pictures are now on Flickr, but the old pages are still up:


This is a placeholder element. To change contents edit the file views/{=controller|plural}/elements/info.html


BoXFP module¶
-
class
BoXFP.
ABIFReader
(fn)¶ -
close
()¶
-
getData
(name, num=1)¶
-
getEntry
(name, num)¶
-
primUnpack
(format, nb)¶
-
readData
(type, num)¶
-
readNextBool
()¶
-
readNextByte
()¶
-
readNextChar
()¶
-
readNextDate
()¶
-
readNextDouble
()¶
-
readNextFloat
()¶
-
readNextInt
()¶
-
readNextLong
()¶
-
readNextShort
()¶
-
readNextString
(size)¶
-
readNextThumb
()¶
-
readNextTime
()¶
-
readNextUnsignedInt
()¶
-
readNextUserData
(type, num)¶
-
readNextcString
()¶
-
readNextpString
()¶
-
seek
(pos)¶
-
showEntries
()¶
-
tell
()¶
-
-
BoXFP.
DM_generator
(data1, data2)¶ Difference map calculations
Parameters: - data1 (array) – First data array
- data2 (array) – Second data array
Returns: data_out_arr (array): Data array of difference maps avers_arr (array): Array of normalisation factors
Return type: (tuple)
-
BoXFP.
DR_windowing
(file_list, TM_peaks, name, top=20, bottom=0, increment=5, windows=10)¶ Performs preprocessing over several ROI windows
Parameters: - file_list (list) – List containg the file names for the datasets in the ensemble
- TM_peaks (list) – List containing all of the size marker peak positions in the datasets
- name (str) – String indicating the common name for the .obj pickle files
- top (int) – The highest peak in the peak list used
- bottom (int) – The lowest peak in the peak lists used
- increment (int) – Integer specifying the number of elution points by which the ROI windows change on either end
- windows (int) – Integer specifying the number of windows to be used.
- Returns – None
-
BoXFP.
RX_calculator_replicates
(partition, data_arr, inds, get_correls=False)¶ Calculate average and standard error of areas and average of signal amplitude
Parameters: - partition (list) – Partitioned footprinting data
- data_arr (list) – Preprocessed datasets in the ensemble
- inds (list) – Indices indicating the locations of the replicates in the ensemble data list
- get_correls (bool) – Specify whether correlations should be calculated
Returns: amp_av (array): Average amplitudes of partitioned data area_av (array): Average peak areas of partitioned data area_sd (array): Standard deviations on areas
Return type: (tuple)
-
BoXFP.
RX_calculator_single
(partition_RX, data_arr, RX)¶ Calculate reactivities of single replicate
Parameters: - Partition_RX (list) – Partitioned footprinting data profile in peakList object
- data_arr (list) – All of the preprocessed datasets in the ensemble
- RX (int) – Index of dataset under investigation
Returns: PeakList object containing calculated peak areas and widths
Return type: (list)
-
BoXFP.
RX_correction
(area_RX, area_BG, scaling)¶ Background correction of reactivities and normalisation
Parameters: - area_RX (array) – Array of areas for treatment
- area_BG (array) – Array of areas for background
- scaling (array) – scaling factors between RX and BG
Returns: area_diff (array): Unnormalised reactivites norm_area_diff (array): Normalised reactivities aver (float): Normalisation factor
Return type: (tuple)
-
BoXFP.
RX_partition_realignment
(partition, bin_alloc1, peak_info1, inds, data_arr1, fl=None, corr_b=0.7, inspect=1000, Cap=None, perc=0.25, tm=0, tm_cutoff=21)¶ Realign partitioned footprinting data based on up to 3 replicates
Parameters: - partition (list) – Partitioned footprinting data produced by RX_partitioning_replicates
- data_arr (list) – All of the datasets in the ensemble
- peak_info1 (list) – Peaklists of footprinting data for all datasets in the ensemble
- inds (int) – Indices in the ensemble indicating the location of the replicates
- data_arr1 (list) – All of the datasets in the ensemble
- fl (list) – File names for the datasets in the ensemble
- corr_b (float) – Correlation value indicating the minimum pairwise pearson correlation considered in realignment process
- ll (int) – Lower limit of elution time points to be considered for size marker trace
- Cap – Maximum peak intensity considered for peak finding function
- perc (float) – Ratio of maximum peak intensity for cutoff
- inspect (int) – Specify a particular dataset that you want to inspect
- tm (bool) – Set to find specific number of peaks
- tm_cutoff (int) – Highest peak marker to consider
Returns: The aligned partitioned footprinted stored as a peakList object
Return type: (list)
-
BoXFP.
RX_partition_realignment_500
(partition, bin_alloc1, peak_info1, inds, data_arr1, fl=None, corr_b=0.7, inspect=1000, Cap=None, perc=0.25, tm=0, tm_cutoff=21, Pn=21)¶ Realign partitioned footprinting data based on up to 3 replicates given ROX 500 size marker set
Parameters: - partition (list) – Partitioned footprinting data produced by RX_partitioning_replicates
- data_arr (list) – All of the datasets in the ensemble
- peak_info1 (list) – Peaklists of footprinting data for all datasets in the ensemble
- inds (int) – Indices in the ensemble indicating the location of the replicates
- data_arr1 (list) – All of the datasets in the ensemble
- fl (list) – File names for the datasets in the ensemble
- corr_b (float) – Correlation value indicating the minimum pairwise pearson correlation considered in realignment process
- ll (int) – Lower limit of elution time points to be considered for size marker trace
- Cap – Maximum peak intensity considered for peak finding function
- perc (float) – Ratio of maximum peak intensity for cutoff
- inspect (int) – Specify a particular dataset that you want to inspect
- tm (bool) – Set to find specific number of peaks
- tm_cutoff (int) – Highest peak marker to consider
- Pn (int) – specific number of peaks to find
Returns: The aligned partitioned footprinted stored as a peakList object
Return type: (list)
-
BoXFP.
RX_partition_realignment_extended
(partition, bin_alloc1, peak_info1, inds, data_arr1, peaks_TM1, corr_b=0.7, inspect=1000, Cap=None, perc=0.25)¶ Realign partitioned footprinting data based on up to 3 replicates with size marker region extended by 10 nucleotides on either side
Parameters: - partition (list) – Partitioned footprinting data produced by RX_partitioning_replicates
- data_arr (list) – All of the datasets in the ensemble
- peak_info1 (list) – Peaklists of footprinting data for all datasets in the ensemble
- inds (int) – Indices in the ensemble indicating the location of the replicates
- data_arr1 (list) – All of the datasets in the ensemble
- Peaks_TM1 (list) – peak positions for size marker traces of the datasets in the ensemble
- corr_b (float) – Correlation value indicating the minimum pairwise pearson correlation considered in realignment process
- Cap – Maximum peak intensity considered for peak finding function
- perc (float) – Ratio of maximum peak intensity for cutoff
- inspect (int) – Specify a particular dataset that you want to inspect
Returns: The aligned partitioned footprinted stored as a peakList object
Return type: (list)
-
BoXFP.
RX_partitioning_replicates
(data_arr, ind, perc, Cap=None, tm=0, ll=0, tm_cutoff=21, fl=None, Pn=21)¶ partition footprinted trace for up to 3 replicates
Partitioning function for the sequencing traces
Parameters: - data_arr (list) – All of the datasets in the ensemble
- ind (int) – Footprint channel in datasets
- fl (list) – File names for the datasets in the ensemble
- ll (int) – Lower limit of elution time points to be considered for size marker trace
- perc (float) – ratio of maximum peak intensity for cutoff
- tm (bool) – Set to find specific number of peaks
- Pn (int) – specific number of peaks to find in peak_finder function
- tm_cutoff (int) – Highest peak marker to consider
Returns: data_out (list): The initial bin allocations for footprinting partition data_out2 (list): The partitioned footprinting data in discrete packets dictated by the size marker regions data_out3 (list): Peaklists of footprinting data for al datasets in the ensemble.
Return type: (tuple)
-
BoXFP.
RX_partitioning_replicates_500
(data_arr, ind, perc, Cap=None, tm=0, ll=0, tm_cutoff=21, fl=None, Pn=21)¶ Partition footprinted trace for up to 3 replicates given ROX 500 size marker set
Partitioning function for the sequencing traces
Parameters: - data_arr (list) – All of the datasets in the ensemble
- ind (int) – Footprint channel in datasets
- fl (list) – File names for the datasets in the ensemble
- ll (int) – Lower limit of elution time points to be considered for size marker trace
- perc (float) – ratio of maximum peak intensity for cutoff
- tm (bool) – Set to find specific number of peaks
- Pn (int) – specific number of peaks to find in peak_finder function
- tm_cutoff (int) – Highest peak marker to consider
Returns: data_out (list): The initial bin allocations for footprinting partition data_out2 (list): The partitioned footprinting data in discrete packets dictated by the size marker regions data_out3 (list): Peaklists of footprinting data for al datasets in the ensemble.
Return type: (tuple)
-
BoXFP.
RX_partitioning_replicates_extended
(data_arr, ind, perc, Cap=None, ll=0, tm=0)¶ partition footprinted trace for up to 3 replicates with extension of 10 nucleotides either side of the trace.
Partitioning function for the sequencing traces
Parameters: - data_arr (list) – All of the datasets in the ensemble
- ind (int) – Footprint channel in datasets
- fl (list) – File names for the datasets in the ensemble
- ll (int) – Lower limit of elution time points to be considered for size marker trace
- perc (float) – ratio of maximum peak intensity for cutoff
- tm (bool) – Set to find specific number of peaks
Returns: data_out (list): The initial bin allocations for footprinting partition data_out2 (list): The partitioned footprinting data in discrete packets dictated by the size marker regions data_out3 (list): Peaklists of footprinting data for al datasets in the ensemble.
Return type: (tuple)
-
BoXFP.
RX_partitioning_single
(data_arr, ind, file_list, ll=0, perc=0.25, tm=False, tm_cutoff=21)¶ partition footprinted trace for single replicates
Partitioning function for the sequencing traces
Parameters: - data_arr (list) – All of the datasets in the ensemble
- ind (int) – Footprint channel in datasets
- file_list (list) – File names for the datasets in the ensemble
- ll (int) – Lower limit of elution time points to be considered for size marker trace
- perc (float) – ratio of maximum peak intensity for cutoff
- tm (bool) – Set to find specific number of peaks
- tm_cutoff (int) – Highest peak marker to consider
Returns: data_out (list): The partitioned footprinted data traces in numpy.ndarray format data_out2 (list): The partitioned footprinted data traces peakList format
Return type: (tuple)
-
BoXFP.
RX_partitioning_single_500
(data_arr0, ind, file_list, ll=0, perc=0.25, tm=0, tm_cutoff=21, Pn=21, Cap=None)¶ partition footprinted trace for single replicates using ROX 500 size marker set
Partitioning function for the sequencing traces
Parameters: - data_arr (list) – All of the datasets in the ensemble
- ind (int) – Footprint channel in datasets
- file_list (list) – File names for the datasets in the ensemble
- ll (int) – Lower limit of elution time points to be considered for size marker trace
- perc (float) – ratio of maximum peak intensity for cutoff
- tm (bool) – Set to find specific number of peaks
- tm_cutoff (int) – Highest peak marker to consider
Returns: data_out (list): The partitioned footprinted data traces in numpy.ndarray format data_out2 (list): The partitioned footprinted data traces peakList format
Return type: (tuple)
-
BoXFP.
S1_partitioning
(data_arr, ind)¶ Partitioning function for the sequencing traces
Parameters: - data_arr (list) – All of the datasets in the ensemble
- ind (int) – Sequence channel in data for consideration
Returns: Partitioned sequence trace peaks for all the datasets in the ensemble
Return type: (list)
-
BoXFP.
accuracy_measure
(seq_arr, vote_arr)¶ calculates the accuracy of the sequence alignment
Parameters: - seq_arr (array) – Binary representation of
- sequence –
- vote_arr (array) – Binary consensus sequence from data
Returns: accuracy of consensus sequence
Return type: (float)
-
BoXFP.
barcode_generator
(array)¶ Barcode generator
Parameters: array (array) – Profile of the partition footprinting data Returns: Barcode based on profile Return type: (str)
-
BoXFP.
coarse_grainer
(array)¶ coarse grained profile generator
Parameters: array (array) – Profile of the partition footprinting data Returns: coarse graining of profile Return type: (array)
-
BoXFP.
correl_assessor
(data_arr, ind)¶ correlation matrix determination
Parameters: - data_arr (list) – Datasets in the ensemble
- ind (int) – Index specifying the trace under investigation
Returns: correl_list (array): list of correlation values correl_mat (array): matrix correlation values
Return type: (tuple)
-
BoXFP.
count_correl_above
(correl_mat, limit)¶ count numbers of correlation matrix elements above a certain threshold
Parameters: - correl_mat (array) – Matrix correlation values
- limit – Threshold for counting
Returns: Percentage of correlations above the limit
Return type: (float)
-
BoXFP.
data_reader
(file_list, top, bottom)¶ Generic data reader
Parameters: - file_list (list) – List of the file names for datasets in the ensembles
- top (int) – The highest elution time point in the region of interest
- bottom – the lowest elution time point in the region of interest
Returns: List containing the chromatograph datasets from the ensemble
Return type: (list)
-
BoXFP.
data_tidy
(data, top, bottom)¶ Remove all data not in the region of interest (ROI)
Parameters: - data (array) – Data array containing the electropherogram data
- top (int) – Integer specifying the highest elution time point for the ROI
- bottom (int) – Integer specifying the lowest elution time point for the ROI
Returns: data array containing the electropherogram data for the ROI only
Return type: (array)
-
BoXFP.
distance_determiner
(arr1, arr2)¶ Distance calculator between different nucleotide positions
Parameters: - arr1 (array) – first array of indices
- arr2 (array) – Second array of indices
Returns: distances between the selected indices in the two arrays
Return type: (array)
-
BoXFP.
error_propagation
(arr1, arr2)¶ Trigonometric error propogation
Parameters: - arr1 (array) – First array of errors
- arr2 (array) – Second array of errors
Returns: Combined errors
Return type: (array)
-
BoXFP.
final_realignment
(new_traces2, data_arr1, starts, ends, bins1, inds1, labs, corr=0.95, corr_b=0.7, inspect=False)¶ Final realignment wrapper function (only called by RX_realignment functions)
Parameters: - new_traces2 (list) – List containing partitioned footprinting data package between size marker positions
- data_arr1 (list) – All of the datasets in the ensemble
- starts (list) – Size marker peaks at the start of the packaged region for each replicate
- ends (list) – Size marker peaks at the end of the packaged region for each replicate
- inds1 (int) – Indices in the ensemble indicating the location of the replicates
- data_arr1 – All of the datasets in the ensemble
- labs (list) – Replicate labels
- corr (float) – Starting correlation value for alignment process
- corr_b (float) – Correlation value indicating the minimum pairwise pearson correlation considered in realignment process
- inspect (bool) – Specify whether inspection of data is required
Returns: The aligned partitioned footprinted data for each replicate in the specific part of size marker region.
Return type: (list)
-
BoXFP.
findStdW
(peakX, rate=0.33)¶ Find standard deviation of peak widths
Parameters: - peakX (array) – array of peak positions
- rate (float) – central percentage of ordered peak widths to calculate standard deviations over
Returns: standard deviations of widths
Return type: (float)
-
BoXFP.
find_DTW_match
(align_data, data)¶ Find optimal dynamic time warp (DTW) path
Parameters: - align_data (array) – Dataset of chromatograph data to align the second dataset too.
- data (array) – Second chromatograph dataset
Returns: linkX0 (array): Array containing the warping path for the alignment dataset linkX1 (array): Array containing the warping path for the secondary dataset
Return type: (tuple)
-
BoXFP.
find_first
(a, b)¶ Find the first occurence of sub array on array :param a: Larger array :type a: array :param b: sub array :type b: array
Returns: first postion of array where sub array occurs Return type: (int)
-
BoXFP.
find_nearest_ind
(array, value)¶ Find the nearest peak to a particular position
Parameters: - array (array) – Array of peak positions
- value (float) – Particular position
Returns: The position of the nearest peak
Return type: (int)
-
BoXFP.
find_peak_match_X
(align_data, data, gap=-0.2)¶ Alignment of two datasets based on peak matching
Parameters: - align_data (array) – Chromatograph data used for alignment
- data (array) – Chromatograph data to be realigned
Returns: linkX0 (array): Array containing the warping path for the alignment dataset linkX1 (array): Array containing the warping path for the secondary dataset
Return type: (tuple)
-
BoXFP.
fit_shape_gauss
(dPeakList, data, isOptPos=True, controlA=None)¶ Calculate the reactivities for each peak in the footprinting data
Parameters: - dPeakList (list) – peakList object containing footprinting data
- data (array) – Corresponding preprocesed
- dataset –
- isOptPos (bool) – Specify whether position should be optimised
- controlA (float) – control values for optimizePosition function
Returns: peak information with reactivities (peak areas) calculated
Return type: (list)
-
BoXFP.
fr_subprocess
(new_traces2, data_arr1, starts, ends, bins1, inds1, labs, corr=0.95, corr_b=0.7, inspect=False)¶ Final realignment sub process (only called by final_realignment wrapper function)
Parameters: - new_traces2 (list) – List containing partitioned footprinting data package between size marker positions
- data_arr1 (list) – All of the datasets in the ensemble
- starts (list) – Size marker peaks at the start of the packaged region for each replicate
- ends (list) – Size marker peaks at the end of the packaged region for each replicate
- bins1 (array) – number of bins (i.e. number of nucleotides between size markers) expected in each part of the size marker set.
- inds1 (int) – Indices in the ensemble indicating the location of the replicates
- data_arr1 – All of the datasets in the ensemble
- labs (list) – Replicate labels
- corr (float) – Starting correlation value for alignment process
- corr_b (float) – Correlation value indicating the minimum pairwise pearson correlation considered in realignment process
- inspect (bool) – Specify whether inspection of data is required
Returns: The aligned partitioned footprinted data for each replicate in the specific part of size marker region.
Return type: (list)
-
BoXFP.
gaussian_sequence_trace
(bin_data_arr)¶ convert binary array into gaussian trace
Parameters: bin_data_arr (array) – binary array Returns: x (array): x positions of trace trace_arr (array): Gaussian profile generated Return type: (tuple)
-
BoXFP.
get_cov
(array1, array2)¶ Calculate correlation between two arrays
Parameters: - array1 (array) – First array
- array2 (array) – Second array
Returns: correlation value
Return type: (float)
-
BoXFP.
indexes
(string, character='-')¶ Determine the insertion points from aligned sequences
Parameters: - string (str) – The aligned barcodes
- character (chr) – the character to find
Returns: indices where the chosen characters occurs
Return type: (array)
-
BoXFP.
mobility_shift
(data_arr)¶ Mobility shift between footprinting trace and the ddA sequence trace
Parameters: data_arr (list) – List containing the preprocessed chromatograph data Returns: List containg the mobility shift corrected chromatograph data Return type: (list)
-
BoXFP.
nan_remover
(arr, start, end)¶ Remove nans and zero values from peak position lists.
Parameters: - arr (arr) – Array of values
- start (int) – Size marker peak at the start of the packaged region
- end (int) – Size marker peak at the end of the packaged region
Returns: Peak positions with nan and zero values removed
Return type: (arr)
-
BoXFP.
normalise
(data)¶ Normalise data
Parameters: data (array) – Array containing unnormalised data profile Returns: Array containing normalised data profile Return type: (array)
-
BoXFP.
notindexes
(string, character='-')¶ Determine the non insertion points from aligned sequences
Parameters: - string (str) – The aligned barcodes
- character (chr) – the character to find
Returns: indices where the chosen characters does not occur
Return type: (array)
-
BoXFP.
nw_align
(bars, bins, labels)¶ Needleman-Wunsch alignment of barcodes
Parameters: - bars (list) – Barcodes for partitioned footprint data before alignment
- bins (array) – Number of bins (i.e. number of nucleotides between size markers) expected in each part of the size marker set
- labels (list) – Replicate labels
Returns: output (list): Aligned barcodes lens_out (list): Number of aligned barcodes generated for each replicate
Return type: (tuple)
-
BoXFP.
peak_diffs
(peak_arr)¶ Calculate differences between adjacent peak positions
Parameters: peak_arr (list) – Peak lists for the datasets in ensemble Returns: peak_diff_av (array): Average distances between peaks in ensemble peak_diff_arr (list): All the peak differences for the entire ensemble Return type: (tuple)
-
BoXFP.
peak_finder
(data_arr, ind, perc, TM=0, pn=21, cap=None, lower_limit=0)¶ Peak finding function
Parameters: - data_arr (list) – List containing the chromatograph data
- ind (int) – Integer specifying the trace channel
- perc (float) – Ratio of max peak intensity used as cutoff criterion
- TM (int) – Set to find the specific number of peaks
- pn (int) – Specific number of peaks to find
- cap (int) – Cap specifying the highest peak amplitude considered in peak finding
- limit (lower) – Lowest elution time point considered in peak finding
Returns: List of recorded peak values for each dataset
Return type: (list)
-
BoXFP.
position_vote
(partition_data, cut1, cut2, plot=0, clip=350)¶ position voting over the ensemble
Parameters: - partition_data (list) – Partitioned sequence traces across ensemble
- cut1 (float) – Value of first cutoff used to convert each partitioned trace into a binary sequence
- cut2 (float) – Threshold ratio for voting
Returns: correl_return (float): mean correlation between binary arrays in ensemble ballot_box (array): Consensus binary array
Return type: (tuple)
-
BoXFP.
preprocess
(data_arr, smooth=4, TM_smooth=1)¶ preprocess chromatographs
Parameters: - data_arr (list) – List containing the raw chromotograph data
- smooth (int) – Width of triangular smoothing of main data traces
- TM_smooth (int) – Width of triangular smoothing for size marker
Returns: List containing the processed chromatograph data
Return type: (list)
-
BoXFP.
raw_trace_plotter
(file_list)¶ plots the raw electropherograms to pngs
Parameters: file_list (list) – list of all the data files in the ensemble Returns: None
-
BoXFP.
readABI
(dir_list)¶ Read ABIF files for output into other forms
Parameters: dir_list (list) – list of datafiles Returns: array of unpacked data Return type: (array)
-
BoXFP.
remove_outliers
(x, y, outlierConstant=1.5)¶ Remove outliers from trace based on amplitude
Parameters: - x (array) – Array containing x coordinates of trace
- y (array) – Array containing y coordinates of trace
- outlierConstant (float) – IQR multiplier used for outlier determination
Returns: resultListx (array): Array of x coordinates in trace with outliers removed
resultListy (array): Array of y coordinates in trace with outliers removed
Return type: (tuple)
-
BoXFP.
renormalisation
(area_arr)¶ Renormalises data for two or more reactivity datasets
Parameters: area_arr (list) – area arrays to be combined Returns: new_area_arr (list): Normalised reactivities for datasets supplied new_aver (array): Normalisation factors produced Return type: (tuple)
-
BoXFP.
seq_to_bin
(seq_arr, nuc='T')¶ convert sequence array to binary based on nucleotide
Parameters: - seq_arr (str) – Nucleotide sequence
- nuc (chr) – The nucleotide under investigation
Returns: binary representation of sequence
Return type: (array)
-
BoXFP.
sequence_content
(seq_file, nuc='T')¶ determine content of a specific nucleotide
Parameters: - seq_file (str) – Name of reference sequence fasta file
- nuc (chr) – The nucleotide under investigation
Returns: Percentage of the target nucleotide in sequence
Return type: (float)
-
BoXFP.
sequence_converter_gaussians
(seq_file, letter1='T', letter2='C', height1=100.0, height2=50.0, width=2.0, low_height=10.0, sep=10, plot=True)¶ Convert nucleotide sequence into profile of gaussians
Parameters: - seq_file (str) – The path of the reference genome fasta file
- letter1 (chr) – The nucleotide associated with the higher gaussian
- letter2 (chr) – The nucleotide associated with the medium gaussian
- height1 (float) – The amplitude of the highest gaussian
- height2 (float) – The amplitude of the medium gaussian
- width (float) – The width of the gaussians
- low_height (float) – The amplitude of gaussians associated with the non specific nucleotides
- sep (float) – The distances between the centres of gaussians in the profile
Returns: seq_arr (np.ndarray): guassian profile nt_arr (np.ndarray): locations of nucleotides across profile
Return type: (tuple)
-
BoXFP.
sequence_search
(seq_file, ballot_box, top=10000, bottom=0, Nuc='T')¶ sequence searching function
Parameters: - seq_file (str) – Name of reference sequence fasta file
- ballot_box (array) – Consensus binary representation of sequence from data
- top (int) – Highest nucleotide position considered
- bottom (int) – Lowest nucleotide position considered
- Nuc (chr) – The nucleotide under investigation
Returns: signif (float): Z score for maximum correlation value corr_argmax (int): Index for max correlation corr_max (float): Max correlation
Return type: (tuple)
-
BoXFP.
sequence_search_area
(seq_file, ballot_box, start, window, Nuc='T')¶ sequence searching function over specific area
Parameters: - seq_file (str) – Name of reference sequence fasta file
- ballot_box (array) – Consensus binary representation of sequence from data
- start (int) – start of rejoin to scan over
- window (int) – size of area to search over
- Nuc (chr) – The nucleotide under investigation
Returns: signif (float): Z score for maximum correlation value corr_argmax (int): Index for max correlation corr_max (float): Max correlation
Return type: (tuple)
-
BoXFP.
sequence_snapshots
(xcoord, ycoord, yerr, col, window=100, virus='', primer='', condition='', treatment='', diff=False)¶ Produces snapshots reactivity profile in primer region
Parameters: - xcoord (array) – xcoordinates of reactivity data
- ycoord (array) – ycoordinates of reactivity data
- yerr (array) – Errors on reactivities
- col (chr) – Colour used for
- window (int) – Window size for snapshots
- virus (str) – Virus under investigation
- primer (str) – Primer used
- condition (str) – Treatment condition
- treatment (str) – treatment exposure time
- diff (bool) – specify whether difference map is being plotted
Returns: None
-
BoXFP.
shoulder_finder
(peak_arr, data, ind, i)¶ Find shoulders in a trace
Parameters: - peak_arr (list) – peakList object containing peaks in investigated trace
- data (array) – Dataset under investigation
- ind (int) – index in the ensemble for the dataset under investigation
Returns: shoulder positions and amplitudes
Return type: (array)
-
BoXFP.
signal_alignment
(data, align_data, move1, move2, fifcorr=True)¶ Align traces in chromatographs to each other based on trace alignment sequence outlined in trace_align
Parameters: - data (array) – data array containing chromatograph data
- align_data (array) – data array containing chromotograph data used for alignment
- move1 (array) – Sequence of warping path used on the non align dataset
- move2 (array) – Sequence of warping path used on the align dataset
- fifcorr (bool) – Use correlations in alignment process
Returns: array of data for first dataset aligned to the second
Return type: (array)
-
BoXFP.
signal_assessor
(dir_list)¶ Signal assessment function
Parameters: dir_list (list) – list of datafiles Returns: None
-
BoXFP.
signif_assessor
(data_arr)¶ Calculate Z-score of max value
Parameters: data_arr (array) – array of correlation values Returns: Z-score of max correlation value Return type: (float)
-
BoXFP.
sm_plotter
(data_arr, TM_peaks, file_list)¶ Plot size marker traces and positions of size markers determined by peak_finder
Parameters: - data_arr (list) – Datasets in the ensemble
- TM_peaks (list) – Size marker peak positions
- file_list (list) – file names of datasets in the ensemble
Returns: None
-
BoXFP.
trace_align
(data_arr, ind, ref, samp=False, ifmob=True, ifdtw=True, ifpeak=True, gap1=-0.2)¶ Aligns traces to each other according to a reference data_set (align_data) and specific trace [ind]
Parameters: - data_arr (list) – list containing all of the datasets in the ensemble
- ind (int) – integer specifying the trace used for the alignment process
- ref – reference dataset used for alignment
- samp (bool) – specify whether a sample of the ensemble should be used instead of the whole ensemble
- ifmob (bool) – specify whether mobility shift should be performed
- ifdtw (bool) – specify whether dynamic time warp should be performed
- ifpeak (bool) – specify whether peak aliggment should be performed
- gap1 (float) – gap penalty
Returns: List containing the ensemble with all datasets aligned to each other
Return type: (list)
-
BoXFP.
trace_align2
(spaces, new_array)¶ Partitioned data alignment process for 2 replicates (secondary function)
Parameters: - spaces (list) – unaligned partitioned footprinting data for each replicate
- new_array (list) – List containing new NW alignments for each replicate
Returns: The aligned partitioned footprinted data for each replicate in the specific part of size marker region.
Return type: (list)
-
BoXFP.
trace_align3
(spaces, new_array)¶ Partitioned data alignment process for 3 replicates (secondary function)
Parameters: - spaces (list) – unaligned partitioned footprinting data for each replicate
- new_array (list) – List containing new NW alignments for each replicate
Returns: The aligned partitioned footprinted data for each replicate in the specific part of size marker region.
Return type: (list)
-
BoXFP.
trace_align3_v2
(spaces, new_array, data_arr, inds, bins, starts, ends, peak_inds, inspect=False)¶ Partitioned data alignment process for 3 replicates (secondary function)
Parameters: - spaces (list) – Unaligned partitioned footprinting data for each replicate
- new_array (list) – List containing new NW alignments for each replicate
- data_arr (list) – All the preprocessed data in the ensemble
- inds (list) – Indices indicating the positions of the replicates in the ensemble list
- bins (array) – number of bins (i.e. number of nucleotides between size markers) expected in each part of the size marker set.
- starts (list) – Size marker peaks at the start of the packaged region for each replicate
- ends (list) – Size marker peaks at the end of the packaged region for each replicate
- peak_inds (int) – Position of bins with assigned peaks before realignment.
- inspect (bool) – Specify whether inspection of data is required
Returns: The aligned partitioned footprinted data for each replicate in the specific part of size marker region.
Return type: (list)
-
BoXFP.
travel_determiner
(arr1, arr2)¶ Calculate distance that a peak has shifted following realignment
Parameters: - arr1 (array) – Initial positions of peaks
- arr2 (array) – Positions of peaks post alignment
Returns: Distances travelled in nucleotides by peaks
Return type: (array)
-
BoXFP.
write_out_raw_csv
(data_bloc, data_list)¶ Writes out the CSV data from the raw FSA file
Parameters: - data_bloc (array) – Array of unpacked data from ABIF files
- data_list (list) – List of data file names
Returns: None


Rails 7.0.7 (August 09, 2023)
- No changes.
Rails 7.0.6 (June 29, 2023)
Fix retrieving rotation value from FFmpeg on version 5.0+.
In FFmpeg version 5.0+ the rotation value has been removed from tags. Instead the value can be found in side_data_list. Along with this update it's possible to have values of -90, -270 to denote the video has been rotated.
Haroon Ahmed
Rails <IP_ADDRESS> (June 26, 2023)
- No changes.
Rails 7.0.5 (May 24, 2023)
- No changes.
Rails <IP_ADDRESS> (March 13, 2023)
- No changes.
Rails <IP_ADDRESS> (January 24, 2023)
- No changes.
Rails <IP_ADDRESS> (January 17, 2023)
- No changes.
Rails 7.0.4 (September 09, 2022)
Fixes proxy downloads of files over 5MiB
Previously, trying to view and/or download files larger than 5mb stored in services like S3 via proxy mode could return corrupted files at around 5.2mb or cause random halts in the download. Now,
ActiveStorage::Blobs::ProxyController
correctly handles streaming these larger files from the service to the client without any issues.Fixes #44679
Felipe Raul
Rails <IP_ADDRESS> (July 12, 2022)
- No changes.
Rails 7.0.3 (May 09, 2022)
Don't stream responses in redirect mode
Previously, both redirect mode and proxy mode streamed their responses which caused a new thread to be created, and could end up leaking connections in the connection pool. But since redirect mode doesn't actually send any data, it doesn't need to be streamed.
Luke Lau
Rails <IP_ADDRESS> (April 26, 2022)
- No changes.
Rails <IP_ADDRESS> (March 08, 2022)
Added image transformation validation via configurable allow-list.
Variant now offers a configurable allow-list for transformation methods in addition to a configurable deny-list for arguments.
[CVE-2022-21831]
Rails <IP_ADDRESS> (February 11, 2022)
- No changes.
Rails <IP_ADDRESS> (February 11, 2022)
- No changes.
Rails 7.0.2 (February 08, 2022)
Revert the ability to pass
service_name
param toDirectUploadsController
which was introduced in 7.0.0.That change caused a lot of problems to upgrade Rails applications so we decided to remove it while in work in a more backwards compatible implementation.
Gannon McGibbon
Allow applications to opt out of precompiling Active Storage JavaScript assets.
jlestavel
Rails 7.0.1 (January 06, 2022)
- No changes.
Rails 7.0.0 (December 15, 2021)
Support transforming empty-ish
has_many_attached
value into[]
(e.g.[""]
<EMAIL_ADDRESS>= [""] @user.highlights # => []
Sean Doyle
Rails 7.0.0.rc3 (December 14, 2021)
- No changes.
Rails 7.0.0.rc2 (December 14, 2021)
- No changes.
Rails 7.0.0.rc1 (December 06, 2021)
Add ActiveStorage::Blob.compose
to concatenate multiple blobs.Gannon McGibbon
Setting custom metadata on blobs are now persisted to remote storage.
joshuamsager
Support direct uploads to multiple services.
Dmitry Tsepelev
Invalid default content types are deprecated
Blobs created with content_type
image/jpg
,image/pjpeg
,image/bmp
,text/javascript
will now produce a deprecation warning, since these are not valid content types.These content types will be removed from the defaults in Rails 7.1.
You can set
config.active_storage.silence_invalid_content_types_warning = true
to dismiss the warning.Alex Ghiculescu
Rails 7.0.0.alpha2 (September 15, 2021)
- No changes.
Rails 7.0.0.alpha1 (September 15, 2021)
Emit Active Support instrumentation events from Active Storage analyzers.
Fixes #42930
Shouichi Kamiya
Add support for byte range requests
Tom Prats
Attachments can be deleted after their association is no longer defined.
Fixes #42514
Don Sisco
Make
vips
the default variant processor for new apps.See the upgrade guide for instructions on converting from
mini_magick
tovips
.mini_magick
is not deprecated, existing apps can keep using it.Breno Gazzola
Deprecate
ActiveStorage::Current.host
in favor ofActiveStorage::Current.url_options
which accepts a host, protocol and port.Santiago Bartesaghi
Allow using IAM when signing URLs with GCS.
gcs: service: GCS ... iam: true
RRethy
OpenSSL constants are now used for
Digest
computations.Dirkjan Bussink
Deprecate
config.active_storage.replace_on_assign_to_many
. Future versions ofRails
will behave the same way as when the config is set totrue
.Santiago Bartesaghi
Remove deprecated methods:
build_after_upload
,create_after_upload!
in favor ofcreate_and_upload!
, andservice_url
in favor ofurl
.Santiago Bartesaghi
Add support of
strict_loading_by_default
toActiveStorage::Representations
controllers.Anton Topchii, Andrew White
Allow to detach an attachment when record is not persisted.
Jacopo Beschi
Use libvips instead of ImageMagick to analyze images when
active_storage.variant_processor = vips
.Breno Gazzola
Add metadata value for presence of video channel in video blobs.
The
metadata
attribute of video blobs has a new boolean key namedvideo
that is set totrue
if the file has an video channel andfalse
if it doesn't.Breno Gazzola
Deprecate usage of
purge
andpurge_later
from the association extension.Jacopo Beschi
Passing extra parameters in
ActiveStorage::Blob#url
to S3 Client.This allows calls of
ActiveStorage::Blob#url
to have more interaction with the S3 Presigner, enabling, amongst other options, custom S3 domain URL Generation.blob = ActiveStorage::Blob.last blob.url # => https://<bucket-name>.s3.<region>.amazonaws.com/<key> blob.url(virtual_host: true) # => # => https://<bucket-name>/<key>
josegomezr
Allow setting a
Cache-Control
on files uploaded to GCS.gcs: service: GCS ... cache_control: "public, max-age=3600"
maleblond
The parameters sent to
ffmpeg
for generating a video preview image are now configurable underconfig.active_storage.video_preview_arguments
.Brendon Muir
The ActiveStorage video previewer will now use scene change detection to generate better preview images (rather than the previous default of using the first frame of the video). This change requires FFmpeg v3.4+.
Jonathan Hefner
Add support for
ActiveStorage
expiring URLs.rails_blob_path(user.avatar, disposition: "attachment", expires_in: 30.minutes) <%= image_tag rails_blob_path(user.avatar.variant(resize: "100x100"), expires_in: 30.minutes) %>
If you want to set default expiration time for ActiveStorage URLs throughout your application, set
config.active_storage.urls_expire_in
.aki77
Allow to purge an attachment when record is not persisted for
has_many_attached
.Jacopo Beschi
Add
with_all_variant_records
method to eager load all variant records on an attachment at once.with_attached_image
scope now eager loads variant records if using variant tracking.Alex Ghiculescu
Add metadata value for presence of audio channel in video blobs.
The
metadata
attribute of video blobs has a new boolean key namedaudio
that is set totrue
if the file has an audio channel andfalse
if it doesn't.Breno Gazzola
Adds analyzer for audio files.
Breno Gazzola
Respect Active Record's primary_key_type in Active Storage migrations.
fatkodima
Allow
expires_in
forActiveStorage
signed ids.aki77
Allow to purge an attachment when record is not persisted for
has_one_attached
.Jacopo Beschi
Add a load hook called
active_storage_variant_record
(providingActiveStorage::VariantRecord
) to allow for overriding aspects of theActiveStorage::VariantRecord
class. This makesActiveStorage::VariantRecord
consistent withActiveStorage::Blob
andActiveStorage::Attachment
that already have load hooks.Brendon Muir
::ActiveStorage::PreviewError
is raised when a previewer is unable to generate a preview image.Alex Robbin
Add
ActiveStorage::Streaming
module that can be included in a controller to get access to#send_blob_stream
, which wraps the newActionController::Base#send_stream
method to stream a blob from cloud storage:class MyPublicBlobsController < ApplicationController include ActiveStorage::SetBlob, ActiveStorage::Streaming def show http_cache_forever(public: true) do send_blob_stream @blob, disposition: params[:disposition] end end end
DHH
Add ability to use pre-defined variants.
class User < ActiveRecord::Base has_one_attached :avatar do |attachable| attachable.variant :thumb, resize: "100x100" attachable.variant :medium, resize: "300x300", monochrome: true end end class Gallery < ActiveRecord::Base has_many_attached :photos do |attachable| attachable.variant :thumb, resize: "100x100" attachable.variant :medium, resize: "300x300", monochrome: true end end <%= image_tag user.avatar.variant(:thumb) %>
fatkodima
After setting
config.active_storage.resolve_model_to_route = :rails_storage_proxy
rails_blob_path
andrails_representation_path
will generate proxy URLs by default.Ali Ismayilov
Declare
::ActiveStorage::FixtureSet
and ActiveStorage::FixtureSet.blob to improve fixture integration.Sean Doyle
Please check [6-1-stable]) for previous changes.


Rent a home in just
a few clicks.
Browse over 10,000
Listings in your area.
Sign up with Facebook
Sign up with Email
Already have an account?
Log in


Lab: Allocator for xv6
For this lab we have replaced the page allocator in the xv6 kernel with a buddy
allocator. You will modify xv6 to use this allocator to allocate and free file
structs so that xv6 can have more open file descriptors than the
existing system-wide limit NFILE. Furthermore, you will
implement an optimization that reduces the buddy's use of memory.
You are done if your modified kernel passes both alloctest and
usertests.
To start the lab, switch to the alloc branch:
$ git fetch
$ git checkout alloc
The only files you should change in this lab are kernel/buddy.c and
kernel/file.c.
The problem
xv6 has only a page allocator and cannot dynamically allocate
objects smaller than a page. To work around this limitation, xv6
declares objects smaller than a page statically. For example, xv6
declares an array of file structs, an array of proc structures, and so
on. As a result, the number of files the system can have open is
limited by the size of the statically declared file array, which
has NFILE entries (see kernel/file.c and kernel/param.h).
The solution
The solution is to adopt the buddy allocator
from the allocator lecture, which we have
added to xv6 in kernel/buddy.c and kernel/list.c.
Your job
Your job is to further improve xv6's memory allocation in two ways:
- Modify kernel/file.c to use the
buddy allocator so that the number of file structures is limited by
memory rather than NFILE.
- The buddy allocator is space inefficient. The alloc
array has a bit for each block for each size. There is a clever
optimization that reduces the cost to only one bit for each pair of
blocks. This single bit is B1_is_free XOR B2_is_free, for a buddy
pair of blocks B1 and B2. Each time a block is allocated or
freed, you flip the bit to reflect the change. For example, if B1
and B2 are allocated, the bit will be zero and if B1 is freed the
bit changes to 1. If the bit is 1 and B2 is freed, then we know
that B1 and B2 should be merged. Saving 1/2 bit per block matters
when xv6 uses the buddy allocator for the roughly 128 Mbyte of
free memory that xv6 must manage: this optimization saves about 1
MByte of memory.
The alloctest program
To help you test your implementation, we've provided an xv6 program
called alloctest (source in user/alloctest.c). It has two
tests.
The first test allocates more than NFILE
file structures by creating many processes, each opening many file
descriptors. The first test will fail on unmodified xv6.
The second test creates a
process that allocates as much memory as possible, and fails
if less than a certain amount is available.
It's effectively a test to see how much memory the kernel is using.
The test will fail with the unoptimized buddy
allocator that we have given you.
When you are done, your kernel should be able to run both alloctest
and usertests. That is:
$ alloctest
filetest: start
filetest: OK
memtest: start
memtest: OK
$ usertests
...
ALL TESTS PASSED
$
Hints
You'll want to remove line 19 in kernel/file.c, which
declares file[NFILE]. Instead, allocate struct
file in filealloc using bd_malloc.
In fileclose you will free the allocated memory. Note that
you can simplify fileclose, because ff isn't
needed.
fileclose still needs to acquire ftable.lock
because the lock protects f->ref.
bd_malloc doesn't clear the memory it returns;
instead, allocated memory starts out with whatever content
it had from its last use.
Callers should not assume that it starts out containing zeroes.
You can use bd_print to print the state of the
allocator.
Compared to the lecture notes, we have
modified bd_init so that it is
called with the range of physical memory
available for allocation.
bd_init allocates
memory for the buddy data structures from that memory.
It initializes its data structures
accordingly: bd_init marks memory that is used for buddy
data structures as allocated so that it won't be
re-allocated. Furthermore, we have modified bd_init to handle
an amount of memory that isn't a power of 2 by marking unavailable memory as
allocated. Finally, we modified the buddy allocator to serialize
concurrent calls to it using a lock.
This completes the lab. Commit your changes and type make
handin in the lab directory to hand in your lab.
Optional challenge
Dynamically allocate other data structures in xv6 that are
statically allocated. Some require significant amount of changes
(e.g., dynamically allocating proc structures), but others are
simple.


When it comes to databases, most people are probably familiar with SQL databases. However, over the last few years, a new kind of database, called the NoSQL database, has been gaining popularity. What are the differences between the two? What are the benefits of each?
An SQL database is a relational database. It is table-based, meaning data is stored in tables. These tables are made up of columns and rows. A NoSQL database is a non-relational database. Data can be stored as documents, key-value pairs, graphs, and columns. SQL databases use SQL as the standard language for queries. NoSQL databases do not have a standard language (any language can be used including SQL). SQL databases have predefined schemas while NoSQL databases have dynamic schemas which don't need to be predefined. In terms of dealing with increased loads, both SQL and NoSQL databases can be scaled vertically by increasing the power of the hardware (CPU, RAM, etc) on a single server. NoSQL databases can also scale horizontally by increasing the number of servers to deal with larger loads.
Benefits of SQL
Benefits of NoSQL


Our prime goal is to create a platform for hearing/speech impaired people, which they can use to communicate smoothly at any circumstance.
Make Your Own Sign
The user records his gestures into the model with the help of a camera, and then label that particular gesture.
Practice Your Skills
When the user communicates with an oppositite party using sign language, the pre-trained model then uses the recorded gestures to relay the desired message in the form of text or speech to the receiver.
The Model currently supports 21 alphabets/words signs in ASL , It can be used by beginner user to practice his skills against pre-trained model.
Learn New Stuffs
Tutorials are provided in assisting the user for a smooth learning process it helps to learn ASL alphabets , Most commonly used phrases in day to day communication and some signs of popular places like 'Mumbai' and objects like 'Police Station'
, etc


TEMPLE MOORS.
THE parish of Temple in 1851 had a population of 24. Yet once the Knights Templar built a church here; and with the purpose of civilising the inhabitants of the moor in the midst of which it was founded, they secured for their temple some special privileges. "Many a bad marriage bargain," says Tonkin, "is there yearly slubbered up; and grass widows with their fatlings put to lie-in and nurse here." "Send her to Temple Moors," implied that any female requiring seclusion might at one time secure it under the charge of these Christian knights in this their preceptory, and be returned to the world again, probably, in all respects, a better woman. At all events, the world, being in ignorance, did not repudiate the erring sister.
Stories linger over this wilderness of mixed good and evil. The church, which was consecrated to the great cause of saving sinners, has perished. No stone remains to tell us where it stood; and to "send her to Temple moors," is to proclaim a woman an outcast from society.


Internet Explorer 10 Enable 32 Bit Or 64 Bit Ie10 In Windows 7 Windows 7 Help Forums
Internet Explorer 10 For Windows 7 Windows Download
Internet Explorer 10 For Windows 7 Download Links Released
Microsoft Internet Explorer 10 64 Bit Free Download Freewarefiles Com Internet Category
Microsoft Internet Explorer 10 Ie10 For Windows 7 Review Pcmag
Internet Explorer 10 をインストールする方法 Seeck Jp サポート
Internet Explorer 10 Enable 32 Bit Or 64 Bit Ie10 In Windows 7 Page 2 Windows 7 Help Forums
Internet Explorer 10 Download For Pc Free
How To Download Internet Explorer 7 8 9 10 11 32 Bit 64 Bit Youtube
Download Ie 10 Windows 7 X64 Gatree
Microsoft Internet Explorer 10 Download For Windows 7
Internet Explorer Microsoft Download Center
Download Internet Explorer 11 For Windows 10 64 Bit Offline Installer
Download Internet Explorer 10 10
Microsoft Officially Launched Internet Explorer 10 For Windows 7 Free Download Now
Internet Explorer Ie For Windows 10 7 8 For 32 Bit And 64 Bit Download Offline Installer Engineering Software
Is Ie 11 The Latest And Available For Windows 8 Pro X64 Super User
Internet Explorer 10 For Windows 7 Page 1 Line 17qq Com
Https Encrypted Tbn0 Gstatic Com Images Q Tbn And9gcr Jvyuo4tvtd3xiqgwqxppne Tii 81wbneaod Eyja5poqt2g Usqp Cau
Internet Explorer 8 Windows 7 64 Bit D0wnloadaw
Internet Explorer 10 Wikipedia
Internet Explorer 10 Rtm Is Released Offline Installers Are Available
Internet Explorer 10 Download For Windows 7 Sp1 32 Bit 64 Bit Digiex
Internet Explorer 10 Released For Windows 7 Here Is What You Need To Know Nextofwindows Com
Force Ie10 X86 Mode Microsoft Community
Internet Explorer 10 Preview For Windows 7
Download Internet Explorer 11 For Windows 7 32 64 Bit