⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lvcamdat.h

📁 相机传输图像程序源代码 拜耳模式(RAW格式文件)与RGB图像数据互相转换函数库
💻 H
字号:

#ifndef ___LVCAMDAT_H
#define ___LVCAMDAT_H

#include <lvdef.h>
#include <dsylib.h>

#ifdef __UNIX__
    #define LVCEAPI(x) x
#else
    #ifdef _LVCE_
        #define LVCEAPI(x) __declspec(dllexport) x __stdcall
    #else
        #define LVCEAPI(x) __declspec(dllimport) x __stdcall
    #endif
#endif

typedef U32BIT LVCECAMHANDLE;
#define LVCE_INVALIDHANDLE 0xffffffff

#include <lvpackon.h>

#define LvCe_AR_NotSupported 0x00
#define LvCe_AR_DaisyDefined 0x01
#define LvCe_AR_Param        0x02
#define LvCe_AR_AliasCamera  0x03

#define LvCe_ARRdOut_NoFeedBack      0x0
#define LvCe_ARRdOut_VSyncFromCamera 0x1
#define LvCe_ARRdOut_VSyncToCamera   0x2
#define LvCe_ARRdOut_FixDelay        0x80
#define LvCe_ARRdOut_FlagMask        0x80
#define LvCe_ARRdOut_DataMask        0x7f

#define ARFlag_OverlapShutter   0x00000001
#define ARFlag_ReadoutTrigger   0x00000002
#define ARFlag_MissingEofMark   0x00000004

#define LvCe_ExtStr_TimingName  1

typedef struct _tagLvCeAsyncModule {
    char Name[64] _BYTEALIGNED;
    U8BIT Reserved[15] _BYTEALIGNED;
    } LvCeAsyncModule;

typedef struct _tagLvCeAsyncAlias {
    U16BIT Id _BYTEALIGNED;
    U8BIT Reserved[77] _BYTEALIGNED;
    } LvCeAsyncAlias;

typedef struct _tagLvCeAsyncParam {
    U8BIT  TriggerType _BYTEALIGNED;

    float  MinShtSpeed _BYTEALIGNED;
    float  MaxShtSpeed _BYTEALIGNED;
    float  DefShtSpeed _BYTEALIGNED;
    float  ShtStartDelay _BYTEALIGNED;
    float  ShtEndDelay _BYTEALIGNED;

    U8BIT  PinTrig1 _BYTEALIGNED;
    U8BIT  PolTrig1 _BYTEALIGNED;
    U8BIT  PinTrig2 _BYTEALIGNED;
    U8BIT  PolTrig2 _BYTEALIGNED;

    U8BIT  ROutMode _BYTEALIGNED;
    U32BIT ROutDelay _BYTEALIGNED;
    U32BIT ROutStart _BYTEALIGNED;
    U32BIT ROutTime _BYTEALIGNED;
    U32BIT RetriggerDelay _BYTEALIGNED;

    U32BIT TriggerWidth _BYTEALIGNED;
    U8BIT  VSyncOnTrigger _BYTEALIGNED;
    U8BIT  HResetOnTrigger _BYTEALIGNED;
    U32BIT TrigStart2HSyncDelay _BYTEALIGNED;
    U32BIT TrigEnd2HSyncDelay _BYTEALIGNED;

    U32BIT CableId _BYTEALIGNED;

    U8BIT InvPolFeedback _BYTEALIGNED;

    U32BIT Flags    _BYTEALIGNED;
    U8BIT  PinRdOut _BYTEALIGNED;
    U8BIT  PolRdOut _BYTEALIGNED;

    U8BIT Reserved[12] _BYTEALIGNED;  // 79

    } LvCeAsyncParam;

typedef struct _tagLvCeAsyncSupport {
    U8BIT SupportMode _BYTEALIGNED;
    union {
        LvCeAsyncParam  Param _BYTEALIGNED;
        LvCeAsyncModule Module _BYTEALIGNED;
        LvCeAsyncAlias  Alias _BYTEALIGNED;
        } u;
    U8BIT AsyncCfgId _BYTEALIGNED;
    } LvCeAsyncSupport;


#define LvCe_ScanType_Unknown   0x00
#define LvCe_ScanType_Area      0x01
#define LvCe_ScanType_Line      0x02

#define LvCe_Interface_Unknown  0x00
#define LvCe_Interface_Analog   0x01
#define LvCe_Interface_CamLink  0x02
#define LvCe_Interface_FireWire 0x03
#define LvCe_Interface_RS422    0x04
#define LvCe_Interface_RS644    0x05
#define LvCe_Interface_RS644TTL 0x06
#define LvCe_Interface_Ethernet 0x07
#define LvCe_Interface_USB      0x08

#define LvCe_ClassFlag_PicSight 0x01

typedef struct _tagLvCeCameraClass {
    U8BIT  ScanType     _BYTEALIGNED;
    U8BIT  Interface    _BYTEALIGNED;
    union {
        U8BIT  Reserved[10] _BYTEALIGNED;  // To 16
        struct _tagPicSightType {
            U16BIT BoardID;
            U16BIT SensorID;
            } PicSightType _BYTEALIGNED;
        } u _BYTEALIGNED;
    U32BIT Flags        _BYTEALIGNED;
    } LvCeCameraClass;

typedef struct _tagLvCeExtendedInfo {
    U8BIT  TapFormat    _BYTEALIGNED;
    U8BIT  NrTaps       _BYTEALIGNED;
    U8BIT  Reserved[30] _BYTEALIGNED;  // To 32
    } LvCeExtendedInfo;


#define _LvCeSigMap_Default 0
#define _LvCeSigMap_Param   1

typedef struct _tagLvCeSignalInterface {
    U8BIT  Support   _BYTEALIGNED;
    U16BIT BoardId   _BYTEALIGNED;
    U16BIT Video_1   _BYTEALIGNED;
    U16BIT Video_2   _BYTEALIGNED;
    U16BIT Video_3   _BYTEALIGNED;
    U16BIT Video_4   _BYTEALIGNED;
    U16BIT CSync     _BYTEALIGNED;
    U16BIT HSync     _BYTEALIGNED;
    U16BIT VSync     _BYTEALIGNED;
    U16BIT PxClk     _BYTEALIGNED;
    U16BIT Trg_1     _BYTEALIGNED;
    U16BIT Trg_2     _BYTEALIGNED;
    U16BIT FeedBack  _BYTEALIGNED;
    U16BIT DataValid _BYTEALIGNED;
    U16BIT RdOutTrg  _BYTEALIGNED;
    U8BIT  Reserved[99] _BYTEALIGNED;  // To 128
    } LvCeSignalInterface;

#include <lvpackof.h>

extern "C" {
    // Camera dat
    LVCEAPI(LVSTATUS) LvCe_GetName(char *Buffer, int BufferLen);
    LVCEAPI(BOOL    ) LvCe_IsModified(void);
    LVCEAPI(BOOL    ) LvCe_IsValid(void);

    LVCEAPI(LVSTATUS) LvCe_LoadDatFile(char *FileName);
    LVCEAPI(LVSTATUS) LvCe_LoadDatFileEx(char *FileNameSys, char *FileNameUsr, char *FileNameOld);
    LVCEAPI(LVSTATUS) LvCe_LoadDatFileEx2(char *FileNameSys, char *FileNameUsr, char *FileNameOld, char *FileNamePatch);
    LVCEAPI(LVSTATUS) LvCe_MergeDatFile(char *FileName);
    LVCEAPI(LVSTATUS) LvCe_LoadTxtFiles(char *PathName);
    LVCEAPI(LVSTATUS) LvCe_SaveDat(char *FileName);
    LVCEAPI(LVSTATUS) LvCe_SaveCam(char *Path);
    LVCEAPI(LVSTATUS) LvCe_SaveCSV(char *FileName);

    LVCEAPI(LVSTATUS) LvCe_DeleteCamera(U16BIT CameraId);
    LVCEAPI(LVSTATUS) LvCe_UndeleteCamera(U16BIT CameraId);
    LVCEAPI(BOOL)     LvCe_IsCameraDeleted(U16BIT CameraId);
    LVCEAPI(U16BIT  ) LvCe_CopyCamera(U16BIT CameraId);
    LVCEAPI(U16BIT  ) LvCe_SetCameraStatic(U16BIT CameraId);
    LVCEAPI(LVSTATUS) LvCe_EnumCamera(int Index, U16BIT *Id, char *CamName, int Size, LvCameraInfo *CamInfo);
    LVCEAPI(LVSTATUS) LvCe_EnumOption(int Index, U32BIT *Id, char *Name, int NameSize, U32BIT *Default, char *Desc, int DescSize);
    LVCEAPI(U16BIT  ) LvCe_FindCameraId(char *CamName);

    LVCEAPI(LVCECAMHANDLE) LvCe_GetCameraHandle(U16BIT Id);

    // Camera
    LVCEAPI(LVSTATUS) LvCeCam_GetInfo(LVCECAMHANDLE CamHandle, LvCameraInfo *CamInfo);
    LVCEAPI(LVSTATUS) LvCeCam_SetInfo(LVCECAMHANDLE CamHandle, LvCameraInfo *CamInfo);

    LVCEAPI(BOOL    ) LvCeCam_HasSeparateSync(LVCECAMHANDLE CamHandle);
    LVCEAPI(BOOL    ) LvCeCam_IsSlave(LVCECAMHANDLE CamHandle);
    LVCEAPI(BOOL    ) LvCeCam_DoubleWidth(LVCECAMHANDLE CamHandle);
    LVCEAPI(BOOL    ) LvCeCam_IsDigital(LVCECAMHANDLE CamHandle);
    LVCEAPI(U32BIT  ) LvCeCam_GetDigitalFormat(LVCECAMHANDLE CamHandle);
    LVCEAPI(BOOL    ) LvCeCam_IsDaisyDefined(LVCECAMHANDLE CamHandle);
    LVCEAPI(BOOL    ) LvCeCam_IsHidden(LVCECAMHANDLE CamHandle);
    LVCEAPI(void    ) LvCeCam_Hide(LVCECAMHANDLE CamHandle, BOOL pHide);
    LVCEAPI(void    ) LvCeCam_SetIO(LVCECAMHANDLE CamHandle, BOOL pIO);
    LVCEAPI(BOOL    ) LvCeCam_IsIO(LVCECAMHANDLE CamHandle);

    // Timing
    LVCEAPI(U32BIT  ) LvCeCam_GetHll (LVCECAMHANDLE CamHandle);
    LVCEAPI(U32BIT  ) LvCeCam_GetHsw (LVCECAMHANDLE CamHandle);
    LVCEAPI(U32BIT  ) LvCeCam_GetHbe (LVCECAMHANDLE CamHandle);
    LVCEAPI(U32BIT  ) LvCeCam_GetHbs (LVCECAMHANDLE CamHandle);
    LVCEAPI(U32BIT  ) LvCeCam_GetHDly(LVCECAMHANDLE CamHandle);

    LVCEAPI(void    ) LvCeCam_SetVbe (LVCECAMHANDLE CamHandle, U32BIT Ln);
    LVCEAPI(void    ) LvCeCam_SetVbs (LVCECAMHANDLE CamHandle, U32BIT Ln);
    LVCEAPI(void    ) LvCeCam_SetVDly(LVCECAMHANDLE CamHandle, U32BIT Ln);

    LVCEAPI(void    ) LvCeCam_SetClock(LVCECAMHANDLE CamHandle, float Hz);
    LVCEAPI(void    ) LvCeCam_SetHll (LVCECAMHANDLE CamHandle, float Time);
    LVCEAPI(void    ) LvCeCam_SetHsw (LVCECAMHANDLE CamHandle, float Time);
    LVCEAPI(void    ) LvCeCam_SetHbe (LVCECAMHANDLE CamHandle, float Time);
    LVCEAPI(void    ) LvCeCam_SetHbs (LVCECAMHANDLE CamHandle, float Time);
    LVCEAPI(void    ) LvCeCam_SetHDly(LVCECAMHANDLE CamHandle, float Time);
    // Check smp
    LVCEAPI(void    ) LvCeCam_SetPxlHll (LVCECAMHANDLE CamHandle, U32BIT Pxl);
    LVCEAPI(void    ) LvCeCam_SetPxlHsw (LVCECAMHANDLE CamHandle, U32BIT Pxl);
    LVCEAPI(void    ) LvCeCam_SetPxlHbe (LVCECAMHANDLE CamHandle, U32BIT Pxl);
    LVCEAPI(void    ) LvCeCam_SetPxlHbs (LVCECAMHANDLE CamHandle, U32BIT Pxl);
    LVCEAPI(void    ) LvCeCam_SetPxlHDly(LVCECAMHANDLE CamHandle, U32BIT Pxl);

    // User blanks
    LVCEAPI(U32BIT  ) LvCeCam_GetUserHbe (LVCECAMHANDLE CamHandle);
    LVCEAPI(U32BIT  ) LvCeCam_GetUserHbs (LVCECAMHANDLE CamHandle);
    LVCEAPI(U32BIT  ) LvCeCam_GetUserHDly(LVCECAMHANDLE CamHandle);

    LVCEAPI(U32BIT  ) LvCeCam_GetUserVbe (LVCECAMHANDLE CamHandle);
    LVCEAPI(U32BIT  ) LvCeCam_GetUserVbs (LVCECAMHANDLE CamHandle);
    LVCEAPI(U32BIT  ) LvCeCam_GetUserVDly(LVCECAMHANDLE CamHandle);

    LVCEAPI(void    ) LvCeCam_SetUserHbe (LVCECAMHANDLE CamHandle, float Time);
    LVCEAPI(void    ) LvCeCam_SetUserHbs (LVCECAMHANDLE CamHandle, float Time);
    LVCEAPI(void    ) LvCeCam_SetUserHDly(LVCECAMHANDLE CamHandle, float Time);

    LVCEAPI(void    ) LvCeCam_SetPxlUserHbe (LVCECAMHANDLE CamHandle, U32BIT Pxl);
    LVCEAPI(void    ) LvCeCam_SetPxlUserHbs (LVCECAMHANDLE CamHandle, U32BIT Pxl);
    LVCEAPI(void    ) LvCeCam_SetPxlUserHDly(LVCECAMHANDLE CamHandle, U32BIT Pxl);

    LVCEAPI(void    ) LvCeCam_SetUserVbe (LVCECAMHANDLE CamHandle, U32BIT Ln);
    LVCEAPI(void    ) LvCeCam_SetUserVbs (LVCECAMHANDLE CamHandle, U32BIT Ln);
    LVCEAPI(void    ) LvCeCam_SetUserVDly(LVCECAMHANDLE CamHandle, U32BIT Ln);

    // Camera options
    LVCEAPI(void    ) LvCeCam_SetOption(LVCECAMHANDLE CamHandle, int Id, U32BIT Value);
    LVCEAPI(void    ) LvCeCam_RemoveOption(LVCECAMHANDLE CamHandle, int Id);
    LVCEAPI(U32BIT  ) LvCeCam_GetOption(LVCECAMHANDLE CamHandle, int Id);

    // Dral settings
    LVCEAPI(void    ) LvCeCam_GetAsyncParam(LVCECAMHANDLE CamHandle, int Index, LvCeAsyncSupport *ARParam);
    LVCEAPI(void    ) LvCeCam_SetAsyncParam(LVCECAMHANDLE CamHandle, int Index, LvCeAsyncSupport *ARParam);

    // Vendor id
    LVCEAPI(LVSTATUS) LvCe_EnumVendor(int Index, U32BIT *Id, char *Name, int Size);
    LVCEAPI(U32BIT  ) LvCe_AddVendor(char *Name);
    LVCEAPI(U32BIT  ) LvCe_GetVendorId(char *Name);
    LVCEAPI(LVSTATUS) LvCe_GetVendorName(U32BIT Id, char *Name, int Size);
    LVCEAPI(U32BIT  ) LvCeCam_GetVendorId(LVCECAMHANDLE CamHandle);
    LVCEAPI(void    ) LvCeCam_SetVendorId(LVCECAMHANDLE CamHandle, U32BIT VendorId);

    // Model id
    LVCEAPI(LVSTATUS) LvCe_EnumModel(int Index, U32BIT *Id, char *Name, int Size, U32BIT *VendorId);
    LVCEAPI(U32BIT  ) LvCe_GetModelId(char *Name, U32BIT VendorId);
    LVCEAPI(LVSTATUS) LvCe_GetModelName(U32BIT Id, char *Name, int Size);
    LVCEAPI(U32BIT  ) LvCeCam_GetModelId(LVCECAMHANDLE CamHandle);

    // Memos
    LVCEAPI(void    ) LvCeCam_GetAsyncMemo(LVCECAMHANDLE CamHandle, int Index, char *Memo, int Size);
    LVCEAPI(void    ) LvCeCam_SetAsyncMemo(LVCECAMHANDLE CamHandle, int Index, char *Memo);
    LVCEAPI(void    ) LvCeCam_GetCameraMemo(LVCECAMHANDLE CamHandle, char *Memo, int Size);
    LVCEAPI(void    ) LvCeCam_SetCameraMemo(LVCECAMHANDLE CamHandle, char *Memo);
    LVCEAPI(void    ) LvCeCam_GetAsyncDesc(LVCECAMHANDLE CamHandle, int Index, char *Name, int NameSize, char *Desc, int DescSize, U8BIT *Obsolete);

    // Signal interface
    LVCEAPI(void    ) LvCeCam_GetSignalInterface(LVCECAMHANDLE CamHandle, int BoardSigId, LvCeSignalInterface *aSigIf);
    LVCEAPI(void    ) LvCeCam_SetSignalInterface(LVCECAMHANDLE CamHandle, LvCeSignalInterface *aSigIf);
    LVCEAPI(void    ) LvCeCam_ResetSignalInterface(LVCECAMHANDLE CamHandle);
    LVCEAPI(BOOL    ) LvCeCam_IsDefaultSignalInterface(LVCECAMHANDLE CamHandle);

    // Camera class
    LVCEAPI(void    ) LvCeCam_GetCameraClass(LVCECAMHANDLE CamHandle, LvCeCameraClass *pCamClass);
    LVCEAPI(void    ) LvCeCam_GetClassSpecificString(LVCECAMHANDLE CamHandle, int Index, char *String, int Size);

    // Camera control
    LVCEAPI(unsigned) LvCeCam_GetControlProtocolID (LVCECAMHANDLE CamHandle);
    LVCEAPI(U16BIT  ) LvCe_FindCameraByCommID(unsigned ulProtocolID);

    // Extended info
    LVCEAPI(void    ) LvCeCam_GetExtendedInfo(LVCECAMHANDLE CamHandle, LvCeExtendedInfo *pExtInfo);
    LVCEAPI(void    ) LvCeCam_GetExtendedString(LVCECAMHANDLE CamHandle, int StringId, char *String, int Size);


    };

#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -