// 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 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