131 lines
2.2 KiB
C
131 lines
2.2 KiB
C
|
|
#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
|
|
|
|
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{
|
|
ap_uint<8> start;
|
|
ap_uint<8> len;
|
|
ap_uint<8> value;
|
|
};
|
|
|
|
struct RgnPix
|
|
{
|
|
ap_uint<12> LazerWinX; //winStartX
|
|
ap_uint<12> LazerWinY;
|
|
ap_uint<11> LazerWinRid;
|
|
ap_uint<4> LazerWinFlag; //bit0:OverLap | bit1:Rflct
|
|
ap_uint<1> LazerWinRsv;
|
|
ap_uint<2> Sync; //FrmSync:b10 | LineSync:b01
|
|
ap_uint<8> RltvRdx; // bit3~0:Str | bit7~4:End
|
|
};
|
|
|
|
struct RgnPixConvolve
|
|
{
|
|
ap_uint<12> LazerWinX; //winStartX
|
|
ap_uint<12> LazerWinY;
|
|
ap_uint<11> LazerWinRid;
|
|
ap_uint<4> LazerWinFlag; //bit0:OverLap | bit1:Rflct
|
|
ap_uint<1> LazerWinRsv;
|
|
ap_uint<2> Sync; //FrmSync:b10 | LineSync:b01
|
|
ap_uint<8> value;
|
|
int nD1;
|
|
int nD2;
|
|
};
|
|
|
|
struct RgnSubPix
|
|
{
|
|
float x;
|
|
ap_uint<12> y;
|
|
ap_uint<11> rid;
|
|
ap_uint<4> flag; //bit0:OverLap | bit1:Rflct
|
|
ap_uint<1> rsv;
|
|
ap_uint<2> Sync; //FrmSync:b10 | LineSync:b01
|
|
ap_uint<8> value;
|
|
};
|
|
|
|
struct RgnSubPixCalib
|
|
{
|
|
float x;
|
|
float y;
|
|
ap_uint<11> rid;
|
|
ap_uint<4> flag; //bit0:OverLap | bit1:Rflct
|
|
ap_uint<1> rsv;
|
|
ap_uint<2> Sync; //FrmSync:b10 | LineSync:b01
|
|
ap_uint<8> value;
|
|
};
|
|
|
|
struct SubpixInfo
|
|
{
|
|
float x;
|
|
ap_uint<12> y;
|
|
ap_uint<11> rid;
|
|
ap_uint<4> flag; //bit0:OverLap | bit1:Rflct
|
|
ap_uint<1> rsv;
|
|
ap_uint<8> value;
|
|
};
|
|
union Byte8
|
|
{
|
|
//SubpixInfo subpix;
|
|
unsigned int nData[2];
|
|
float fData[2];
|
|
double dData;
|
|
};
|
|
struct CalibData
|
|
{
|
|
double calibK[2];
|
|
//SubCalib subpix_calib;
|
|
ap_uint<2> Sync; //FrmSync:b10 | LineSync:b01
|
|
};
|
|
|
|
struct Pnt3D
|
|
{
|
|
float x;
|
|
float y;
|
|
float z;
|
|
ap_uint<8> value;
|
|
ap_uint<2> 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
|