新增IO口状态的读取和速度参数保存为EF8000 DAT文件格式。

This commit is contained in:
TAO Cheng
2013-06-20 11:18:44 +08:00
parent d8d357c553
commit e842462af2
17 changed files with 1459 additions and 73 deletions
@@ -0,0 +1,602 @@
// 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
#include "DLL.h"
#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);
protected:
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