602 lines
11 KiB
C++
602 lines
11 KiB
C++
// protocol for control SevenOcean's Machine
|
|
//
|
|
//////////////////////////////////////////////////////////////////////
|
|
#ifndef EF8000_INTERFACE_H_INCLUDED_
|
|
#define EF8000_INTERFACE_H_INCLUDED_
|
|
|
|
|
|
#if _MSC_VER > 1000
|
|
#pragma once
|
|
#endif // _MSC_VER > 1000
|
|
|
|
#pragma pack(push)
|
|
#pragma pack(16)
|
|
/*
|
|
struct PointDB
|
|
{
|
|
double _x;
|
|
double _y;
|
|
PointDB()
|
|
{
|
|
_x=0.0;
|
|
_y=0.0;
|
|
}
|
|
|
|
PointDB(double x,double y)
|
|
{
|
|
_x=x;
|
|
_y=y;
|
|
}
|
|
|
|
PointDB operator-(PointDB& pot)
|
|
{
|
|
PointDB temp;
|
|
temp._x=_x-pot._x;
|
|
temp._y=_y-pot._y;
|
|
return temp;
|
|
}
|
|
|
|
PointDB operator+(PointDB& pot)
|
|
{
|
|
PointDB temp;
|
|
temp._x=_x+pot._x;
|
|
temp._y=_y+pot._y;
|
|
return temp;
|
|
}
|
|
|
|
PointDB operator/(double div)
|
|
{
|
|
PointDB temp;
|
|
temp._x=_x/div;
|
|
temp._y=_y/div;
|
|
return temp;
|
|
}
|
|
|
|
PointDB operator*(double mul)
|
|
{
|
|
PointDB temp;
|
|
temp._x=_x*mul;
|
|
temp._y=_y*mul;
|
|
return temp;
|
|
}
|
|
bool operator==(PointDB& pot) { return _x==pot._x&&_y==pot._y; }
|
|
PointDB operator=(PointDB pot) { _x=pot._x; _y=pot._y; return (*this); }
|
|
double length()
|
|
{
|
|
return sqrt(_x*_x+_y*_y);
|
|
}
|
|
};
|
|
|
|
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_light2;
|
|
|
|
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 ;
|
|
//FP g_BarCode_List[BAR_CODE_WIDTH*BAR_CODE_HEIGHT];
|
|
// vector <FP> g_BarCode_List;
|
|
|
|
g_light2 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;
|
|
//video_80M g_video_80M;
|
|
|
|
|
|
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;
|
|
|
|
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=(float)0.005;
|
|
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.00242209;
|
|
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=0.5;
|
|
MaxisY_Scale=0.5;
|
|
MaxisZ_Scale=0.5;
|
|
|
|
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;
|
|
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_M1k_Mode=0;
|
|
g_Mon=0;
|
|
|
|
BarCodeX=0;
|
|
BarCodeY=0;
|
|
RunBar_Mode=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;
|
|
|
|
};
|
|
}g_Dev_Info;
|
|
*/
|
|
enum FileHandleMode
|
|
{
|
|
fmOpenRead=0,
|
|
fmOpenWrite,
|
|
fmOpenReadWrite
|
|
};
|
|
|
|
//======================================================================================
|
|
class CEF8000_Interface
|
|
{
|
|
public:
|
|
BYTE Set_Speed[15][4];
|
|
double slow_dis[15];
|
|
double g_precision[3];
|
|
Dev_Info Image_Info;
|
|
|
|
public:
|
|
CEF8000_Interface();
|
|
~CEF8000_Interface();
|
|
BOOL SaveSpeedParameter(CString _FileName);
|
|
BOOL OpenSpeedParameter(CString _FileName);
|
|
BOOL OpenMotorDat();
|
|
|
|
protected:
|
|
void GetAppPath(CString &Path);
|
|
FILE* FileOpen(const CString filename,const int Mode);
|
|
int FileSeek(FILE * _Handle, long _Offset, int _Origin);
|
|
int FileRead(FILE * _Handle, void *_Buffer, int _Count);
|
|
int FileWrite(FILE * _Handle, const void *_Buffer, int _Count);
|
|
int FileClose(FILE * _Handle);
|
|
|
|
};
|
|
|
|
#pragma pack(pop)
|
|
#endif
|