1158 lines
35 KiB
C++
1158 lines
35 KiB
C++
#ifndef DLL_H_
|
|
#define DLL_H_
|
|
#pragma once
|
|
|
|
#include <vector>
|
|
#include "NewDataStruct.h"
|
|
|
|
#define PI 3.14159
|
|
#define SET_FACE_NUM 100
|
|
|
|
#define BAR_CODE_WIDTH 20
|
|
#define BAR_CODE_HEIGHT 20
|
|
|
|
|
|
#ifdef EF_IMAGE_DLL
|
|
#define EXP __declspec(dllexport)
|
|
#else
|
|
#define EXP __declspec(dllimport)
|
|
#endif
|
|
|
|
|
|
#define WM_MSG (WM_USER+101)
|
|
#define RS232 (WM_USER+102)
|
|
#define WM_COMM_USBIN (WM_USER+103)
|
|
#define WM_IMAGE_MSG (WM_USER+104)
|
|
#define WM_IMAGE_DAT (WM_USER+105)
|
|
#define WM_MUL_CCD (WM_USER+106)
|
|
#define WM_MUL_CCD1 (WM_USER+107)
|
|
#define WM_M1K_CCD1 (WM_USER+108)
|
|
#define WM_M1K_CCD2 (WM_USER+109)
|
|
#define WM_GET_PIC (WM_USER+110)
|
|
|
|
const UINT WM_USERDEFMSG = ::RegisterWindowMessage(_T("UserDefMsg"));
|
|
|
|
//using namespace std;
|
|
#pragma pack(push)
|
|
#pragma pack(16)
|
|
|
|
typedef struct float_point
|
|
{
|
|
double x;
|
|
double y;
|
|
}FP;
|
|
|
|
typedef struct light_value
|
|
{
|
|
char top_value;
|
|
char bom_value;
|
|
char fan_value;
|
|
char bom1_value;
|
|
char bom2_value;
|
|
char fan1_switch;
|
|
char fan2_switch;
|
|
}g_light;
|
|
|
|
typedef struct Image_Section
|
|
{
|
|
double x0;
|
|
double y0;
|
|
double x1;
|
|
double y1;
|
|
double scalex;
|
|
double scaley;
|
|
}Image_Section;
|
|
|
|
//typedef struct video_80M
|
|
//{
|
|
// BOOL m_Aeen;
|
|
// BYTE m_AeTarget;
|
|
// int m_BGain;
|
|
// BOOL m_bColorCorrect;
|
|
// BYTE m_Contrast;
|
|
// int m_ExpTime;
|
|
// int m_AnalogGain;
|
|
// BYTE m_Gamma;
|
|
// int m_GGain;
|
|
// int m_RGain;
|
|
// BYTE m_Saturation;
|
|
// BYTE m_FrameSpeed;
|
|
// UINT m_StrobleDelay;
|
|
// UINT m_StrobleDuration;
|
|
// UINT m_TriggerDelay;
|
|
// char m_Mode;
|
|
// char m_Save_Mode;
|
|
// //bool m_
|
|
//
|
|
//}video_80M;
|
|
|
|
|
|
|
|
typedef struct Dev_Info
|
|
{
|
|
//CWnd * m_cWnd;
|
|
HWND g_USB_hWnd;
|
|
HWND g_hWnd_Display;//显示主窗口
|
|
HWND g_hWnd_Msg;//消息主窗口
|
|
int g_Card_Num;
|
|
int g_Card_No;
|
|
int g_Switch_No;//显示通道
|
|
int g_Width;
|
|
int g_Height;
|
|
//BYTE pBuf[640*480*2];
|
|
int g_Sharpness; //锐度
|
|
int g_Saturation;//饱和度
|
|
int g_Hue;//色度
|
|
int g_Contrast;//对比度
|
|
int g_Brightness;//亮度
|
|
char g_Picture_Type;//0-bmp,1-jpg
|
|
char StrFileName[50];
|
|
int cap_xa;
|
|
int cap_ya;
|
|
int cap_xb;
|
|
int cap_yb;
|
|
int disp_xa;
|
|
int disp_ya;
|
|
int disp_xb;
|
|
int disp_yb;
|
|
char IOin;
|
|
char IOout;
|
|
|
|
BYTE RD_Usb_Dat[64];
|
|
BYTE WR_Usb_Dat[64];
|
|
BYTE User_Dat[250];
|
|
|
|
unsigned long RD_Usb_Dat_Length;
|
|
unsigned long WR_Usb_Dat_Length;
|
|
char MoveX_Value;
|
|
char MoveY_Value;
|
|
char MoveZ_Value;
|
|
char MoveV_Value;
|
|
double MoveToX_Value;
|
|
double MoveToY_Value;
|
|
double MoveToZ_Value;
|
|
char MoveToV_Value;
|
|
double MaxisX;
|
|
double MaxisY;
|
|
double MaxisZ;
|
|
int Fan_Light_Size;
|
|
int Top_Light_Size;
|
|
int Bottom_Light_Size;
|
|
char Light_Value[14];
|
|
char Light_Switch;
|
|
int light_size_value;
|
|
|
|
BYTE *pBit;
|
|
int startX;
|
|
int startY;
|
|
int nWidth;
|
|
int nHeight;
|
|
double coorX;
|
|
double coorY;
|
|
int coorX_Off;
|
|
int coorY_Off;
|
|
double ValueZ;
|
|
char rect_flag;
|
|
int bar_type;
|
|
int bar_num;
|
|
|
|
char g_type;
|
|
char g_mode;
|
|
char g_base;
|
|
char g_fresh;
|
|
char g_start;
|
|
char g_hold;
|
|
float g_slow;
|
|
float g_precision;
|
|
char get_xy_flag_num;
|
|
char draw_num;
|
|
int bar_dir;
|
|
int Dog_Cmd;
|
|
int User_Dat_Len;
|
|
int MaxisX_Dir;
|
|
int MaxisY_Dir;
|
|
int MaxisZ_Dir;
|
|
char Face_Flag;
|
|
//double Get_Axis_Z[SET_FACE_NUM];
|
|
//double Get_Image_Value[SET_FACE_NUM];
|
|
int g_Face_Index;
|
|
|
|
double Org_AbsX;
|
|
double Org_AbsY;
|
|
double Org_AbsZ;
|
|
|
|
double g_Bar_Scalex;
|
|
double g_Bar_Scaley;
|
|
|
|
double g_Bar_Orgx;
|
|
double g_Bar_Orgy;
|
|
|
|
double g_Bar_curx;
|
|
double g_Bar_cury;
|
|
|
|
double MaxisX1;
|
|
double MaxisY1;
|
|
double MaxisZ1;
|
|
|
|
double MaxisX_Scale;
|
|
double MaxisY_Scale;
|
|
double MaxisZ_Scale;
|
|
|
|
double g_Bar_dirx;
|
|
double g_Bar_diry;
|
|
int Bar_fresh_flag;
|
|
|
|
char Usb_Cmd;
|
|
char m_Usb_Cmd;
|
|
char m_Usb_type;
|
|
double m_Usb_dat;
|
|
|
|
double g_Bar_LineScaleX;
|
|
double g_Bar_LineScaleY;
|
|
|
|
double ResultVZ;
|
|
|
|
char Diy_Face_Flag;
|
|
double Diy_x;
|
|
double Diy_y;
|
|
|
|
double Face_Long_Dis;
|
|
double Face_Short_Dis;
|
|
double Face_Long_Step;
|
|
double Face_Short_Step;
|
|
|
|
int Mdat1;
|
|
int Mdat2;
|
|
int Mdat3;
|
|
int Mdat4;
|
|
int Mdat5;
|
|
int Mdat6;
|
|
|
|
int Mdat;
|
|
char value;
|
|
long Max_ToV;
|
|
int Min_ToV;
|
|
|
|
int g_Rule_Type;//1,旧板,2-新板
|
|
|
|
unsigned long g_Axis_V;
|
|
long Org_AbsV;
|
|
int BarCode_Width;
|
|
int BarCode_Height;
|
|
|
|
double XT_scale;
|
|
double XM_scale;
|
|
double XB_scale;
|
|
|
|
double YL_scale;
|
|
double YM_scale;
|
|
double YR_scale;
|
|
|
|
char Enable_Face_flag;
|
|
char g_Check_BarCode_Flag;
|
|
g_light g_light1;
|
|
char g_sys_reset_flag;
|
|
char Adc_Num;
|
|
int Adc_Value[10];
|
|
char Adc_No;
|
|
int g_Adc_Value;
|
|
|
|
int motor_type;
|
|
|
|
double motor_ScaleX;
|
|
double motor_ScaleY;
|
|
double motor_ScaleZ;
|
|
|
|
char motor_check_flag;
|
|
char g_video_type;
|
|
|
|
char bar_XY_type;//barcode XY 读数坐标对换
|
|
|
|
char Set_Current_Flag;
|
|
char m_Aeen;
|
|
BYTE m_AeTarget;
|
|
int m_BGain;
|
|
char m_bColorCorrect;
|
|
BYTE m_Contrast;
|
|
int m_ExpTime;
|
|
int m_AnalogGain;
|
|
BYTE m_Gamma;
|
|
int m_GGain;
|
|
int m_RGain;
|
|
BYTE m_Saturation;
|
|
BYTE m_FrameSpeed;
|
|
UINT m_StrobleDelay;
|
|
UINT m_StrobleDuration;
|
|
UINT m_TriggerDelay;
|
|
char m_Mode;
|
|
char m_Save_Mode;
|
|
UINT m_RawTime;
|
|
|
|
double m_Motor_Dx;
|
|
double m_Motor_Dy;
|
|
double m_Motor_Dz;
|
|
int m_Motor_Plus_Num;
|
|
char m_face_mode;
|
|
char g_M_Count_Flag;
|
|
char Get_Plc_Dat;
|
|
char Set_Plc_Dat;
|
|
|
|
double g_ProbeX;
|
|
double g_ProbeY;
|
|
double g_ProbeZ;
|
|
|
|
char g_video_type1;
|
|
int g_Cap_Image;
|
|
double g_Angle;
|
|
char g_Debug_Video;
|
|
int bar_Len_Type;
|
|
int g_BarY_dir;
|
|
float g_Lase1;
|
|
float g_Lase2;
|
|
char g_BarCode_Dir_Flag;
|
|
|
|
int g_HOff1;// = 1192;
|
|
int g_VOff1;
|
|
int g_HOff2;// = 1192;
|
|
int g_VOff2;
|
|
int g_Add_Pic_Flag;
|
|
int Lase_USB_Type;
|
|
int g_OScreen_Flag;
|
|
|
|
bool g_Mon;
|
|
bool g_MirrorV;
|
|
bool g_MirrorH;
|
|
char g_M1k_Mode;
|
|
|
|
int BarCodeX;
|
|
int BarCodeY;
|
|
int RunBar_Mode;
|
|
|
|
float Axis_X;
|
|
float Axis_Y;
|
|
|
|
float Bar_Ofx;
|
|
float Bar_Ofy;
|
|
float Bar_X;
|
|
float Bar_Y;
|
|
|
|
int Bar_Filter_Mode;
|
|
int g_Set_Area_Flag;
|
|
PointDB g_Set_Areas[5];
|
|
int gFrameKey;
|
|
|
|
float Bar_Scale_Unit;
|
|
|
|
int g_ITO_Flag;
|
|
int g_face_flag;
|
|
int g_Nav_Flag;
|
|
int g_Video_Input_Mode;
|
|
int gAutoZoomFlag;
|
|
int gScanLaserPntsSampleTime;
|
|
int gScanLaserPntsNumber;
|
|
int gIsLaserStorage;
|
|
int gLaserStoredNumber;
|
|
|
|
|
|
Dev_Info()
|
|
{
|
|
g_hWnd_Display = NULL;
|
|
g_hWnd_Msg = NULL;
|
|
g_Card_Num = 0;
|
|
g_Card_No = 0;
|
|
g_Switch_No = 0;
|
|
g_Width = 640;
|
|
g_Height = 480;
|
|
g_Sharpness = 0;
|
|
g_Saturation = 0;
|
|
g_Hue = 0;
|
|
g_Contrast = 0;
|
|
g_Picture_Type = 0;
|
|
|
|
cap_xa = 0;
|
|
cap_ya = 0;
|
|
cap_xb = 640;
|
|
cap_yb = 480;
|
|
|
|
disp_xa = 0;
|
|
disp_ya = 0;
|
|
disp_xb = 640;
|
|
disp_yb = 480;
|
|
|
|
IOin = 0;
|
|
IOout = 0;
|
|
RD_Usb_Dat_Length=0;
|
|
WR_Usb_Dat_Length=0;
|
|
MoveX_Value=0;
|
|
MoveY_Value=0;
|
|
MoveZ_Value=0;
|
|
MoveV_Value=0;
|
|
MoveToX_Value=0;
|
|
MoveToY_Value=0;
|
|
MoveToZ_Value=0;
|
|
MoveToV_Value=0;
|
|
MaxisX=0;
|
|
MaxisY=0;
|
|
MaxisZ=0;
|
|
Fan_Light_Size=0;
|
|
Top_Light_Size=0;
|
|
Bottom_Light_Size=0;
|
|
Light_Switch=0;
|
|
light_size_value=0;
|
|
|
|
pBit=NULL;
|
|
startX=0;
|
|
startY=0;
|
|
nWidth=0;
|
|
nHeight=0;
|
|
coorX=0;
|
|
coorY=0;
|
|
coorX_Off=0;
|
|
coorY_Off=0;
|
|
ValueZ=0;
|
|
rect_flag=0;
|
|
bar_type=2;
|
|
bar_num=10;
|
|
|
|
g_mode=1;
|
|
g_base=10;
|
|
g_fresh=10;
|
|
g_start=100;
|
|
g_hold=10;
|
|
g_slow=1;
|
|
g_precision=0.0;
|
|
get_xy_flag_num=3;
|
|
draw_num=0;
|
|
bar_dir=0;
|
|
Dog_Cmd=0;
|
|
User_Dat_Len=0;
|
|
MaxisX_Dir=1;
|
|
MaxisY_Dir=1;
|
|
MaxisZ_Dir=1;
|
|
Face_Flag=0;
|
|
g_Face_Index=150;
|
|
Org_AbsX=0;
|
|
Org_AbsY=0;
|
|
Org_AbsZ=0;
|
|
|
|
g_Bar_Scalex=0.00243309;
|
|
g_Bar_Scaley=0.00247525;
|
|
g_Bar_Orgx=0;
|
|
g_Bar_Orgy=0;
|
|
g_Bar_curx=0;
|
|
g_Bar_cury=0;
|
|
MaxisX1=0;
|
|
MaxisY1=0;
|
|
|
|
g_Bar_dirx=1;
|
|
g_Bar_diry=-1;
|
|
Bar_fresh_flag=0;
|
|
|
|
Usb_Cmd=0;
|
|
m_Usb_Cmd=0;
|
|
m_Usb_type=0;
|
|
m_Usb_dat=0;
|
|
|
|
MaxisX_Scale=1;
|
|
MaxisY_Scale=1;
|
|
MaxisZ_Scale=1;
|
|
g_Bar_LineScaleX=1;
|
|
g_Bar_LineScaleY=1;
|
|
ResultVZ = 0;
|
|
Diy_Face_Flag=0;
|
|
Diy_x = 0;
|
|
Diy_y = 0;
|
|
|
|
Face_Long_Dis = 0;
|
|
Face_Short_Dis = 0;
|
|
Face_Long_Step = 0;
|
|
Face_Short_Step = 0;
|
|
|
|
Mdat1 = 0;
|
|
Mdat2 = 0;
|
|
Mdat3 = 0;
|
|
Mdat4 = 0;
|
|
Mdat5 = 0;
|
|
Mdat6 = 0;
|
|
|
|
Mdat = 0;
|
|
value = 0;
|
|
Max_ToV = 2800;
|
|
Min_ToV = 10;
|
|
g_Rule_Type = 2;
|
|
g_Axis_V = 0;
|
|
Org_AbsV = 0;
|
|
BarCode_Width = 600;
|
|
BarCode_Height = 500;
|
|
|
|
XT_scale = 1;
|
|
XM_scale = 1;
|
|
XB_scale = 1;
|
|
|
|
YL_scale = 1;
|
|
YM_scale = 1;
|
|
YR_scale = 1;
|
|
Enable_Face_flag = 0;
|
|
g_Check_BarCode_Flag = 0;
|
|
g_sys_reset_flag = 0;
|
|
Adc_Num = 0;
|
|
Adc_No = 0;
|
|
g_Adc_Value = 0;
|
|
motor_type = 0;
|
|
|
|
motor_ScaleX = 0.001;
|
|
motor_ScaleY = 0.001;
|
|
motor_ScaleZ = 0.001;
|
|
|
|
motor_check_flag = 0;
|
|
g_video_type = 0;
|
|
bar_XY_type = 1;
|
|
Set_Current_Flag = 0;
|
|
|
|
m_Aeen=0;
|
|
m_AeTarget=1;
|
|
m_BGain=1;
|
|
m_bColorCorrect=0;
|
|
m_Contrast=1;
|
|
m_ExpTime=1;
|
|
m_AnalogGain=5;
|
|
m_Gamma=5;
|
|
m_GGain=10;
|
|
m_RGain=10;
|
|
m_Saturation=1;
|
|
m_FrameSpeed=5;
|
|
m_StrobleDelay=5;
|
|
m_StrobleDuration=5;
|
|
m_TriggerDelay=5;
|
|
m_Mode=3;
|
|
m_Save_Mode=0;
|
|
m_RawTime=1;
|
|
|
|
m_Motor_Dx=1.5;
|
|
m_Motor_Dy=1.5;
|
|
m_Motor_Dz=1.5;
|
|
m_Motor_Plus_Num=10000;
|
|
m_face_mode=1;
|
|
g_M_Count_Flag=0;
|
|
Set_Plc_Dat=0;
|
|
Get_Plc_Dat=0;
|
|
|
|
g_ProbeX = 0;
|
|
g_ProbeY = 0;
|
|
g_ProbeZ = 0;
|
|
g_video_type1=1;
|
|
g_Cap_Image=0;
|
|
g_Angle=0;
|
|
g_Debug_Video=0;
|
|
bar_Len_Type=0;
|
|
g_BarY_dir=1;
|
|
g_Lase1=0;
|
|
g_Lase2=0;
|
|
g_BarCode_Dir_Flag=0;
|
|
|
|
g_HOff1 = 1192;
|
|
g_VOff1 = 1134;
|
|
|
|
g_HOff2 = 1192;
|
|
g_VOff2 = 1134;
|
|
g_Add_Pic_Flag=0;
|
|
Lase_USB_Type=0;
|
|
g_OScreen_Flag=0;
|
|
g_MirrorV=0;
|
|
g_MirrorH=0;
|
|
g_Mon=0;
|
|
g_M1k_Mode=0;
|
|
|
|
BarCodeX=0;
|
|
BarCodeY=0;
|
|
RunBar_Mode=0;
|
|
|
|
Axis_X=0;
|
|
Axis_Y=0;
|
|
Bar_Ofx=0;
|
|
Bar_Ofy=0;
|
|
|
|
Bar_X=0;
|
|
Bar_Y=0;
|
|
|
|
Bar_Filter_Mode=0;
|
|
g_Set_Area_Flag=0;
|
|
gFrameKey=10;
|
|
|
|
Bar_Scale_Unit=0.5;
|
|
g_ITO_Flag=0;
|
|
g_face_flag=0;
|
|
g_Nav_Flag=0;
|
|
g_Video_Input_Mode=0;
|
|
gAutoZoomFlag=0;
|
|
gScanLaserPntsSampleTime=0;
|
|
gScanLaserPntsNumber=0;
|
|
gIsLaserStorage=0;
|
|
gLaserStoredNumber=0;
|
|
};
|
|
}g_Dev_Info;
|
|
|
|
#pragma pack(pop)
|
|
|
|
enum
|
|
{
|
|
VINIT_DLL,
|
|
VSEND_DAT,
|
|
VSWITCH_NO,
|
|
VSET_PARAMETER,
|
|
VGET_PARAMETER,
|
|
VSAVE_PICTURE,
|
|
VGET_PICTURE,
|
|
VSET_CAP_VALUE,
|
|
VSET_DISP_VALUE,
|
|
VOUT_VALUE,
|
|
VIN_VALUE,
|
|
VIN_START,
|
|
VIN_STOP,
|
|
VRUN_VIDEO,
|
|
VPUSE_VIDEO,
|
|
VSTOP_VIDEO,
|
|
VDISP_PROPERTY,
|
|
VQUIT_DLL,
|
|
RSDAT,
|
|
|
|
MINIT_USB,
|
|
MWRITE_DAT,
|
|
MREAD_DAT,
|
|
MMOVEX,
|
|
MMOVEY,
|
|
MMOVEZ,
|
|
MMOVEV,
|
|
MMOVETOX,
|
|
MMOVETOY,
|
|
MMOVETOZ,
|
|
MMOVETOV,
|
|
MMOVETOXYZ,
|
|
MMOVETOXYZV,
|
|
MSTOP,
|
|
MCLOSE,
|
|
MREAD_AXIS,
|
|
MREAD_PRODE,
|
|
MRESET_V,
|
|
|
|
RWRITE_LIGHT1_SWITCH,
|
|
RWRITE_LIGHT2_SWITCH,
|
|
RWRITE_LIGHT3_SWITCH,
|
|
RWRITE_LIGHT4_SWITCH,
|
|
RSET_LIGHT1_SIZE,
|
|
RSET_LIGHT2_SIZE,
|
|
RSET_LIGHT3_SIZE,
|
|
RSET_LIGHT4_SIZE,
|
|
|
|
CALE_XY_VALUE,
|
|
CALE_Z_VALUE,
|
|
GET_RECT,
|
|
|
|
SET_SPEED,
|
|
SET_PRECISION,
|
|
PRO_DOG,
|
|
MRESETXY,
|
|
MRESETXYZ,
|
|
MRESET_ORG,
|
|
MUSB_SEND_CMD,
|
|
MUSB_SEND_DAT,
|
|
PRO_BARCODE,
|
|
CALE_Z_VALUE_DIY,
|
|
|
|
MUSB_SEND_MDAT,
|
|
MUSB_READ_MDAT,
|
|
MUSB_SEND_MCMD,
|
|
READ_V,
|
|
RSET_LIGHT_CMD,
|
|
MUSB_GET_RESET_FLAG,
|
|
MUSB_READ_ADC,
|
|
MUSB_READ_ADC_INDEX,
|
|
PRO_MOTOR_TYPE,
|
|
PRO_MOTOR_SCALE,
|
|
PRO_CHANGE_VIDEO_TYPE,
|
|
PRO_SET_CURRENT_FLAG,
|
|
PRO_CHANGE_VIDEO_PARAMETER,
|
|
|
|
VIDEO_GET_ALL_PARAMETER,
|
|
VIDEO_SET_ALL_PARAMETER,
|
|
VIDEO_ENABLE_AE,
|
|
VIDEO_EXPOSURE,
|
|
VIDEO_COLOR_CONTROL,
|
|
VIDEO_AUTO_WB,
|
|
VIDEO_ENHACEMENT,
|
|
VIDEO_FRAME_SPEED,
|
|
VIDEO_TRIGGER_CONTROL,
|
|
VIDEO_SAVE_PARAMETER,
|
|
VIDEO_READ_SAVE_PARAMETER,
|
|
VIDEO_PRO_PARAMETER,
|
|
VIDEO_SET_MODE,
|
|
|
|
MOTOR_XYZ_DXYZ,
|
|
|
|
RS232_FRESH_DAT,
|
|
SET_TABLE_MODE,
|
|
|
|
PRO_IMAGE_MSG,
|
|
PRO_IMAGE_DAT,
|
|
INIT_RS232_PLC,
|
|
|
|
MUSB_READ_PLC,
|
|
MUSB_WRITE_PLC,
|
|
PRO_CHANGE_VIDEO_TYPE1,
|
|
PRO_CAP_IMAGE,
|
|
CALE_BARCODE_COOR_ANGLE,
|
|
START_CAP_IMAGE,
|
|
START_CAP_IMAGE1,
|
|
START_MUL_NAV,
|
|
STOP_MUL_NAV,
|
|
|
|
MMOVE_TOXYZ,
|
|
MMOVE_TOXYZ_LASE,
|
|
|
|
//GET_MIN_BOX,
|
|
|
|
MUSB_GET_LASE_VALUE,
|
|
Exit_DLL,
|
|
MADD_M1000K,
|
|
|
|
SWITCH_USB_LASE,
|
|
MMOVE_TOXYZV,
|
|
SWITCH_WORK_MODE,
|
|
DLL_DEBUG_ON,
|
|
DLL_DEBUG_OFF,
|
|
VIDEO_MIRROR_VH_MONO,
|
|
CHANGE_M1K_MODE,
|
|
MMOVE_TOXYZ_JM,
|
|
|
|
MVIDEO_NAV_START,
|
|
MVAUTOZOOM,
|
|
START_SCAN_LASER_POINTS,
|
|
STOP_SCAN_LASER_POINTS,
|
|
GET_SCAN_LASER_STATUS,
|
|
|
|
VCOM_TOTAL
|
|
};
|
|
|
|
#ifdef EF_IMAGE_DLL
|
|
|
|
extern BOOL WINAPI OpenPicture(LPBYTE pBits,int nWidth,int nHeight,int* px,int* py,int* pR);
|
|
//Mv8800回调
|
|
void WINAPI __stdcall StreamCap(const BYTE* pDIBHead, const BYTE* pDIBits, LPVOID pParam);
|
|
void CALLBACK VCAPrcVidCapCallBack(DWORD dwCard, BYTE *pbuff,DWORD dwSize);
|
|
//============================SV2000E=====================================
|
|
unsigned CALLBACK SVAPrcVidCapCallBack(unsigned char* buffer, unsigned colorSpace, unsigned width, unsigned height, unsigned bytesWidth, void WINAPI* context);
|
|
int CALLBACK SnapThreadCallback(BYTE *pBuffer);
|
|
|
|
#endif
|
|
|
|
extern "C"
|
|
{
|
|
EXP void WINAPI Pro_Cmd(int nCmd, LPARAM value);
|
|
|
|
|
|
EXP void WINAPI Get_Image_Dat(BYTE* pBuf,int type);
|
|
|
|
EXP void WINAPI Pro_Image_Data(LPBYTE pBits,int nWidth, int nHeight);
|
|
|
|
EXP void WINAPI Pro_Circle(float_point* pBits,int num,double *x,double *y,double* pR);
|
|
EXP void WINAPI Pro_Line(float_point *p,int num,float_point *p2,float *dis,float *ange,float *t);//p取点缓冲区首址 num取点数 dis线长度 ange角度 t直线度
|
|
|
|
EXP bool WINAPI init_232(HWND hwnd, char com_type, UINT baud,BYTE m_iDataBIT, BYTE m_iStopBit, BYTE m_iParity);
|
|
EXP void WINAPI Write_Com(BYTE* Str,int len);
|
|
EXP void WINAPI Get_Dat(BYTE* Str);
|
|
EXP void WINAPI Get_Picture_Dat(BYTE* pBuf);
|
|
|
|
|
|
// Function name : ExpArrEdgeLine
|
|
// Description : 输入一个矩形框,返回框内的直线边沿点数组和数组长度
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : Point pot1Rect 输入矩形框的第一个顶点
|
|
// Argument : Point pot2Rect 输入矩形框的第二个顶点
|
|
// Argument : Point _pot1Rect 输入矩形框的第三个顶点
|
|
// Argument : Point _pot2Rect 输入矩形框的第四个顶点
|
|
// Argument : Point* ptArr 返回边沿点数组
|
|
// Argument : int& count 返回边沿点数组长度
|
|
// Argument : int threshold=-1 输入阈值,如果使用默认参数,表示自动查找最佳阈值
|
|
|
|
EXP int WINAPI ExpArrEdgeLine(LPBYTE pBits,int nWidth,int nHeight,Point Start1Rect,Point Start2Rect,Point End1Rect,Point End2Rect,PointDB* ptArr,int& count,int threshold);
|
|
EXP int WINAPI ExpArrEdgeLine_down(LPBYTE pBits,int nWidth,int nHeight,Point Start1Rect,Point Start2Rect,Point End1Rect,Point End2Rect,PointDB* ptArr,int& count,int threshold);
|
|
|
|
// Function name : ExpArrEdgeArc
|
|
// Description : 输入一个环扇形区,返回区内的圆弧边沿点数组和数组长度
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : Point center 输入环扇形区圆心
|
|
// Argument : double dRadiusIn 输入环扇形区的内径
|
|
// Argument : double dRadiusOut 输入环扇形区的外径
|
|
// Argument : double dAngleStart 输入环扇形区的起始边角度
|
|
// Argument : double dAngleEnd 输入环扇形区的终止边角度
|
|
// Argument : Point* ptArr 返回边沿点数组
|
|
// Argument : int& count 返回边沿点数组长度
|
|
// Argument : int threshold=-1 输入阈值,如果使用默认参数,表示自动查找最佳阈值
|
|
|
|
EXP int WINAPI ExpArrEdgeArc(LPBYTE pBits,int nWidth,int nHeight,Point center,double dRadiusStart,double dRadiusEnd,double dAngleStart,double dAngleEnd,PointDB* ptArr,int& count,int threshold,PointDB& cen,double& R);
|
|
|
|
// Function name : ExpLineFit
|
|
// Description : 直线拟合函数
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : Point* ptArr 输入参与拟合运算的点数组
|
|
// Argument : int count 点数组长度
|
|
// Argument : Point& pot1Line 返回拟合线段一个端点
|
|
// Argument : Point& pot2Line 返回拟合线段的另一个端点
|
|
|
|
EXP int WINAPI ExpLineFit(PointDB* ptArr,int count,PointDB& pot1Line,PointDB& pot2Line);
|
|
|
|
// Function name : ExpArcFit
|
|
// Description : 圆弧拟合函数
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : Point* ptArr 输入参与拟合运算的点数组
|
|
// Argument : int count 点数组长度
|
|
// Argument : Point& center 返回拟合圆弧的圆心
|
|
// Argument : double& dRadius 返回拟合圆弧的半径
|
|
// Argument : double& dAngleStart 返回拟合圆弧的起始角度
|
|
// Argument : double& dAngleEnd 返回拟合圆弧的终止角度
|
|
|
|
EXP int WINAPI ExpArcFit(PointDB* ptArr,int count,PointDB& center,double& dRadius,double& dAngleStart,double& dAngleEnd);
|
|
|
|
// Function name : ExpCircleFit
|
|
// Description : 圆拟合函数
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : Point* ptArr 输入参与拟合运算的点数组
|
|
// Argument : int count 点数组长度
|
|
// Argument : Point& center 返回拟合圆的圆心
|
|
// Argument : double& dRadius 返回拟合圆的半径
|
|
|
|
EXP int WINAPI ExpCircleFit(PointDB* ptArr,int count,PointDB& center,double& dRadius);
|
|
|
|
// Function name : ExpEllipseFit
|
|
// Description : 椭圆拟合函数
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : Point* ptArr 输入参与拟合运算的点数组
|
|
// Argument : int count 点数组长度
|
|
// Argument : PointDB& center 返回拟合椭圆的中心点坐标
|
|
// Argument : PointDB& ptVer1Long 返回拟合椭圆长轴的一个端点
|
|
// Argument : PointDB& ptVer2Long 返回拟合椭圆长轴的另一个端点
|
|
// Argument : PointDB& ptVer1Short 返回拟合椭圆短轴的一个端点
|
|
// Argument : PointDB& ptVer2Short 返回拟合椭圆短轴的另一个端点
|
|
// Argument : double& dShaftLong 返回拟合椭圆的长轴长度
|
|
// Argument : double& dShaftShort 返回拟合椭圆的短轴长度
|
|
|
|
EXP int WINAPI ExpEllipseFit(PointDB* ptArr,int count,PointDB& center,PointDB& ptVer1Long,PointDB& ptVer2Long,PointDB& ptVer1Short,PointDB& ptVer2Short,double& dShaftLong,double& dShaftShort);
|
|
|
|
// Function name : ArcReviseAngle
|
|
// Description : 圆弧起点终点,起始角终止角转换函数
|
|
// Argument : pot1Arc,pot2Arc,pot3Arc 输入圆弧上三点 center为圆心,radius为半径
|
|
// Argument : ptStart,ptEnd 返回圆弧起点终点
|
|
//Argument : dAngleStart,dAngleEnd返回起始角终止角
|
|
EXP void WINAPI ArcReviseAngle(Point pot1Arc,Point pot2Arc,Point pot3Arc,Point center,double radius,Point& ptStart,Point& ptEnd,double& dAngleStart,double& dAngleEnd);
|
|
|
|
EXP void WINAPI Circle_3P(Point pot1Arc,Point pot2Arc,Point pot3Arc,Point& center,double& radius);
|
|
|
|
EXP void WINAPI LintTo4P(Point p1,Point p2,Point point,Point& pa,Point& pb,Point& pc,Point& pd);
|
|
|
|
// Function name : ExpCircleBoundSearch
|
|
// Description : 区域查找圆,输入一个环形区域,返回区域内的一个圆的圆心和半径
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : PointDB& center 输入环形的圆心同时用于返回查找出的圆的圆心
|
|
// Argument : double dRadiusIn 输入环形的内径值
|
|
// Argument : double dRadiusOut 输入环形的外径值
|
|
// Argument : double& dRadius 返回查找出的圆的半径
|
|
|
|
EXP int WINAPI ExpCircleBoundSearch1(LPBYTE pBits,int nWidth,int nHeight,PointDB& center,double dRadiusIn,double dRadiusOut,double& dRadius);
|
|
|
|
// Function name : ExpCirclePotSearch
|
|
// Description : 点查找圆,输入一个点,查找包围该点的最小的圆
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : Point pot 输入一个点
|
|
// Argument : PointDB& center 返回查找出的圆的圆心
|
|
// Argument : double& dRadius 返回查找出的圆的半径
|
|
|
|
EXP int WINAPI ExpCirclePotSearch1(LPBYTE pBits,int nWidth,int nHeight,Point pot,PointDB& ptCenter,double& dRadius);
|
|
|
|
// Function name : ExpCirclePotSearch
|
|
// Description : 点查找圆,输入一个点,查找包围该点的最小的圆
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : Point pot 输入一个点
|
|
// Argument : PointDB& center 返回查找出的圆的圆心
|
|
// Argument : double& dRadius 返回查找出的圆的半径
|
|
|
|
//超强查找
|
|
|
|
EXP int WINAPI ExpCirclePotSearch2(LPBYTE pBits,int nWidth,int nHeight,Point pot,PointDB& ptCenter,double& dRadius);
|
|
|
|
|
|
// Function name : ExpArrEdgeCircle
|
|
// Description : 输入一个环形区,返回区内的圆边沿点数组和数组长度
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : Point center 输入环形区圆心
|
|
// Argument : double dRadiusStart 输入环形区的搜索起始半径
|
|
// Argument : double dRadiusEnd 输入环形区的搜索终止半径
|
|
// Argument : PointDB* ptArr 返回边沿点数组
|
|
// Argument : int& count 返回边沿点数组长度
|
|
// Argument : int threshold=-1 输入阈值,如果使用默认参数,表示自动查找最佳阈值
|
|
|
|
EXP int WINAPI ExpArrEdgeCircle2(LPBYTE pBits,int nWidth,int nHeight,Point center,double dRadiusStart,double dRadiusEnd,PointDB* ptArr,int& count,int threshold=-1);
|
|
|
|
// Function name : ExpArrCirclePotSearch
|
|
// Description : 点返回圆边沿数组,输入一个点,查找包围该点的最小的圆的边沿数组
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : Point pot 输入一个点
|
|
// Argument : PointDB* ptArr 返回边沿点数组
|
|
// Argument : int& count 返回边沿点数组长度
|
|
// Argument : int threshold=-1 输入阈值,如果使用默认参数,表示自动查找最佳阈值
|
|
|
|
EXP int WINAPI ExpArrCirclePotSearch(LPBYTE pBits,int nWidth,int nHeight,Point pot,PointDB* ptArr,int& count,int threshold=-1);
|
|
|
|
// Function name : PlumbLine
|
|
// Description : 输入一条线段返回经过它第一个端点的垂线
|
|
// Return type : void WINAPI
|
|
// Argument : Point pot1 输入线段的第一个端点
|
|
// Argument : Point pot2 输入线段的第二个端点
|
|
// Argument : int width 输入屏幕宽度
|
|
// Argument : int height 输入屏幕高度
|
|
// Argument : Point& pot3 返回垂线与屏幕边框的第一个交点
|
|
// Argument : Point& pot4 返回垂线与屏幕边框的第二个交点
|
|
EXP void WINAPI PlumbLine(PointDB pot1,PointDB pot2,int width,int height,PointDB& pot3,PointDB& pot4);
|
|
|
|
// Function name : Bisector
|
|
// Description : 输入两条线段返回它们的角平分线
|
|
// Return type : void WINAPI
|
|
// Argument : Point pot1 第1条线段的第1个端点
|
|
// Argument : Point pot2 第1条线段的第2个端点
|
|
// Argument : Point pot3 第2条线段的第1个端点
|
|
// Argument : Point pot4 第2条线段的第2个端点
|
|
// Argument : int width 输入屏幕宽度
|
|
// Argument : int height 输入屏幕高度
|
|
// Argument : Point& pot5 返回角平分线与屏幕边框的第一个交点
|
|
// Argument : Point& pot6 返回角平分线与屏幕边框的第二个交点
|
|
|
|
EXP void WINAPI Bisector(PointDB pot1,PointDB pot2,PointDB pot3,PointDB pot4,int width,int height,PointDB& pot5,PointDB& pot6);
|
|
|
|
EXP int WINAPI ExpLineFit2(PointDB* ptArr,int count,PointDB& pot1Line,PointDB& pot2Line);
|
|
|
|
EXP int WINAPI ExpArrEdgeLine2(LPBYTE pBits,int nWidth,int nHeight,Point Start1Rect,Point Start2Rect,Point End1Rect,Point End2Rect,PointDB* ptArr,int& count,int threshold);
|
|
EXP int WINAPI ExpArrTwoEdge(LPBYTE pBits,int nWidth,int nHeight,Point Start1Rect,Point Start2Rect,Point End1Rect,Point End2Rect,PointDB* ptArr1,int& count1,PointDB* ptArr2,int& count2,int threshold);
|
|
|
|
|
|
|
|
// Function name : ExpArrTwoEdge
|
|
// Description : 输入一个矩形框,返回框内的两条直线边沿点数组和数组长度
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : Point Start1Rect 输入矩形框既搜索起始边的第一个顶点
|
|
// Argument : Point Start2Rect 输入矩形框既搜索起始边的第二个顶点
|
|
// Argument : Point End1Rect 输入矩形框既搜索终止边的第一个顶点
|
|
// Argument : Point End2Rect 输入矩形框既搜索终止边的第二个顶点
|
|
// Argument : PointDB* ptArr1 返回边沿点数组1
|
|
// Argument : int& count1 返回边沿点数组1长度
|
|
// Argument : PointDB* ptArr2 返回边沿点数组2
|
|
// Argument : int& count2 返回边沿点数组2长度
|
|
// Argument : int threshold 输入阈值,如果使用默认参数,表示自动查找最佳阈值
|
|
|
|
EXP int WINAPI ExpArrTwoEdgeNew(LPBYTE pBits,int nWidth,int nHeight,Point Start1Rect,Point Start2Rect,Point End1Rect,Point End2Rect,PointDB* ptArr1,int& count1,PointDB* ptArr2,int& count2,int threshold=-1);
|
|
|
|
// Function name : ExpArrEdgeLine
|
|
// Description : 输入一个矩形框,返回框内的直线边沿点数组和数组长度
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : Point Start1Rect 输入矩形框既搜索起始边的第一个顶点
|
|
// Argument : Point Start2Rect 输入矩形框既搜索起始边的第二个顶点
|
|
// Argument : Point End1Rect 输入矩形框既搜索终止边的第一个顶点
|
|
// Argument : Point End2Rect 输入矩形框既搜索终止边的第二个顶点
|
|
// Argument : Point* ptArr 返回边沿点数组
|
|
// Argument : int& count 返回边沿点数组长度
|
|
// Argument : int threshold=-1 输入阈值,如果使用默认参数,表示自动查找最佳阈值
|
|
|
|
EXP int WINAPI ExpArrEdgeLineNew(LPBYTE pBits,int nWidth,int nHeight,Point Start1Rect,Point Start2Rect,Point End1Rect,Point End2Rect,PointDB* ptArr,int& count,int threshold=-1);
|
|
|
|
// Function name : ExpLineFit
|
|
// Description : 直线拟合函数
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : Point* ptArr 输入参与拟合运算的点数组
|
|
// Argument : int count 点数组长度
|
|
// Argument : Point& pot1Line 返回拟合线段一个端点
|
|
// Argument : Point& pot2Line 返回拟合线段的另一个端点
|
|
EXP int WINAPI ExpArrEdgeArcNew(LPBYTE pBits,int nWidth,int nHeight,Point center,double dRadiusStart,double dRadiusEnd,double dAngleStart,double dAngleEnd,PointDB* ptArr,int& count,int threshold=-1);
|
|
|
|
EXP int WINAPI ExpLineFitNew(PointDB* ptArr,int count,PointDB& pot1Line,PointDB& pot2Line);
|
|
|
|
EXP int WINAPI ExpArrEdgeCircleNew(LPBYTE pBits,int nWidth,int nHeight,Point center,double dRadiusStart,double dRadiusEnd,PointDB* ptArr,int& count,int threshold=-1);
|
|
|
|
|
|
// Function name : NearInsertValue
|
|
// Description :
|
|
// Return type : void WINAPI
|
|
// Argument : MYPIXEL *lpOldDIBBits 输入图像指针
|
|
// Argument : int oldWidth 输入图像宽度
|
|
// Argument : int oldHeight 输入图像高度
|
|
// Argument : MYPIXEL *lpNewDIBBits 输入图像指针
|
|
// Argument : int newWidth 输出图像高度
|
|
// Argument : int newHeight 输出图像高度
|
|
|
|
//几何校正(球形镜头校正)
|
|
EXP int WINAPI GeometryAdjust(MYPIXEL *pBits,int nWidth,int nHeight,double R/*球的半径*/);
|
|
//精确修改版//功能同上
|
|
EXP void WINAPI GeometryAdjustA(MYPIXEL *pBits,int inWidth,int inHeight,double R,MYPIXEL *pNewBits,int outWidth,int outHeight);
|
|
|
|
EXP int WINAPI FindLine(LPBYTE pBits,int nWidth,int nHeight,Point Start1Rect,Point Start2Rect,Point End1Rect,Point End2Rect,PointDB* ptArr,int& count,int threshold);
|
|
EXP void WINAPI Get_BianYuan(LPBYTE pBits,int nWidth,int nHeight,int threshold=-1);
|
|
|
|
// Function name : CTaperFit::Fitting
|
|
// Description : 返回拟合结果
|
|
// Return type : BOOL 返回TRUE,表示拟合出结果,返回FALSE,表示无法拟合
|
|
// Argument : MY3DPoint* pArr 输入欲进行拟合运算的点坐标数组
|
|
// Argument : int num 输入欲进行拟合运算的点数目
|
|
// Argument : double &x_Value 返回拟合出的圆锥顶点x坐标
|
|
// Argument : double &y_Value 返回拟合出的圆锥顶点y坐标
|
|
// Argument : double &z_Value 返回拟合出的圆锥顶点z坐标
|
|
// 圆锥轴心线用方程 (x-x0)/p=(y-y0)/q=(z-z0)/r,x0,y0,z0就是上面求出的圆锥顶点的x,y,z坐标
|
|
// Argument : double &p_Value 返回圆锥轴心线方程中的p值
|
|
// Argument : double &q_Value 返回圆锥轴心线方程中的q值
|
|
// Argument : double &r_Value 返回圆锥轴心线方程中的r值
|
|
// Argument : double &R_Value 返回圆锥顶角的余弦值
|
|
|
|
EXP int WINAPI TaperFit(MY3DPoint* pArr,int num,double &x_Value,double &y_Value,double &z_Value,double &p_Value,double &q_Value,double &r_Value,double &R_Value);
|
|
|
|
|
|
// Function name : columnFit::Fitting
|
|
// Description : 拟和函数,该函数参数返回拟和后的圆柱的半径和轴心线信息
|
|
// Return type : void WINAPI
|
|
// 轴心线以方程(x-x1)/p=(y-y1)/q=(z-z1)/r
|
|
// Argument : double& x_Value 返回轴心线的x1值
|
|
// Argument : double& y_Value 返回轴心线的y1值
|
|
// Argument : double& z_Value 返回轴心线的z1值
|
|
// Argument : double& p_Value 返回轴心线的p值
|
|
// Argument : double& q_Value 返回轴心线的q值
|
|
// Argument : double& r_Value 返回轴心线的r值
|
|
// Argument : double& R_Value 返回圆柱的半径R值
|
|
|
|
EXP bool WINAPI ColumnFit(MY3DPoint* pArr,int num,double& x_Value,double& y_Value,double& z_Value,double& p_Value,double& q_Value,double& r_Value,double& R_Value);
|
|
EXP int WINAPI Read_Barcode(LPBYTE pBits,PointDB *ptr,int *Num);//int& x,int& y,int& x_off, int& y_off, char type, int num, char dir);
|
|
EXP int WINAPI FaceFit(MY3DPoint* pArr,int n, double* Coe, double* Error, double& dis, double& dis2, double& dis3);
|
|
EXP int WINAPI Pro_Drl(char *str,int& len,READPOINT* myvalue, int type, int flag);//(char *str,std::vector<READPOINT> &myvalue);
|
|
|
|
// Res放四边形ABCD四点,Dest分别返回图形区域中最靠近AB、BC、CD、DA边的四点
|
|
EXP void WINAPI PicGetPoint(BYTE * mBits, Point *Dest, const Point Res[4], int mWidth, int mHeight);
|
|
EXP void WINAPI TestVec(std::vector<int>& t1,std::vector<double>& t2);
|
|
// 边沿点及平均值
|
|
// Return Value:
|
|
// Pots 跳变点
|
|
// DBPots 平均后的跳变点
|
|
//
|
|
// Entry:
|
|
// Res 边框四点,顺时针或逆时针压入
|
|
|
|
// Set 4控制参数。
|
|
// THREAD_WIDTH; //线宽
|
|
// AVER_NUMS; //做一个平均值的个数
|
|
// RETURN_NUM_POINTS; //返回点数
|
|
// MIN_POINTS; //认为是曲线的最少点数
|
|
EXP void WINAPI Pro_Get_PAve_Value(BYTE * mBits, Point* Pots, PointDB* DBPots, const Point Res[4], const SetCtrl & Set, int* num,int &num1, int mWidth, int mHeight,int YV);
|
|
|
|
// Function name : ExpArrEdgeArc
|
|
// Description : 输入一个环扇形区,返回区内的圆弧边沿点数组和数组长度
|
|
// Return type : int 返回非0值,表示函数正常执行,返回0值,表示执行失败
|
|
// Argument : LPBYTE pBits 输入图像像素数组
|
|
// Argument : int nWidth 输入图像宽度
|
|
// Argument : int nHeight 输入图像高度
|
|
// Argument : PointDB mPos 输入当前点
|
|
// Argument : Point* ptArr 返回边沿点数组
|
|
// Argument : int& count 返回边沿点数组长度
|
|
// Argument : int threshold=-1 输入阈值,如果使用默认参数,表示自动查找最佳阈值
|
|
EXP int WINAPI ExpArcPoints(LPBYTE pBits,int nWidth,int nHeight,PointDB mPos,PointDB* ptArr,int& count,int threshold,PointDB
|
|
&cen,double& R);
|
|
|
|
|
|
EXP void WINAPI init_Lasercom(void);
|
|
EXP double WINAPI Get_Lasercom(void);
|
|
EXP void WINAPI Start_Lasercom(char mode,int nTime);
|
|
EXP void WINAPI End_Lasercom(void);
|
|
EXP void WINAPI Get_Light_Parameter(long *power_value,float *max_value, float *min_value,long *focal_value);
|
|
EXP void WINAPI Set_Power(char type,int value);
|
|
EXP int WINAPI Get_laserValue(float *value, float *mSnr,float *mQuality);
|
|
|
|
|
|
//处理松下PLC_232通讯
|
|
EXP void WINAPI SetBit(int nAddr,bool bSet);//
|
|
EXP bool WINAPI GetBit(int nAddr);
|
|
EXP void WINAPI SetDTData(int nAddr,int data);
|
|
EXP int WINAPI GetDTData(int nAddr);
|
|
|
|
//松下PLC_USB_IO通讯
|
|
EXP void WINAPI SetPLCData(int data);
|
|
EXP int WINAPI GetPLCData(void );
|
|
|
|
|
|
|
|
EXP char WINAPI Get_Usb_Switch_Data(void);
|
|
|
|
|
|
//返回最小包围盒
|
|
EXP void WINAPI pro_Min_Box(PointDB *pc,double *nWidth, double *nHeight,double *nAngle);
|
|
//返回当前周苌
|
|
EXP double WINAPI pro_Length(void);
|
|
//返回面积
|
|
EXP double WINAPI pro_Area(void );
|
|
//返回当前周苌 面积
|
|
EXP void WINAPI pro_Length_Area(double *mLen,double *mArea);
|
|
|
|
//返回最小包围盒 周苌 面积
|
|
EXP void WINAPI pro_Min_Box_LenArea(PointDB *pc,double *nWidth, double *nHeight,double *nAngle,double *nLen,double *nArea);
|
|
//返回最小包围盒 周苌 面积,外围角点
|
|
EXP void WINAPI pro_Min_Box_LenArea1(PointDB *pc,double *nWidth, double *nHeight,double *nAngle,double *nLen,double *nArea,PointDB *nPtr,int &nNum,double &nDis_Tal,PointDB *pc1);
|
|
|
|
|
|
EXP void WINAPI GetKeycen_LaseData(float *value1,float *value2);
|
|
|
|
//返回当前画面封闭区域面积和周长
|
|
EXP void WINAPI Get_All_Lenth_Area(PBYTE buf, int mWidth, int mHeight,int mU,int mD,double* mLength, double* mArea,int *nNum);
|
|
|
|
|
|
//LK_H GETDATA
|
|
EXP void WINAPI GetData_LKH(float *value1,float *value2);
|
|
EXP void WINAPI Link_LKH();
|
|
//得到buf图形中的距形中点坐标x,y
|
|
EXP void WINAPI Get_Rangle(PBYTE buf,int mWidth, int mHeight,double *x,double *y,double *nAngle,double *mW, double *mH);
|
|
|
|
EXP void WINAPI Get_PRangle(PBYTE buf,int mWidth, int mHeight,PointDB pos,double *x,double *y,double *nAngle,double *mW, double *mH);
|
|
|
|
EXP void WINAPI Set_Image_Face(double scalex,double scaley,int row,int col,double nRow_dis,double nCol_dis,char g_En_Flag,double midx,double midy,struct Image_Section *mFace_Section,int num);
|
|
|
|
EXP void WINAPI Get_All_Cen_Area(PBYTE buf, int mWidth, int mHeight,int Setp,char flag,int SetV,PointDBV* pc,int *nNum);
|
|
EXP void WINAPI Get_Rangle_Points(PBYTE buf,int startX,int startY,int nW,int nH,PointDB* ptr,int *num);
|
|
|
|
EXP void WINAPI Get_Rangle_Box(PointDB *ptr,int n,PointDB *cen,double *w,double *h,double *angle);
|
|
|
|
//获得激光扫描点的数据
|
|
EXP int WINAPI GetLaserStoredData(float *GetStorageData,int *GetStorageNumber);
|
|
//获得激光扫描时候的实时数据
|
|
EXP int WINAPI PauseScanAndGetLaserData(float *GetStorageData,int *GetStorageNumber);
|
|
//获得激光扫描时候的状态
|
|
EXP void WINAPI GetKeyenceStorageStatus(int& _bStatus,int& _StorageNumber);
|
|
}
|
|
|
|
#endif |