camAlgo/release/inc/algoGlobals.h

203 lines
3.3 KiB
C
Raw Normal View History

2025-08-16 15:25:29 +08:00
#ifndef ALGO_GLOBALS_H
#define ALGO_GLOBALS_H
//#include "ap_int.h"
//#include "hls_stream.h"
#define RGN_DATA_WIN_SIZE 16
#define RGN_DATA_PIXEL_WIDTH 2 //output 2 pixels per clock
#define MAX_PT_NUM 4096
#define MAX_HEIGHT 2500
typedef unsigned char uchar;
typedef unsigned short ushort;
typedef unsigned short uint16_t;
typedef unsigned int uint_32;
typedef unsigned int uint32_t;
struct FramePara
{
uint32_t FrmNo;
uint32_t timeStamp;
uint32_t encInfo;
uint16_t frameROI_w;
uint16_t frameROI_h;
uint16_t frameROI_x;
uint16_t frameROI_y;
};
struct ProcObj
{
short StartIdx;
short EndIdx;
char* SrcFileDir;
char* DstFileDir;
#ifdef FIXED_PROC
int MinStgTh; // = 10 ;
#else
float MinStgTh; // = 4.0f;
#endif
short LazerWMin;
short LazerWMax;
#ifdef FIXED_PROC
int RflctPixTh;
#else
float RflctPixTh;
#endif
unsigned char RflctOutEna;
int OverlapPixTh;
unsigned char EnhanStep;
unsigned char PickEna;
unsigned char RgnFltrTh;
unsigned char RmvWkEndEna;
unsigned char RmvWkEndTh;
unsigned char RmvWkEndMultCoe;
unsigned short RmvWkEndMinLen;
unsigned char PickBFEna;
unsigned char PickBkGrnd;
unsigned char PickRLenTh;
unsigned char EnergyPickEna;
unsigned short PickEnergyType;
unsigned short RgnEnergyPLen;
unsigned short RgnMeanETh;
};
union CharFloat
{
float fdata;
unsigned char buff[4];
};
union UintDouble
{
double fdata;
unsigned int buff[2];
};
union UintFloat
{
float fdata;
unsigned int unData;
};
struct PeakRun{
uchar start;
uchar len;
uchar value;
};
struct RgnPix
{
ushort LazerWinX; //winStartX, ap_uint<12>
ushort LazerWinY; //ap_uint<12>
ushort LazerWinRid; //ap_uint<11>
uchar LazerWinFlag; //ap_uint<4>, bit0:OverLap | bit1:Rflct,
uchar LazerWinRsv; //ap_uint<1>
uchar Sync; //ap_uint<2>, FrmSync:b10 | LineSync:b01
uchar RltvRdx; //ap_uint<8>, bit3~0:Str | bit7~4:End
};
struct RgnPixConvolve
{
ushort LazerWinX; //winStartX
ushort LazerWinY;
ushort LazerWinRid;
uchar LazerWinFlag; //bit0:OverLap | bit1:Rflct
uchar LazerWinRsv;
uchar Sync; //FrmSync:b10 | LineSync:b01
uchar value;
int nD1;
int nD2;
};
struct RgnSubPix
{
float x;
ushort y;
ushort rid;
uchar flag; //bit0:OverLap | bit1:Rflct
uchar rsv;
uchar Sync; //FrmSync:b10 | LineSync:b01
uchar value;
};
struct RgnSubPixCalib
{
float x;
float y;
ushort rid;
uchar flag; //bit0:OverLap | bit1:Rflct
uchar rsv;
uchar Sync; //FrmSync:b10 | LineSync:b01
uchar value;
};
struct SubpixInfo
{
float x;
ushort y;
ushort rid;
uchar flag; //bit0:OverLap | bit1:Rflct
uchar rsv;
uchar value;
};
union Byte8
{
//SubpixInfo subpix;
unsigned int nData[2];
float fData[2];
double dData;;
};
struct LineCalibK
{
double calibK[8]; //K0 - K7
};
struct CalibData
{
double calibK[2];
//SubCalib subpix_calib;
uchar Sync; //FrmSync:b10 | LineSync:b01
};
struct CamPara
{
double u0;
double v0;
double F_inv;
double plane_a;
double plane_b;
double plane_c;
};
struct Pnt3D
{
float x;
float y;
float z;
uchar value;
uchar Sync; //FrmSync:b10 | LineSync:b01
};
#if 0
struct RgnPnt {
ap_uint<12> winStartX;
ap_uint<12> y;
ap_uint<11> rid_data; //HSync=1:rid; HSync=0:data
ap_uint<1> overlalFlag;
ap_uint<1> reflectFlag;
ap_uint<1> rsvd;
ap_uint<1> VSync;
ap_uint<1> HSync;
ap_uint<8> PkRltvRdx;
};
#endif
#endif