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

📄 prvphlib.h

📁 相机传输图像程序源代码 拜耳模式(RAW格式文件)与RGB图像数据互相转换函数库
💻 H
📖 第 1 页 / 共 2 页
字号:
// Sync Specifiers
#define SY_None        0x0
#define SY_Field_0     0x1
#define SY_Field_1     0x2
#define SY_Frame       0x3
#define SY_VSync       0x4

#define ResBrd_NotReserved     0
#define ResBrd_ReservedToOther 1
#define ResBrd_ReservedToUs    2

// *****************************
// Interface prototypes

#define MAX_DEVNAMELEN 20
#define MAX_SERNRLEN   20

typedef struct _tagDevDescr {
    char        Name[MAX_DEVNAMELEN];
    HDEVICE     hDevice;
    U16BIT      BoardType;
    BOOL        IsActive;
    BOOL        IsInitialized;
    U32BIT      VMemSize;
    U8BIT       PCIBusNr;
    U8BIT       PCIDeviceNr;
    PCICfgSpace PCIConfig;
    BOOL        IsVGA;
    int         VGANr;
    // Add Novram data
    } LvDevDescr;


typedef struct _tagLvCfgDevDescr {
    char  Name[MAX_DEVNAMELEN];
    U16BIT  BoardType;
    BOOL    IsMainBoard;
    } LvCfgDevDescr;


typedef struct _tagLvBoardDescr {
    char  Name[MAX_DEVNAMELEN];
    U16BIT Id;
    U16BIT BoardType;
    char   SerialNr[MAX_SERNRLEN];           // Added 01.07.97
    } LvBoardDescr;


typedef struct _tagLvRegSetDescr {
    char    Name[MAX_DEVNAMELEN];
    U16BIT  Id;
    U16BIT  ChipId;
    U16BIT  ChipIndex;
    } LvRegSetDescr;

typedef struct _tagLvRegDescr {
    char        Name[MAX_DEVNAMELEN];
    LvRegister  Id;
    U16BIT      Attribute;
    U16BIT      RegType;
    U8BIT       Msb;
    U8BIT       Lsb;
    LvRegister  ParentRegister;
    U8BIT       Base;
    U8BIT       ManualChapter;
    U16BIT      ManualPage;
    } LvRegDescr;

typedef struct _tagLvNovramData_R0 {
    // U16BIT Signature;
    U8BIT  Dummy_1[7] _BYTEALIGNED;   // 8
    U8BIT  Revision _BYTEALIGNED;
    U8BIT  Year _BYTEALIGNED;
    // U8BIT  Dummy_2[116]; // Total bytes: 128
    } LvNovramData_R0;


/*
typedef struct _tagLvBoardIdentifier {
    U16BIT PrintId;
    U8BIT  PrintRev;
    U8BIT  FW;
    U8BIT  FWO;
    U8BIT  HW;
    U8BIT  HWO;
    U8BIT  DL;
    U8BIT  DLO;
    } LvBoardIdentifier;
*/

typedef struct _tagLvNovramData_R1 {
    char   ProductionCode[2] _BYTEALIGNED;     // 0x3
    U16BIT SerialNr _BYTEALIGNED;
    LvBoardIdentifier Id _BYTEALIGNED;
    U32BIT ManifacturingDate _BYTEALIGNED;
    U32BIT LastTest_Date _BYTEALIGNED;
    U16BIT LastTest_Info _BYTEALIGNED;
    char   UserName[4] _BYTEALIGNED;
    U16BIT TestFlag _BYTEALIGNED;
    U8BIT  NrOfWrites _BYTEALIGNED;
    U16BIT UserIdent _BYTEALIGNED;
    U16BIT UserCode _BYTEALIGNED;
    U16BIT SWCode_1 _BYTEALIGNED;
    U16BIT SWCode_2 _BYTEALIGNED;
    U16BIT SWCode_3 _BYTEALIGNED;
    U32BIT LCAInfo _BYTEALIGNED;
    U32BIT CheckSum _BYTEALIGNED;
    } LvNovramData_R1;

typedef struct _tagLvNovramExtData_R1_1 {
    unsigned IntOrder : 17;
    unsigned Lot : 4;
    unsigned ArticleNr : 27;
    unsigned Base_IntOrder : 17;
    unsigned Base_Lot : 4;
    unsigned Base_ArticleNr : 27;
    /*
    U32BIT IntOrder _BYTEALIGNED;
    U8BIT Lot _BYTEALIGNED;
    U8BIT Reserved _BYTEALIGNED;
    U32BIT DList _BYTEALIGNED;
    U32BIT Reserved2 _BYTEALIGNED;
    */
    } LvNovramExtData_R1_1;

typedef struct _tagLvNovramExtData_R1_2 {
    U16BIT PLLRangeLo _BYTEALIGNED;
    U16BIT PLLRangeHi _BYTEALIGNED;
    } LvNovramExtData_R1_2;

typedef struct _tagLvNovram {
    U16BIT MagicNumber _BYTEALIGNED;
    U8BIT  NovramRev _BYTEALIGNED;
    union __LvNovramData {
        LvNovramData_R0 R0 _BYTEALIGNED;
        LvNovramData_R1 R1 _BYTEALIGNED;
        } Data _BYTEALIGNED;
    LvNovramExtData_R1_1 ExtData_1 _BYTEALIGNED;
    LvNovramExtData_R1_2 ExtData_2 _BYTEALIGNED;
    } LvNovram;

// typedef struct _tagLvNovramPKXData {
//     U32BIT Crc32_Pci0;
//     U32BIT Crc32_Pci1;
//     U32BIT Crc32_Video;
//     U32BIT Crc32_CLP1;
//     U32BIT Crc32_CLP2;
//     } LvNovramPKXData;

#ifdef __cplusplus
struct _tagLvPKXNovram : public LvNovram {
#else
struct _tagLvPKXNovram {
    LvNovram Novram;
#endif
    U8BIT Reserved[256-sizeof(LvNovram)];
    U32BIT Crc32_Pci5_0 _BYTEALIGNED;
    U32BIT Crc32_Pci5_1 _BYTEALIGNED;
    U32BIT Crc32_Video _BYTEALIGNED;
    U32BIT Crc32_CLP_0 _BYTEALIGNED;
    U32BIT Crc32_CLP_1 _BYTEALIGNED;
    U32BIT Crc32_CLP_2 _BYTEALIGNED;
    U32BIT Crc32_CLP_3 _BYTEALIGNED;
    U32BIT Crc32_Pci3_0 _BYTEALIGNED;
    U32BIT Crc32_Pci3_1 _BYTEALIGNED;
    U16BIT Ver_Pci5_0 _BYTEALIGNED;
    U16BIT Flg_Pci5_0 _BYTEALIGNED;
    U16BIT Ver_Pci5_1 _BYTEALIGNED;
    U16BIT Flg_Pci5_1 _BYTEALIGNED;
    U16BIT Ver_Video _BYTEALIGNED;
    U16BIT Flg_Video _BYTEALIGNED;
    U16BIT Ver_CLP_0 _BYTEALIGNED;
    U16BIT Flg_CLP_0 _BYTEALIGNED;
    U16BIT Ver_CLP_1 _BYTEALIGNED;
    U16BIT Flg_CLP_1 _BYTEALIGNED;
    U16BIT Ver_CLP_2 _BYTEALIGNED;
    U16BIT Flg_CLP_2 _BYTEALIGNED;
    U16BIT Ver_CLP_3 _BYTEALIGNED;
    U16BIT Flg_CLP_3 _BYTEALIGNED;
    U16BIT Ver_Pci3_0 _BYTEALIGNED;
    U16BIT Flg_Pci3_0 _BYTEALIGNED;
    U16BIT Ver_Pci3_1 _BYTEALIGNED;
    U16BIT Flg_Pci3_1 _BYTEALIGNED;
    };
typedef struct _tagLvPKXNovram LvPKXNovram;

typedef struct _tagLvRegisterAccess {
    HDEVICE    hDevice;
    U16BIT     Board;
    U8BIT      ChipIndex;
    LvRegister RegId;
    U8BIT      Operation;
    U32BIT     Value;
    BOOL       ErrorOnChipDisabled;
    } LvRegisterAccess;


#define SysHealthType_None   0
#define SysHealthType_LVmPC  1
#define SysHealthType_PicSightGigE  2

#define SysHealthNrValues   15

typedef struct _tagLvSysHealth {
    U32BIT Type _BYTEALIGNED;
    union {
        struct {
            float Value[SysHealthNrValues] _BYTEALIGNED;
            } NotDefined _BYTEALIGNED;
        struct {
            float V_CoreA   _BYTEALIGNED;
            float V_CoreB   _BYTEALIGNED;
            float V_3_3     _BYTEALIGNED;
            float V_5       _BYTEALIGNED;
            float V_12      _BYTEALIGNED;
            float RPM_Fan1  _BYTEALIGNED;
            float C_SysTemp _BYTEALIGNED;
            float C_CPUTemp _BYTEALIGNED;
            float C_IDETemp _BYTEALIGNED;
            float C_PwrTemp _BYTEALIGNED;
            } LVmPC _BYTEALIGNED;
        struct {
            float WDResetCount _BYTEALIGNED;
            float UpTime _BYTEALIGNED;
            float C_SysTemp _BYTEALIGNED;
            float C_ModTemp _BYTEALIGNED;
            float LinkSpeed _BYTEALIGNED;
            } PicSightGigE _BYTEALIGNED;
        } u _BYTEALIGNED;
    } LvSysHealth;


#ifdef __cplusplus
extern "C" {            /* Assume C declarations for C++ */
#endif  /* __cplusplus */


LVPRVAPI(U16BIT) PrvPlGetVersion(void);
LVPRVAPI(void  ) PrvPlLinkTime(LPSTR Buffer, int BufferLen);

LVPRVAPI(LVSTATUS) PrvPlEnumDevDescription(U8BIT Index, LvDevDescr FAR *Dev);
LVPRVAPI(LVSTATUS) PrvPlGetDevDescription(HDEVICE TheDevice, LvDevDescr FAR *Dev);
LVPRVAPI(LVSTATUS) PrvPlGetPCIDevDescription(U8BIT Index, PCICfgSpace FAR *Dev);
LVPRVAPI(LVSTATUS) PrvPlRegAccess(HDEVICE TheDevice, U8BIT Module, U8BIT ChipIndex, LvRegister RegId, U32BIT FAR *Value, U16BIT NrValue, U8BIT Operation);
LVPRVAPI(LVSTATUS) PrvPlStructRegAccess(HDEVICE TheDevice, LvRegisterAccess *Structs);
// LVSTATUS FAR PASCAL PrvPlStructRegAccess(LvRegisterAccess FAR *Structs);
LVPRVAPI(LVSTATUS) PrvPlEnumBoardDescription(HDEVICE TheDevice, U8BIT Index, LvBoardDescr FAR *BoardDesc);
LVPRVAPI(LVSTATUS) PrvPlGetBoardDescription(HDEVICE TheDevice, U8BIT Index, LvBoardDescr FAR *BoardDesc);
LVPRVAPI(LVSTATUS) PrvPlEnumRegSetDescription(HDEVICE TheDevice, U8BIT BoardId, int Index, LvRegSetDescr FAR *SetDesc);
LVPRVAPI(LVSTATUS) PrvPlRegisterFlush(HDEVICE TheDevice, U8BIT BoardId, U16BIT RegSet);
LVPRVAPI(LVSTATUS) PrvPlResetShadow(HDEVICE TheDevice);
LVPRVAPI(LVSTATUS) PrvPlEnumRegDescription(U16BIT RegisterSet, U16BIT RegIndex, LvRegDescr FAR *RegDesc);
LVPRVAPI(LVSTATUS) PrvPlGetRegDescription(LvRegister Reg, LvRegDescr FAR *RegDesc);

LVPRVAPI(LVSTATUS) PrvPlForceBoard(HDEVICE FAR *TheDevice, U16BIT BoardType, LvBoardIdentifier FAR *Id);
LVPRVAPI(LVSTATUS) PrvPlSaveRegisters(HDEVICE TheDevice);
LVPRVAPI(LVSTATUS) PrvPlCompareRegisters(HDEVICE TheDevice, LPSTR FileName);
LVPRVAPI(LVSTATUS) PrvPlLogRegisters(HDEVICE TheDevice, LPSTR FileName);

LVPRVAPI(LVSTATUS) PrvPlEnumConfiguredDevices(U16BIT Index, LvCfgDevDescr FAR *BoardDesc);
LVPRVAPI(LVSTATUS) PrvPlEnumConfiguredRegSet(U16BIT Index, LvRegSetDescr FAR *SetDesc);

LVPRVAPI(LVSTATUS) PrvPlConvertRegisterSetId(HDEVICE hDevice, U16BIT BoardId, LPSTR RegSetName, LvRegSetDescr FAR *Desc);
LVPRVAPI(LVSTATUS) PrvPlConvertRegisterId(LPSTR RegName, LvRegister FAR *RegId);

LVPRVAPI(LVSTATUS) PrvPlLoadLCA(HDEVICE TheDevice, U8BIT ModuleId, U16BIT ChipId, LPSTR FileName);

LVPRVAPI(void  ) PrvPlGetErrorMessage(LVSTATUS RetVal, LPSTR Buffer, int Size);

LVPRVAPI(U32BIT) PrvPlGetInitStatus(void);

// May be temporary
LVPRVAPI(char _Huge_ *) PrvPlGetVMemPtr(HDEVICE TheDevice);
LVPRVAPI(LVSTATUS) PrvPlEnableVMemAccess(HDEVICE TheDevice);
LVPRVAPI(LVSTATUS) PrvPlDisableVMemAccess(HDEVICE TheDevice);
LVPRVAPI(LVSTATUS) PrvPlSetVGAMode(HDEVICE hDevice, int Mode);
LVPRVAPI(LVSTATUS) PrvPlCopyRegisters(HDEVICE FromDevice, HDEVICE ToDevice, U8BIT WhichRegisters);
LVPRVAPI(LVSTATUS) PrvPlCheckChip(HDEVICE hDevice, void **Report);
LVPRVAPI(LVSTATUS) PrvPlWaitSync(HDEVICE TheDevice, U8BIT Module, U8BIT SyncMode);
LVPRVAPI(LVSTATUS) PrvPlGetCheckItemText(void *Report, U16BIT ItemNr, char FAR *Buffer, U16BIT MaxChar);
LVPRVAPI(LVSTATUS) PrvPlGetBoardIdentifier(HDEVICE TheDevice, U8BIT ModuleId, LvBoardIdentifier *BoardId);

LVPRVAPI(LVSTATUS) PrvPlEnableParallelAccess(HDEVICE TheDevice, U8BIT Module);
LVPRVAPI(LVSTATUS) PrvPlDisableParallelAccess(HDEVICE TheDevice, U8BIT Module);
LVPRVAPI(LVSTATUS) PrvPlEnableSerialAccess(HDEVICE TheDevice, U8BIT Module, U8BIT Protocol);
LVPRVAPI(LVSTATUS) PrvPlDisableSerialAccess(HDEVICE TheDevice, U8BIT Module, U8BIT Protocol);

LVPRVAPI(LVSTATUS) PrvPlStartCompile(void);
LVPRVAPI(LVSTATUS) PrvPlCompile(U8BIT OpCode, U16BIT Par1, U16BIT Par2, U16BIT Par3, U16BIT Par4);
LVPRVAPI(BOOL  ) PrvPlIsCompiling(void);
LVPRVAPI(LVSTATUS) PrvPlEndCompile(HANDLE *hTarget);
LVPRVAPI(LVSTATUS) PrvPlExec(HDEVICE TheDevice, HANDLE hTarget);

LVPRVAPI(BOOL  ) PrvPlIsLeutronBoard(HDEVICE hDevice);
LVPRVAPI(LVSTATUS) PrvPlGetProductionString(HDEVICE TheDevice, U8BIT Module, U32BIT Which, char *String, U32BIT Len);
#if defined(__WIN3264__) || defined(__UNIX__)
LVPRVAPI(LVSTATUS) PrvPlDeviceIo(HDEVICE TheDevice,
                                    DWORD  dwIoControlCode,	// control code of operation to perform
                                    LPVOID  lpInBuffer,	// pointer to buffer to supply input data
                                    DWORD  nInBufferSize,	// size of input buffer
                                    LPVOID  lpOutBuffer,	// pointer to buffer to receive output data
                                    DWORD  nOutBufferSize,	// size of output buffer
                                    LPDWORD  lpBytesReturned,	// pointer to variable to receive output byte count
                                    LPOVERLAPPED  lpOverlapped 	// pointer to overlapped structure for asynchronous operation
                                    );
LVPRVAPI(char *  ) PrvPlGetWin32DeviceName(HDEVICE TheDevice, char *Buffer);
LVPRVAPI(LVSTATUS) PrvPlGetLCAFlag(HDEVICE TheDevice, U8BIT Module, DWORD *Flag, int Size);

LVPRVAPI(LVSTATUS) PrvPlEnableWatchDog(HDEVICE TheDevice, U8BIT Module, U32BIT *FlagAndSeconds);
LVPRVAPI(LVSTATUS) PrvPlDisableWatchDog(HDEVICE TheDevice, U8BIT Module);
LVPRVAPI(U32BIT)   PrvPlGetWatchDogTimeLeft(HDEVICE TheDevice, U8BIT Module);
LVPRVAPI(U32BIT)   PrvPlHasWatchDogTimer(HDEVICE TheDevice, U8BIT Module);

LVPRVAPI(LVSTATUS) PrvPlLockBoard(HDEVICE TheDevice);
LVPRVAPI(LVSTATUS) PrvPlUnlockBoard(HDEVICE TheDevice);
LVPRVAPI(LVSTATUS) PrvPlCheckLock(HDEVICE TheDevice);

LVPRVAPI(BOOL    ) PrvPlPCI_IsPresent(void);
LVPRVAPI(U16BIT  ) PrvPlPCI_GetVersion(void);
LVPRVAPI(LVSTATUS) PrvPlPCI_FillPCIDeviceDescriptor(int BusNr, int DevNr, int FnNr, PCICfgSpace *Dev);
LVPRVAPI(void    ) PrvPlPCI_GetVendorDescription(U16BIT VendorId, char *Buffer);
LVPRVAPI(void    ) PrvPlPCI_GetClassDescription(U8BIT Base, U8BIT Sub, char *Buffer);
LVPRVAPI(LVSTATUS) PrvPlPCI_GetDeviceTextDescription(int BusNr, int DevNr, int FnNr, char *Buffer, BOOL Address);
LVPRVAPI(void    ) PrvPlMem16_FreeSelectorArray(unsigned short FirstSelector, unsigned long MemSize);
LVPRVAPI(unsigned short) PrvPlDPMI_SetSelectorLimit(unsigned short selector, unsigned long dwLimit);
LVPRVAPI(unsigned short) PrvPlMem16_AllocSelectorArray(unsigned long Linear, unsigned long MemSize);
LVPRVAPI(unsigned long) PrvPlDPMI_Phys2Lin(unsigned long PhysicalAddress, unsigned long __Size);
LVPRVAPI(void *  ) PrvPlWOWGetVDMPointerFix(DWORD vp, DWORD dwBytes, BOOL fProtectedMode);
LVPRVAPI(unsigned long)  PrvPlVxD_GetDeviceAPI(unsigned short Id);
LVPRVAPI(unsigned short) PrvPlVxD_Call(void *Io);

#endif
#ifdef __cplusplus
    }            /* Assume C declarations for C++ */
#endif  /* __cplusplus */

#include <lvpackof.h>

#endif

//-[HEADER] PrvPhLib

⌨️ 快捷键说明

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