📄 orchid.h
字号:
DLLENTRY void WINAPI lvx_SetLoadWindowText(const char* pszText, int iWindowWidth, int iWindowHeight);
/* -------------------------------------------------------------------------- */
/** Forces loading of the DLLs.
* Orchid loads dynamically other DLLs when a first function is called or
* class instance created. This load time can
* take relatively long time. \n
* This postponed loading enables that your application starts quickly.\n
* By using this method, you can load the DLLs earlier, for example at the
* application startup.\n
* Load is always done only once regardless how many times you call this method;
* when the DLLs are loaded, they are not unloaded until your application ends.
* @ingroup OrchidFunctionsDllLoad
*
* @par See also .NET version:
* LeutronVision::Orchid::LvxDll::LoadDlls
*/
DLLENTRY void WINAPI lvx_LoadDlls();
/* -------------------------------------------------------------------------- */
/** Returns the version and subversion of Orchid.
* Note that the Orchid version number is not the same as LV-SDS version number.
* See the Commands in Orchid User's Guide for information, how to obtain the
* LV-SDS version.
* @ingroup OrchidFunctionsDllLoad
* @return \b Version number in the high word and subversion in the low word of the
* returned 32-bit number.
* @par See also .NET version:
* LeutronVision::Orchid::LvxDll::Version
*/
DLLENTRY int WINAPI lvx_GetVersion();
/* -------------------------------------------------------------------------- */
/* Error handling */
/* -------------------------------------------------------------------------- */
/** Returns the last error code.
* Zero value indicates no error. Non-zero value indicates an error, the
* description of which you can obtain by calling lvx_LastStatusShortMsg()
* and lvx_LastStatusLongMsg() methods.\n
* DLL version: \n
* This function reflects the global status after the last Orchid call,
* independently on Orchid module. Once you have the module created, you can use
* the lvx_GetTaskStatus() function to get the last status of the particular
* module. This approach has sense only in case you are using multiple modules
* in your application; otherwise you should use lvx_GetLastStatus() only. Note
* that lvx_GetLastStatus() is more general; it reflects also errors that may
* happen outside the module, for example calling a function with an
* invalid module handle.\n
* .Net Class Library version: \n
* As this property is belonging to a class instance, it is always returning
* the status of the class instance.
* \n
* Note that the Orchid functions and methods themselves do not return any error code.
* You should always check the result of any Orchid method call or property assignment
* by calling either lvx_GetLastStatus() or lvx_GetTaskStatus() function.
* This is usually not needed for methods returning informational values (Get...
* methods and reading of properties; these do not set any error status.
* @ingroup OrchidFunctionsStatusCheck
* @par See also .NET version:
* LeutronVision::Orchid::LvxBase::LastStatus
*/
DLLENTRY int WINAPI lvx_GetLastStatus();
/* -------------------------------------------------------------------------- */
/** Returns a short text description of the last error.
* Returns a string description of the last error, in form of a short, one-line string, suitable for
* error message window title.\n
* Use lvx_GetTaskStatusShortMsg() instead of lvx_GetLastStatusShortMsg() if you used
* lvx_GetTaskStatus() function before.
* @ingroup OrchidFunctionsStatusCheck
* @param pszMsg Pointer to character buffer, to which the error message
* is copied as a null-terminated string.
* @param iMaxLen Size of the buffer.
* @par See also .NET version:
* LeutronVision::Orchid::LvxBase::LastStatusShortMsg
*/
DLLENTRY void WINAPI lvx_GetLastStatusShortMsg(char* pszMsg, int iMaxLen);
/* -------------------------------------------------------------------------- */
/** Returns a full description of the last error.
* Returns a string description of the last error, in form of a long string with a detailed description.
* Use lvx_GetTaskStatusLongMsg() instead of lvx_GetLastStatusLongMsg() if you used
* lvx_GetTaskStatus() function before.
* @ingroup OrchidFunctionsStatusCheck
* @param pszMsg Pointer to character buffer, to which the error message
* is copied as a null-terminated string.
* @param iMaxLen Size of the buffer.
* @par See also .NET version:
* LeutronVision::Orchid::LvxBase::LastStatusLongMsg
*/
DLLENTRY void WINAPI lvx_GetLastStatusLongMsg(char* pszMsg, int iMaxLen);
/* -------------------------------------------------------------------------- */
/** Returns the last error code for the specified module.
* See lvx_GetLastStatus() for details.
* @ingroup OrchidFunctionsStatusCheck
* @param hLvxTask Handle to Orchid module, created by lvx_OpenTask().
* @par See also .NET version:
* LeutronVision::Orchid::LvxBase::TaskStatus
*/
DLLENTRY int WINAPI lvx_GetTaskStatus(HLVXTASK hLvxTask);
/* -------------------------------------------------------------------------- */
/** Returns a short text description of the last error for the specified module.
* See lvx_GetLastStatusShortMsg() for details.
* @ingroup OrchidFunctionsStatusCheck
* @param hLvxTask Handle to Orchid module, created by lvx_OpenTask().
* @param pszMsg Pointer to a buffer, to which the error message
* is copied as a null-terminated string.
* @param iMaxLen Size of the buffer.
* @par See also .NET version:
* LeutronVision::Orchid::LvxBase::TaskStatusShortMsg
*/
DLLENTRY void WINAPI lvx_GetTaskStatusShortMsg(HLVXTASK hLvxTask, char* pszMsg, int iMaxLen);
/* -------------------------------------------------------------------------- */
/** Returns a full description of the last error for the specified module.
* See lvx_GetLastStatusLongMsg() for details.
* @ingroup OrchidFunctionsStatusCheck
* @param hLvxTask Handle to Orchid module, created by lvx_OpenTask().
* @param pszMsg Pointer to a buffer, to which the error message
* is copied as a null-terminated string.
* @param iMaxLen Size of the buffer.
* @par See also .NET version:
* LeutronVision::Orchid::LvxBase::TaskStatusLongMsg
*/
DLLENTRY void WINAPI lvx_GetTaskStatusLongMsg(HLVXTASK hLvxTask, char* pszMsg, int iMaxLen);
/* -------------------------------------------------------------------------- */
/* Task opening, closing */
/* -------------------------------------------------------------------------- */
/** Creates a new Orchid module.
* Most of the lvx_ functions require a handle to a Orchid module as its first
* parameter, so the Orchid module must be created first by this method. You can
* use multiple modules in your application, but you must assure that two
* modules will never use the same camera. \n
* Besides the acquisiton type of the module, you can also create
* a Preprocessor or DirectX module: these modules are not
* connected with any hardware and are attached to the acquisition
* modules.\n
* You should close the acquisition module using the lvx_CloseTask()
* method at the exit of your application or before you create a new module for
* the same camera.\n
* @ingroup OrchidFunctionsModuleCreation
* @param iTaskType Identifies the module type, which will be associated with the
* module. The iModuleType can be one of the following values:
* - lvx_Task_Live
* - lvx_Task_Rt
* - lvx_Task_RtAsyncReset
* - lvx_Task_Preprocessor
* - lvx_Task_DirectX
*
* See the User's Guide for the description of the module types.
*
* @return Handle to the created module. The handle is always a non-zero value.
*/
DLLENTRY HLVXTASK WINAPI lvx_OpenTask(int iTaskType);
/* -------------------------------------------------------------------------- */
/** Closes the Orchid module.
* This function should be called when you want to stop working with the module,
* or at the exit of your application.
* See also: lvx_OpenTask()
* @ingroup OrchidFunctionsModuleCreation
* @param hLvxTask Handle to Orchid module, created by lvx_OpenTask().
*/
DLLENTRY void WINAPI lvx_CloseTask(HLVXTASK hLvxTask);
/* -------------------------------------------------------------------------- */
/* Initial settings */
/* -------------------------------------------------------------------------- */
/** Sets the name of the grabber to be used.
*
* The name of the grabber is a part of the hardware identification which consists
* of a triplet: Grabber name - Camera name - Connector name, and optionally Grabber
* order in case of multiple grabbers of the same type
* available in the system.\n
* \n
* In case of a physical frame grabber the name specifies the name of the grabber;
* in case of GigE or USB cameras, the name of the grabber can be either
* a generic "GigE" or "USB" or directly the name of the camera.\n
* \n
* The best way how to find out the correct grabber name is to use the
* PicPort Demo, which lists all the grabbers found in the system, or use the
* enumeration functions (see lvx_QueryGrabberName() ).\n
* \n
* The name is not case sensitive.\n
* \n
* In case of multiple grabbers of the same name you should use the lvx_SetGrabberOrder()
* to specify the order of the grabber. Note that the grabber order can be also
* attached to the end of the grabber name in square brackets, for example
* "PicPortX Mono [2]". The grabber order does not apply to generic "GigE" and "USB"
* names, where the multiple cameras are distinguished by their nick names, not by
* the order. \n
* \n
* Important: In case you have multiple grabbers in the PC or multiple cameras
* cameras connected to the PC, you should use a seaparate module for each camera and
* assure that 2 modules will not access the same camera. In case you have a
* frame grabber which enables to connect multiple cameras (PicPort Express Stereo,
* PicPort Elite etc.), all the modules accessing the cameras must be in single
* process (application). That means you cannot use for example one application
* for accessing the first camera on PicPortX Stereo and another application for
* accessing the second camera on the same physical grabber, but you can have
* 2 modules opened in single application, each accessing one of the 2 cameras.\n
* \n
* In the LvxLive module the lvx_DisplayConnectionDialog() can be used
* for setting the Grabber-Connector-Camera properties at once by the user,
* using a pop-up dialog box.\n
* In the real-time modules the lvx_DisplayInitialSettingsDialog() method can be
* used for setting this property, together with other parameters.\n
* \n
* @note Changing the grabber name deactivates currently active
* acquisition and returns the module to the uninitialized status.
* @sa lvx_QueryGrabberName() method, through which you can obtain a list of
* grabbers available in the computer.
*
* @ingroup OrchidFunctionsInitializing
* @param hLvxTask Handle to Orchid module, created by lvx_OpenTask().
* @param pszName Name in form of a null-terminated string.
*
* @par See also .NET version:
* LeutronVision::Orchid::LvxBaseAcquisition::Grabber
*/
DLLENTRY void WINAPI lvx_SetGrabber(HLVXTASK hLvxTask, const char* pszName);
/* -------------------------------------------------------------------------- */
/** Gets the name of the grabber.
*
* The name of the grabber is a part of the hardware identification which consists
* of a triplet: Grabber name - Camera name - Connector name, and optionally Grabber
* order in case of multiple grabbers of the same type
* available in the system.\n
* \n
* In case of a physical frame grabber the name specifies the name of the grabber;
* in case of GigE or USB cameras, the name of the grabber can be either
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -