JonYang il y a 1 jour
Parent
commit
295aa205ec

BIN
Output/bin/x64/Control.dll


BIN
Output/bin/x64/Control.pdb


BIN
Output/bin/x64/JSMotion.dll


BIN
Output/bin/x64/Module.dll


BIN
Output/bin/x64/Module.pdb


BIN
Output/bin/x64/SBT_zh_CN.qm


BIN
Output/bin/x64/configurations.db


BIN
Output/config/db/Hardware.db


BIN
Output/config/db/MachineCalibration.db


BIN
Output/config/db/ModuleConfig.db


BIN
Output/config/db/Product1/Product.db


BIN
Output/dll/x64/Control.dll


BIN
Output/dll/x64/JSMotion.dll


BIN
Output/dll/x64/Module.dll


+ 4 - 3
Output/inc/Module/AxisPara.h

@@ -22,9 +22,10 @@ enum HomeMethod
     HOME2HOME = 2,
     INDEX2HOME = 4,
     DIRECT2HOME = 5,
-    LEFTLIMITHOME = 6,
-    RIGHTLIMITHOME = 7,
-
+    NEGLIMITINDEXHOME = 6,
+    POSLIMITINDEXHOME = 7,
+    NEGLIMITHOME = 8,
+    POSLIMITHOME = 9,
 };
 
 struct CardData

+ 16 - 7
Output/inc/Module/CBondHead.h

@@ -99,11 +99,11 @@ public:
 
 	//吸嘴固晶
 	virtual LONG PlaceDie(int index, X_Y_ANGLE_STRUCT lookUpOffsetPixel) = 0;
-	virtual LONG MoveToBondGrabPos(int index) = 0;
-	virtual LONG BondGrab(int index, X_Y_ANGLE_STRUCT& result) = 0; //返回的拍照结果为物理单位
-	virtual LONG ToBondPos_AddOffset(int index, X_Y_ANGLE_STRUCT bondOffset, X_Y_ANGLE_STRUCT lookUpOffset, bool waitDone = true) = 0;//传入物理位置
+	virtual LONG MoveToBondGrabPos(int index);
+	virtual LONG BondGrab(int index, X_Y_ANGLE_STRUCT& result); //返回的拍照结果为物理单位
+	virtual LONG ToBondPos_AddOffset(int index, X_Y_ANGLE_STRUCT bondOffset, X_Y_ANGLE_STRUCT lookUpOffset, bool waitDone = true);//传入物理位置
 	virtual LONG BondDieDown(int index) = 0;//传入物理位置
-	virtual LONG BondDieUp(bool waitDone = true) = 0 ;
+	virtual LONG BondDieUp(bool waitDone = true);
 	virtual LONG FindForce(double force);		//寻压,寻找力控轴反馈位置
 	virtual LONG UpdateForce(double dForce);		//切换力的大小
 	virtual LONG GetCurForceCurrentPercent(short& current);
@@ -114,13 +114,20 @@ public:
 	//virtual LONG BondHighTest();
 
 	//标定
-	virtual LONG HighCameraCTDCalib() { return OK; }
+	//virtual LONG HighCameraCTDCalib() { return OK; }
 	virtual LONG LowCameraPosCalib();
 	virtual LONG LowCTDNozzlePosCalib();
 	virtual LONG CalLowCTDResult();
+	virtual LONG HighCameraPosCalib() { return OK; };
+	virtual LONG HighCTDNozzlePosCalib() { return OK; };
+	virtual LONG CalHighCTDResult() { return OK; };
+
+
+
 	virtual LONG NozzleRotCenterCalib();
 
 	virtual LONG LowCameraXYCalib();
+	virtual LONG HighCameraXYCalib() { return OK; };
 	virtual LONG LookUpCameraXYCalib();
 
 	//创建流程模板
@@ -135,11 +142,13 @@ public:
 
 	//创建标定模板
 	virtual LONG CreateLowCameraCalibTemp();
+	virtual LONG CreateHighCameraCalibTemp();
 	virtual LONG CreateLookUpCameraCalibTemp();
 	virtual LONG CreateRCalibTemp();
 
 	virtual LONG CreateCTDLookUpCameraTemp();
-	virtual LONG CreateCTDHeadCameraTemp();
+	virtual LONG CreateCTDLowCameraTemp();
+	virtual LONG CreateHighCameraCTDTemp();
 
 	virtual LONG CreateCTDTipTemp();
 
@@ -200,7 +209,7 @@ protected:
 
 	double m_dLookUpGrabPosX = 0;
 	double m_dLookUpGrabPosY = 0;
-	double m_dLookUpPosZ = 0;
+	double m_dLookUpGrabPosZ = 0;
 
 	double m_dPreChangeNozzleDisY = 0;//预更换吸嘴偏差位置
 	double m_dNozzlePosZ = 0;		  //吸嘴架位置Z

+ 24 - 13
Output/inc/Module/CBondMatrix.h

@@ -22,23 +22,23 @@ namespace ns_mat
 		UINT nMatrixId;						//使用的晶片台\华夫盒号(矩阵号)
 	}PICK_PARAM;
 
-	typedef struct
+	struct BOND_PARAM
 	{
 		//固晶过程中用到得数据,且由用户设置,需保存到数据库的参数
 		PICKBOND_PARAM_STRUCT stCalibPickParam;		//校准台取晶参数
 		PICKBOND_PARAM_STRUCT stBondParam;			//固晶台固晶参数
 
-		UINT nTemplate_BondFront;					//固前检测模板ID号 0为不检测
-		UINT nTemplate_BondBack;					//固后检测模板ID号 0为不检测
+		UINT nTemplate_BondFront = 0;					//固前检测模板ID号 0为不检测
+		UINT nTemplate_BondBack = 0;					//固后检测模板ID号 0为不检测
 		//UINT nTemplate_SearchModel;					//到模板位置后是否拍照 0为不拍照
-		UINT nTemplate_Bond;						//固晶点对点模板ID号 
-		UINT nTemplate_Calib;						//中转台校准模板号  0为不拍照
-		UINT nTemplate_LookUp;						//上视对点模板号    0为不拍照
+		UINT nTemplate_Bond = 0;						//固晶点对点模板ID号 
+		UINT nTemplate_Calib = 0;						//中转台校准模板号  0为不拍照
+		UINT nTemplate_LookUp = 0;						//上视对点模板号    0为不拍照
 
-		UINT nBondHeadIdByTable;					//固晶吸嘴在吸嘴架上的Id号
+		UINT nBondHeadIdByTable = 0;					//固晶吸嘴在吸嘴架上的Id号
 
 		X_Y_ANGLE_STRUCT stOffset;					//固晶点补偿(从编程的固晶点位置偏移)
-	}BOND_PARAM;
+	};
 
 	//固晶参数,由用于设置得到
 	typedef struct
@@ -64,6 +64,7 @@ namespace ns_mat
 
 	typedef struct _BOND_INDEX_STRUCT
 	{
+		int iInfoId = 1;
 		//UINT iProductId = 1;			//固晶点所在产品Id
 		UINT iPcbMatId = 1;				//固晶点所在PCB Id
 		UINT iPcbRow = 1;				//固晶点在PCB中所在行
@@ -151,9 +152,14 @@ namespace ns_mat
 
 		CProduct* m_pCProduct = nullptr;
 
+
+		//缓存数据结构建议修改
 		vector<PROGRAM_BOND_MATRIX_STRUCT> m_vetBondMatrix;				//Pcb矩阵,从数据库读出来未经处理的数据
+		std::vector<BOND_INFO_STRUCT> m_vetBondInfo;
 		map<int, POINT_INFO_STRUCT> m_mapBondMatrixInfo;
 
+
+	private:
 		void Sort_OrderAndZ();
 		void Sort_AlternateAndZ();
 		void Sort_OrderAndS();
@@ -168,6 +174,11 @@ namespace ns_mat
 
 		void DataChangNotice(string strDbName, string strTableName);
 
+		void SetAllData();
+
+		void SetDBBondInfo(int ptIndex, POINT_INFO_STRUCT pointIndo);
+
+
 	public:
 		CBondMatrix();
 		LONG LoadMatrix(BOND_DIR dir);
@@ -191,13 +202,13 @@ namespace ns_mat
 
 		//获取指定晶圆的位置信息
 		LONG GetPintInfoByIndex(UINT nPtIndex, POINT_INFO_STRUCT& stPointInfo);
-		LONG SetPintInfoByIndex(UINT nPtIndex, POINT_INFO_STRUCT stPointInfo);
+		LONG SetPintInfoByIndex(UINT nPtIndex, POINT_INFO_STRUCT stPointInfo);	//要找到同一矩阵的所有点?
 
 		LONG GetAllBondParam(UINT nPtIndex,BOND_PARAM& bondParam);
 		LONG GetAllPickParam(UINT nPtIndex, PICK_PARAM& pickParam);
 
-		LONG SetBondParam(int nPtIndex, BOND_PARAM bondParam);
-		LONG SetPickParam(int nPtIndex, PICK_PARAM pickParam);
+		LONG SetBondParam(int nPtIndex, BOND_PARAM bondParam);	//要找到同一矩阵的所有点?
+		LONG SetPickParam(int nPtIndex, PICK_PARAM pickParam);  //要找到同一矩阵的所有点?
 
 		/// <summary>
 		/// 设置固晶点对点信息,设置时,固晶点编号所应就的PCB一起设置并计算对点的位置
@@ -210,8 +221,8 @@ namespace ns_mat
 		/// <returns></returns>
 		LONG SetBondAlnInfo(UINT nPtIndex, XY_DOUBLE_STRUCT stBasePosn, DOUBLE dBaseAngle, XY_DOUBLE_STRUCT stAlnPosn, DOUBLE dAlnAngle);
 		
-		LONG SetBondAlnOffset(int index, X_Y_ANGLE_STRUCT offset);
-		LONG SetLookupOffset(int index, X_Y_ANGLE_STRUCT offset);
+		LONG SetBondAlnOffset(int index, X_Y_ANGLE_STRUCT offset);	//流程数据
+		LONG SetLookupOffset(int index, X_Y_ANGLE_STRUCT offset);	//流程数据
 		LONG ResetAlnStatus(UINT nPtIndex);										//清除对点状态,固晶点编号所对应的PCB一起清除
 
 		LONG SetDieStatus(UINT nPtIndex, DIE_STATUS eStatus);					//设置固晶状态

+ 1 - 0
Output/inc/Module/CCalib.h

@@ -130,6 +130,7 @@ protected:
     CPixelLocation* m_pPixelLocation = nullptr;  // ÏñËØÎ»ÖöÔÏóÖ¸Õë
     CManageDB* m_pManageDB = nullptr;
     CMachineCalibration* m_pCalibDB = nullptr; 
+    CCalibrationConfig* m_pCCalibrationConfig = nullptr;
 
     bool m_bStop = false;
 

+ 1 - 2
Output/inc/Module/CConfigBase.h

@@ -33,7 +33,7 @@ namespace ns_db
 		INT iGroupId = 1;
 		string strName = "";
 		string strDescribe = "";
-		//string strDescribe_Eng = "";
+		string strDescribe_Eng = "";
 		INT iUserGrade = 1;
 		INT iChangeFlag = 1;
 		string strValue = "";
@@ -45,7 +45,6 @@ namespace ns_db
 		string strAxisType = "";
 		string sIcon = "";
 		bool bEnable = true;
-
 		string strCallFun = "";
 	}CONFIG_BASE_STRUCT;
 

+ 38 - 22
Output/inc/Module/CEutecticHead.h

@@ -30,22 +30,21 @@ public:
 
 	CXYCalib* GetHighCameraCalib() { return m_pHighXYCalib; }
 	CCTDCalib* GetHighCTDCalib() { return m_pHighCTDCalib; }
-	LONG CreateTemplate_HighCamera(SEARCH_OUT eResultSelect, UINT & iTemplateId);
-	LONG CreateTemplate_LowCamera(SEARCH_OUT eResultSelect, UINT& iTemplateId);
+
 
 	virtual void SetDataChangFunction() override;
 	virtual LONG SetParam() override;
 	virtual LONG GetParam() override;
-	virtual LONG ToHome() override;
-	virtual LONG ToSafePosition() override;
+	//virtual LONG ToHome() override;
+	//virtual LONG ToSafePosition() override;
 	virtual LONG InitResource() override;
 	virtual void DataChangNotice(string strDbName, string strTableName) override;
 
 	virtual void SetPickHTestIndex(int index) override;
 	virtual void SetBondHTestIndex(int index) override;
 	virtual LONG AllBondHighTest() override;
-	virtual LONG VacuumOn(long lDelay) override;		//真空开
-	virtual LONG VacuumOff(long lDelay) override;		//真空关,吹汽延时,ms 
+	//virtual LONG VacuumOn(long lDelay) override;		//真空开
+	//virtual LONG VacuumOff(long lDelay) override;		//真空关,吹汽延时,ms 
 	virtual LONG StrongOn() override;		//强吹开
 	virtual LONG StrongOff() override;		//强吹关
 
@@ -59,38 +58,55 @@ public:
 
 
 	//吸嘴取晶,若返回值错误,需要自行调用回安全位置
-	virtual LONG MoveToPickGrabPos(bool waitDone = true)override;
+	//virtual LONG MoveToPickGrabPos(bool waitDone = true)override;
 	//拍照,取晶,并上行到上视拍照位,主要用于自动流程
-	virtual LONG PickDie(int index)override;
+	//virtual LONG PickDie(int index)override;
 	//移动到拾取位,未拍照
 	//virtual LONG MoveToPickPos()override;
 	//中转台拍照,返回拍照结果,拍照结果仅用于拾取偏移,不存储
-	virtual LONG PickGrab(int index, X_Y_ANGLE_STRUCT& result)override;
+	//virtual LONG PickGrab(int index, X_Y_ANGLE_STRUCT& result)override;
 	//得到拍照结果后补偿,将数据进行转换
-	virtual LONG PickDieDown(int index, X_Y_ANGLE_STRUCT result)override;
-	virtual LONG PickUpToGrabPos()override;
-	virtual LONG PickDieUp(bool waitDone = true)override;//上行到安全位置
+	//virtual LONG PickDieDown(int index, X_Y_ANGLE_STRUCT result)override;
+
 
-	//上视拍照
-	virtual LONG XYZToLookUpGrabPos()override;
-	//移动到上视拍照位,拍照结果放到结构体中
-	virtual LONG LookUpGrab(int index,X_Y_ANGLE_STRUCT& result)override;
+	////上视拍照
+	//virtual LONG XYZToLookUpGrabPos()override;
+	////移动到上视拍照位,拍照结果放到结构体中
+	//virtual LONG LookUpGrab(int index,X_Y_ANGLE_STRUCT& result)override;
 
 	//吸嘴固晶
 	virtual LONG PlaceDie(int index, X_Y_ANGLE_STRUCT lookUpOffsetPixel)override;
-	virtual LONG MoveToBondGrabPos(int index)override;//修改为BondGrabPos
+	//virtual LONG MoveToBondGrabPos(int index)override;//修改为BondGrabPos
 	//返回的拍照结果为物理单位
-	virtual LONG BondGrab(int index, X_Y_ANGLE_STRUCT& result)override;
-	virtual LONG ToBondPos_AddOffset(int index, X_Y_ANGLE_STRUCT bondOffset, X_Y_ANGLE_STRUCT lookUpOffset,
-		bool waitDone = true)override;//传入物理位置
+	//virtual LONG BondGrab(int index, X_Y_ANGLE_STRUCT& result)override;
+	//virtual LONG ToBondPos_AddOffset(int index, X_Y_ANGLE_STRUCT bondOffset, X_Y_ANGLE_STRUCT lookUpOffset,
+	//	bool waitDone = true)override;//传入物理位置
 	virtual LONG BondDieDown(int index)override;//传入物理位置
-	virtual LONG BondDieUp(bool waitDone = true)override;
+	//virtual LONG BondDieUp(bool waitDone = true)override;
 
 //	virtual LONG FindForce(double endPos)override;		//用于自动流程
 //	virtual LONG UpdateForce(double dForce)override;		//切换力的大小
 
+	//创建标定模板
+	virtual LONG CreateHighCameraCalibTemp() override;
+
+	virtual LONG CreateCTDLookUpCameraTemp()override;
+	virtual LONG CreateCTDLowCameraTemp()override;
+	virtual LONG CreateHighCameraCTDTemp()override;
+
+	//virtual LONG HighCameraCTDCalib() override;
+
 	//标定
-	virtual LONG HighCameraCTDCalib() override;
+	virtual LONG HighCameraPosCalib()override;
+	virtual LONG HighCTDNozzlePosCalib()override;
+	virtual LONG CalHighCTDResult()override;
+
+	virtual LONG HighCameraXYCalib()override;
+
+
+
+	//LONG CreateTemplate_HighCamera(SEARCH_OUT eResultSelect, UINT& iTemplateId);
+
 
 private:
 

+ 8 - 2
Output/inc/Module/CHardwareList.h

@@ -4,6 +4,13 @@
 #include <map>
 #include "dt.h"
 
+enum HeadType 
+{
+	UltraHead,
+	EutecticHead,
+};
+
+
 enum CameraList
 {
 	BondLowCamera = 0,
@@ -63,7 +70,6 @@ enum MODULE_LIST {
 	Load1,							//ÉÏÁÏ
 	Unload1,						//ÏÂÁÏ
 	NozzleTable,					//Îü×ì¼Ü
-	UltraHead,						//³¬ÉùÍ·
 
 	Module_Type_Max
 };
@@ -84,7 +90,7 @@ const static std::map<MODULE_LIST, std::string> g_mapModuleList = {
 	{Load1,"Load1"},
 	{Unload1,"Unload1"},
 	{NozzleTable,"NozzleTable"},
-	{UltraHead,"UltraHead"},
+	//{UltraHead,"UltraHead"},
 };
 
 

+ 1 - 1
Output/inc/Module/CLookUpCalib.h

@@ -125,7 +125,7 @@ public:
         SetParam();
     }
 
-    void SetHeadTempID(int tempID) {
+    void SetHeadCameraTempID(int tempID) {
         m_stLookUpParam.nBondTempID = tempID;
         SetParam();
     }

+ 38 - 15
Output/inc/Module/CProduct.h

@@ -78,11 +78,10 @@ namespace ns_db
 		bool bCheckLose;						//漏晶检测
 		bool bFindForce;						//是否寻压
 		double dPreLev;							//预备高度
-		union
-		{
-			double dForce;						//取(固)压力
-			double dPickOrBondLev;				//取(固)高度
-		};
+
+		double dForce;						//取(固)压力
+		double dPickOrBondLev;				//取(固)高度(寻压则无高度)
+
 		UINT iGrabDelay;						//拍图延时
 		UINT iPickOrBondDelay;					//取(固)延时
 		UINT iBlockOrLoseDelay;					//阻塞(漏晶)检测延时
@@ -97,7 +96,7 @@ namespace ns_db
 		TABLE_CALIB = 0x2,									//中转台校准
 		UPLOOK_TABLE_CALIB = UPLOOK_CALIB | TABLE_CALIB		//中转台和LookUp均校准
 	};
-	enum DIE_SOURCE {BY_NUL = 0 /*未指定*/, BY_WAFFLE = 1 /*华夫盒*/, BY_WAFER = 2/*晶片台*/ };
+	enum DIE_SOURCE { BY_NUL = 0 /*未指定*/, BY_WAFFLE = 1 /*华夫盒*/, BY_WAFER = 2/*晶片台*/ };
 
 	//固晶信息
 	typedef struct BOND_INFO_STRUCT : TABLE_INFO_BASE
@@ -280,7 +279,9 @@ namespace ns_db
 		LONG SaveDB() override;
 		LONG LoadDB() override;
 
-#pragma region Program_DieMatrix 表
+
+
+#pragma region Program_DieMatrix 用于wafer
 	private:
 		std::vector<PROGRAM_DIE_MATRIX_STRUCT> m_VecDieMatrix;
 		//加载用户编程数据表
@@ -289,6 +290,8 @@ namespace ns_db
 		LONG GetDieMatrix(UINT nModuleId, std::vector<PROGRAM_DIE_MATRIX_STRUCT>& vecDieMatrix);
 		LONG GetDieMatrix(UINT iMatrixId, PROGRAM_DIE_MATRIX_STRUCT& stDieMatrix);
 		LONG SetDieMatrix(std::vector<PROGRAM_DIE_MATRIX_STRUCT> stDieMatrix, bool bAppend = false);
+
+
 #pragma endregion
 
 #pragma region Program_WaferMatrix 表
@@ -297,7 +300,7 @@ namespace ns_db
 		//加载用户编程数据表
 		LONG LoadWaferMatrix();
 	public:
-		std::vector<PROGRAM_WAFER_MATRIX_STRUCT> GetWaferMatrix() {	return m_VecWaferMatrix	;};
+		std::vector<PROGRAM_WAFER_MATRIX_STRUCT> GetWaferMatrix() { return m_VecWaferMatrix; };
 
 #pragma endregion
 
@@ -316,8 +319,12 @@ namespace ns_db
 		std::vector<PROGRAM_BOND_MATRIX_STRUCT> m_VecBondMatrix;
 		//加载用户编程数据表
 		LONG LoadBondMatrix();
+		LONG SaveBondMatrix();
 	public:
 		std::vector<PROGRAM_BOND_MATRIX_STRUCT> GetBondMatrix() { return m_VecBondMatrix; };
+		void SetBondMatrix(int matrixID, PROGRAM_BOND_MATRIX_STRUCT matrix);
+		int AddBondMatrix(PROGRAM_BOND_MATRIX_STRUCT matrix, int& newId);
+		void DeleteBondMatrix(int matrixID);
 
 #pragma endregion
 
@@ -326,9 +333,14 @@ namespace ns_db
 		std::vector<PROGRAM_POINT_MATRIX_STRUCT> m_VecPointMatrix;
 		//加载用户编程数据表
 		LONG LoadPointMatrix();
+		LONG SavePointMatrix();
 	public:
 		LONG GetPointMatrix(UINT iMatrixId, PROGRAM_POINT_MATRIX_STRUCT& stPointMatrix);
 
+		LONG AddPointMatrix(int bondMatrixID, PROGRAM_POINT_MATRIX_STRUCT subMatrix,int& newId);
+		LONG SetPointMatrix(int matrixID, PROGRAM_POINT_MATRIX_STRUCT dieMatrix);
+		LONG DeletePointMatrix(int bondMatrixId, int subMatrixID);
+
 #pragma endregion
 
 #pragma region Program_BondInfo 表
@@ -336,9 +348,14 @@ namespace ns_db
 		std::vector<BOND_INFO_STRUCT> m_VecBondInfoData;
 		//加载用户编程数据表
 		LONG LoadBondInfoData();
+		LONG SaveBondInfoData();
 	public:
 		LONG GetBondInfoData(UINT iInfoId, BOND_INFO_STRUCT& stBondInfoData);
 
+		LONG SetBondInfoData(int infoId, BOND_INFO_STRUCT stBondInfoData);
+		LONG AddBondInfoData(BOND_INFO_STRUCT stBondInfoData,int& newInfoId);//需要指定矩阵ID
+		LONG DeleteBondInfoData(int infoId);
+
 #pragma endregion
 
 #pragma region Program_Param 表
@@ -346,8 +363,14 @@ namespace ns_db
 		std::vector<PICKBOND_PARAM_STRUCT> m_VecBondParam;
 		//加载用户编程数据表
 		LONG LoadBondParam();
+		LONG SaveBondParam();
+
 	public:
-		LONG GetBondParam(UINT iParamId, PICKBOND_PARAM_STRUCT& stBondParam) ;
+		LONG GetBondParam(UINT iParamId, PICKBOND_PARAM_STRUCT& stBondParam);
+		LONG SetBondParam(int paramId, PICKBOND_PARAM_STRUCT stBondParam);
+
+		LONG AddBondParam(PICKBOND_PARAM_STRUCT stBondParam,int& newId);//需要指定bondInfo 的id,将数据进行
+		LONG DeleteBondParam(int paramId);
 
 #pragma endregion
 
@@ -379,8 +402,8 @@ namespace ns_db
 
 	public:
 		std::vector<STEP_DETAIL> GetStepListDetail(UINT iFunctionId);
-		std::vector<STEP_DETAIL> GetStepListDetail() {return m_vecStepDetail;};
-		
+		std::vector<STEP_DETAIL> GetStepListDetail() { return m_vecStepDetail; };
+
 #pragma endregion
 
 #pragma region StepPublicData 表
@@ -392,10 +415,10 @@ namespace ns_db
 	public:
 		vector<STEP_PUBLIC_DATA> GetStepPublicData() { return m_mapStepPublicData; };
 		LONG SetStepPublicData(vector<STEP_PUBLIC_DATA> vecStepPublicData, bool bAppend = false);
-		
+
 #pragma endregion
 
-	
+
 #pragma region PR_Strategy 表
 	private:
 		std::vector<PR_STRATEGY>  m_vecPrStrategy;
@@ -406,7 +429,7 @@ namespace ns_db
 		std::vector<PR_STRATEGY>  GetPrStrategy() { return m_vecPrStrategy; };
 		LONG AddPrStrategy(vector<UINT> vecTemplateId);
 #pragma endregion
-	
+
 
 #pragma region PR_Template 表
 	private:
@@ -418,7 +441,7 @@ namespace ns_db
 		std::vector<PR_TEMPLATE>  GetPrTemplate() { return m_vecPrTemplate; };
 		LONG AddPrTemplate(PR_TEMPLATE stTemplate);
 #pragma endregion
-		
+
 
 	};
 

+ 1 - 0
Output/inc/Module/CWaferTable.h

@@ -94,6 +94,7 @@ public:
     LONG SetSoftLimitRadius(SOFTLIMITTYPE nSoftLimitType, XY_LONG_STRUCT stPosn1, XY_LONG_STRUCT stPosn2, XY_LONG_STRUCT stPosn3);
 
     LONG CreateCameraCalibTemplate();
+    LONG CreateRCalibTemplate();
     LONG CameraCalib();
 
     LONG CreateDieTemplate();//´´½¨ËÑË÷¾§Æ¬Ä£°å

+ 0 - 4
Output/inc/Module/ICoord.h

@@ -4,10 +4,6 @@
 #include "JAxis.h"
 
 #include <vector>
-//#include "config.h"
-//#include "LookAheadEx.h"
-//#include "src/Common/JFile.h"
-//#include "3rd/json/json.h"
 
 struct CoordPara
 {

+ 12 - 4
Output/inc/Module/JAxis.h

@@ -75,6 +75,10 @@
 #define AXIS_CMD_ERROR_MSG_FAULT 24
 
 
+//无法获取轴信息
+#define AXIS_CMD_ERROR_NO_INFO 25
+
+
 
 #define AXIS_HOME_ERROR_NO_HOME  1001
 #define AXIS_HOME_ERROR_NO_INDEX  1002
@@ -235,13 +239,16 @@ public:
     virtual const AxisData* GetAxisData() const /*{return m_stData;}*/ = 0;
 
     //设置轴数据结构体中的数据(新增)
-    virtual int SetAxisData(AxisData* data) = 0;
+    //virtual int SetAxisData(const AxisData* data) = 0;
 
 
     //获取轴当前的轴类型,如Servo,Forcer,Step;其实没有意义,需要删除2024/11/25
     virtual AxisType GetAxisType() = 0;
 
 
+    //设置SDO值
+    virtual int SetSDOValue(long nSlave,unsigned short nIndex,unsigned short nSubIndex,
+                            unsigned char* nData,unsigned long DataLen,unsigned long nTime) = 0;
 
     //设置到位误差及整定时间
     virtual int  SetArrivalBand(double dErrorBand, double dSettingTime) = 0;
@@ -291,14 +298,14 @@ public:
     //模板类型
 
     // template <typename T>
-    //virtual int WriteSerialValueF(std::string sSerial,std::any tValue)=0;
+    //virtual int WriteSerialValue(std::string sSerial,std::any tValue)=0;
     virtual int WriteSerialValueN(std::string sSerial,int nValue)=0;
     virtual int WriteSerialValueF(std::string sSerial,double dValue)=0;
 
-    //virtual int WriteSerialValueF(std::string sSerial)=0;
+    //virtual int WriteSerialValue(std::string sSerial)=0;
     //virtual int WriteSockValue(std::string sSerial,std::any tValue)=0;
     virtual int WriteSockValueN(std::string sSerial,int nValue)=0;
-    virtual int WriteSockValueF(std::string sSerial,double dValue)=0;
+    virtual int WriteSockValueF(std::string sSerial,float fValue)=0;
 
     virtual int WriteSockCommand(std::string sSerial)=0;
 
@@ -480,6 +487,7 @@ public:
 protected:
     //!当前不同回零方式
     //!IO回零
+
     virtual int IO2HomeMethod() = 0;
     //!Home捕获回零
     virtual int Home2HomeMethod() = 0;

+ 0 - 1
Output/inc/Module/JMotion.h

@@ -7,7 +7,6 @@
 #include <vector>
 #include  <map>
 
-
 /*
  * 原先在抽象ICard中定义的数字移入此处
  * by liuyenuo 2024/10/21

+ 19 - 18
Output/inc/Module/Machine.h

@@ -45,17 +45,18 @@
 class C_MACHINE_DLL_API Machine
 {
 public:
-	enum HeadType
-	{
-		UltralHead,		//超声头
-		EutecticHead,	//共晶头
-	};
+	//enum HeadType
+	//{
+	//	UltralHead,		//超声头
+	//	EutecticHead,	//共晶头
+	//};
 	static Machine* GetInstance();
 	static void releaseInstance();
 	JMotion* GetMotion() {return m_pMotion;}
 
 	LONG ToHome();
 
+	void ShowMotionAdjustPage();
 	vector<CAxis*> GetMachineAllAxis() {return m_vetAxis;};
 	CBondHead* GetBondHead() {return m_pBondHead;}
 	//CUltraHead* GetUltraHead() { return m_pBondHead; };
@@ -81,18 +82,18 @@ public:
 		return m_pMotion;
 	}
 
-	CXYCalib* GetBondHeadHighCameraCalib() {
-		switch (Machine::m_eHeadType)
-		{
-			case Machine::HeadType::UltralHead:
-				return nullptr;
-			case Machine::HeadType::EutecticHead:
-				return m_pBondHead->GetHighCameraCalib();
-			default:
-				return nullptr;
-				break;
-		}
-	}
+	//CXYCalib* GetBondHeadHighCameraCalib() {
+	//	switch (Machine::m_eHeadType)
+	//	{
+	//		case Machine::HeadType::UltralHead:
+	//			return nullptr;
+	//		case Machine::HeadType::EutecticHead:
+	//			return m_pBondHead->GetHighCameraCalib();
+	//		default:
+	//			return nullptr;
+	//			break;
+	//	}
+	//}
 	CXYCalib* GetBondHeadLowCameraCalib() { return m_pBondHead->GetLowCameraCalib(); }
 	CXYCalib* GetLookUpCameraCalib() { return m_pBondHead->GetLookUpCameraCalib(); }
 	CXYCalib* GetWaferCameraCalib() { return m_pWaferTable->GetWaferXYCalib(); }
@@ -158,7 +159,7 @@ private:
 
 	bool m_bIsInitSuccess = false;
 	bool    m_bMotionEnable = true;               //运控卡禁止/启用
-	HeadType m_eHeadType = HeadType::UltralHead;
+	HeadType m_eHeadType = HeadType::EutecticHead;
 	CHardware* m_pCHardware = nullptr;
 
 	

BIN
Output/lib/x64/Common.lib


BIN
Output/lib/x64/Control.lib


BIN
Output/lib/x64/JSMotion.lib


BIN
Output/lib/x64/Module.lib


+ 2 - 2
View/die-bonder-ui/Login.ui

@@ -38,7 +38,7 @@
       </font>
      </property>
      <property name="text">
-      <string>1</string>
+      <string>admin</string>
      </property>
     </widget>
     <widget class="QLineEdit" name="passLineEdit">
@@ -56,7 +56,7 @@
       </font>
      </property>
      <property name="text">
-      <string>1</string>
+      <string>admin</string>
      </property>
      <property name="echoMode">
       <enum>QLineEdit::Password</enum>

+ 2 - 0
View/die-bonder-ui/Src/RewriteControl/ControlOperationPage.h

@@ -125,6 +125,8 @@ private:
 private:
     Ui::ControlOperationPage* ui;
     QPixmap                     m_currentPixmap;
+    /**缩放比
+     */
     qreal                       m_scaleFactor;
     QPoint                      m_mousePos;
     OperateMode                 m_currentMode = ModeImage;

+ 1 - 1
View/die-bonder-ui/Src/common/GlobalUse/JMouseMonitorThread.cpp

@@ -64,7 +64,7 @@ void JMouseMonitorThread::ConvertUIClickToImagePixel(int uiX, int uiY, int& imag
 
 void JMouseMonitorThread::ConvertUIClickToImagePixel2(int uiX, int uiY, int& imageX, int& imageY)
 {
-    const int uiWidth = 493;   // UI控件实际宽度
+    const int uiWidth = 493;   // UI控件实际宽度 4:3
     const int uiHeight = 493;  // UI控件实际高度
     const int imgWidth = 640;  // 原始图像宽度
     const int imgHeight = 480; // 原始图像高度