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

📄 int_str.h

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

#ifndef ___INT_STR_H
#define ___INT_STR_H


#include <windows.h>
#include <lvdef.h>
#include <prvphlib.h>

#include <lvpackon.h>

#define MAX_REGNAME     30
// #define MAX_CHIPINDEX   16
#define MAX_CHIPINDEX   32


typedef struct _tagLvRegDirect {
    char Name[MAX_REGNAME] _BYTEALIGNED;
    U16BIT Attributes _BYTEALIGNED;             // R/W Size
    U8BIT  ManualChapter _BYTEALIGNED;
    U16BIT ManualPage _BYTEALIGNED;
    // U32BIT InitialValue;
    U16BIT ReadAddress _BYTEALIGNED;
    U16BIT WriteAddress _BYTEALIGNED;           // A default address may be useful if other access type is not specified
    } LvRegDirect;

typedef struct _tagLvRegIndexed {
    char Name[MAX_REGNAME] _BYTEALIGNED;
    U16BIT Attributes _BYTEALIGNED;        // R/W Size
    U8BIT  ManualChapter _BYTEALIGNED;
    U16BIT ManualPage _BYTEALIGNED;
    // U32BIT InitialValue;
    U32BIT Index _BYTEALIGNED;
    LvRegister IndexReg _BYTEALIGNED;
    LvRegister DataReg _BYTEALIGNED;
    } LvRegIndexed;

typedef struct _tagLvRegBitField {
    char Name[MAX_REGNAME] _BYTEALIGNED;
    U8BIT   HexDec _BYTEALIGNED;
    // U32BIT  InitialValue;
    U8BIT   Msb _BYTEALIGNED;
    U8BIT   Lsb _BYTEALIGNED;
    LvRegister ParentReg _BYTEALIGNED;
    } LvRegBitField;

typedef struct _tagLvRegisterSetDef {
    char Name[MAX_REGNAME] _BYTEALIGNED;
    LvRegDirect   *Direct _BYTEALIGNED;
    LvRegIndexed  *Indexed _BYTEALIGNED;
    LvRegBitField *Field _BYTEALIGNED;
    U8BIT          Flag _BYTEALIGNED;
    } LvRegisterSetDef;

#define MAX_COMPATIBILITY 32

typedef struct _tagAccessProcedure {
    LvRegister RegId;
    U8BIT  Operation;
    U32BIT Mask;
    U32BIT MaskSignBits;
    } LvAccessProcedure;

typedef struct _tagAccessParamDef {
    LvAccessProcedure PreProc;
    LvAccessProcedure PostProc;
    } LvAccessParamDef;


typedef struct _tagLvCompatDef {
    U32BIT SetId;
    U8BIT  Type;
    LvAccessParamDef Access;
    U32BIT BaseAddress;
    } LvCompatDef;


typedef struct _tagLvChipCheck {
    LvRegister RegIdHigh;
    LvRegister RegIdLow;
    U32BIT ChipId;
    LvRegister RegCheck;
    } LvChipCheck;

typedef struct _tagLvChipDef {
#ifdef __WIN3264__
    char *Name;
#else
    char FAR *Name;
#endif
    U16BIT Type;
    LvChipCheck Check;
    LvCompatDef Compatibility[MAX_COMPATIBILITY]; // indexes in registerset array
    } LvChipDef;

typedef struct _tagLvBoardChip {
    U16BIT ChipId;              // Maybe index in AvailableChip Array (also coded in the register name)
    U16BIT IndexOnBoard;        // Useful when more than one chip of the same type is present on the same board
    char   AdditionalName[MAX_REGNAME];
    U16BIT AccessId;            // Type of access (direct or using a serial protocol)

    // Access parameters (to be defined which are needed for each protocol)
    union _tagAccessParam {
        U32BIT I2CChipAddress; // I2C chip
        U32BIT BaseAddress;    // LCA
        U32BIT IoBase;         // CA_IOMEM_SEL
        U32BIT Class;          // CA_SERPORT
        } AccessParam;

    U8BIT CheckPriority;
    } LvBoardChip;


typedef struct _tagLvBoardDef {
    char Name[MAX_BOARDNAME];
    struct _tagPCIData {
        U16BIT Vendor;
        U16BIT Device;
        } PCIData;
    BOOL HasNovram;
    struct _tagNovramData {
        U16BIT PrintId;
        // U8BIT PrintRev;
        } NovramData;
    BOOL  IsMainBoard;
    U8BIT AddOnAllowed;
    U16BIT ParallelAddOnAddress[MAX_ADDON];
    LvBoardChip *BoardDefinition;
    BOOL LCAProgrammable;       // Set if the board is programmable through LCA
    BOOL PCMainBoard;           // Set if the board is a PC mainboard
    U32BIT DefMemSize;
	BOOL UniquePCIId;
    U32BIT Bus;
    } LvBoardDef;


typedef struct _tagLvParallelReg {
    U32BIT Data_R;
    U32BIT Data_W;
    U32BIT DataInc_R;
    U32BIT DataInc_W;
    U32BIT AddrH_R;
    U32BIT AddrH_W;
    U32BIT AddrL_R;
    U32BIT AddrL_W;
    } LvParallelReg;

typedef struct _tagLvSaaReg {
    U8BIT SaaVer;
    // I2C
    LvRegister I2CTfr;
    LvRegister I2CSc;
    // Debi
    LvRegister DebiAd;
    LvRegister DebiCmd;
    LvRegister DebiCfg;
    } LvSaaReg;


typedef struct _tagPKX_LcaHeader {
    U16BIT Signature _BYTEALIGNED;
    U16BIT Type _BYTEALIGNED;
    U32BIT Size _BYTEALIGNED;
    U32BIT Crc32 _BYTEALIGNED;
    U8BIT  NrBoardSpec _BYTEALIGNED;
    U8BIT  NrFlags     _BYTEALIGNED;
    char Reserved_1[2] _BYTEALIGNED;
    U32BIT DataOffset _BYTEALIGNED;
    char Reserved_2[12] _BYTEALIGNED;            // Up to 32 bytes
    } PKX_LcaHeader;


#define _RXXMod_NrPort 4

typedef struct _tagRXXModItem {
    U32BIT ModType;
    U32BIT ModId;
    U32BIT TgtProc[_RXXMod_NrPort];
    U32BIT TgtPort[_RXXMod_NrPort];
    U32BIT SrcProc[_RXXMod_NrPort];
    } RXXModItem;

typedef struct _tagRYX_FPGAInfo {
    U16BIT ChipId;
    U8BIT  ValidType;
    U32BIT Version;
    U32BIT Crc;
    U32BIT Flag;
    } RYX_FPGAInfo;

typedef struct _tagRXXFpgaVersion {
    U32BIT       Loaded[4];
    RYX_FPGAInfo Stored[8];
    } RXXFpgaVersion;

typedef struct _tagPkxFPGA {
    U16BIT ChipId;
    U16BIT FirstBank;
    U16BIT LastBank;
    U16BIT FpgaId;
    U32BIT MaxSize;
    U8BIT  ValidType;
    LvRegister CrcReg;
    LvRegister VerReg;
    LvRegister FlgReg;
    } PkxFPGA;

#define SlaveFpgaMarker 0x55780001
typedef struct _tagLvSlaveFpgaParam {
    U32BIT  Marker;
    PkxFPGA FpgaParam;
    char    FileName[128];
    } LvSlaveFpgaParam;


// IOCTL_RXX_FSHSLVID
typedef struct _tagLvFpgaPossibleId {
    U32BIT  PrintId;
    U32BIT  PrintRev;
    U32BIT  DLO;
    U32BIT  Reserved;
    PkxFPGA FpgaParam;
    } LvFpgaPossibleId;

typedef struct _tagLvFpgaId {
    U32BIT NrEntry;
    LvFpgaPossibleId PossibleId[1];
    } LvFpgaIdForDevId;


#include <lvpackof.h>

#endif

⌨️ 快捷键说明

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