|
|
#pragma once
|
|
|
#include <QString>
|
|
|
#include <vector>
|
|
|
#include <iostream>
|
|
|
#include <bitset>
|
|
|
#include <sstream>
|
|
|
#include <iomanip>
|
|
|
#include <string>
|
|
|
#include <algorithm>
|
|
|
#include <cctype>
|
|
|
|
|
|
#include "global.h"
|
|
|
//#include "mappingchart_global.h"
|
|
|
|
|
|
|
|
|
class _declspec(dllexport) RecipeAttrObj
|
|
|
{
|
|
|
public:
|
|
|
typedef struct
|
|
|
{
|
|
|
int id;
|
|
|
int type; //0:线段,1代表圆
|
|
|
double x1;
|
|
|
double x2;
|
|
|
double y1;
|
|
|
double y2;
|
|
|
double diameter; //直径
|
|
|
}MarkGraphics;
|
|
|
|
|
|
public:
|
|
|
RecipeAttrObj();
|
|
|
~RecipeAttrObj();
|
|
|
|
|
|
RecipeAttrObj& operator=(const RecipeAttrObj& other);
|
|
|
|
|
|
public:
|
|
|
void GenerateWaferIdContent(int autoGenWay, int cassSlot);
|
|
|
int JudgeWaferSize();
|
|
|
|
|
|
private:
|
|
|
std::vector<unsigned char> stringToBytes(const std::string& str);
|
|
|
|
|
|
uint8_t crc82(const std::vector<unsigned char>& data);
|
|
|
|
|
|
public:
|
|
|
QString m_PPID;
|
|
|
|
|
|
int m_dieMarkFlag; //0代表未选中,1代表选中
|
|
|
int m_waferIDMarkFlag; //0代表未选中,1代表选中
|
|
|
|
|
|
QString m_lotID;
|
|
|
double m_waferDie; //wafer直径
|
|
|
double m_waferThick;
|
|
|
double m_dieWidth;
|
|
|
double m_dieHeight;
|
|
|
double m_baseDieCoordX;
|
|
|
double m_baseDIeCoordY;
|
|
|
double m_mark1CoordX;
|
|
|
double m_mark1CoordY;
|
|
|
double m_mark2CoordX;
|
|
|
double m_mark2CoordY;
|
|
|
|
|
|
double m_watchDie1X;
|
|
|
double m_watchDie1Y;
|
|
|
double m_watchDie2X;
|
|
|
double m_watchDie2Y;
|
|
|
|
|
|
double m_mark1ToAxisCoordX;
|
|
|
double m_mark1ToAxisCoordY;
|
|
|
double m_mark2ToAxisCoordX;
|
|
|
double m_mark2ToAxisCoordY;
|
|
|
double m_norchToAxisCoordX;
|
|
|
double m_norchToAxisCoordY;
|
|
|
|
|
|
QString m_cameraModuleID;
|
|
|
QString m_cameraMark1ModuleID;
|
|
|
QString m_cameraMark2ModuleID;
|
|
|
QString m_cameraZFocus;
|
|
|
|
|
|
double m_workSpeed;
|
|
|
double m_emptySpeed;
|
|
|
double m_openFrontDelay;
|
|
|
double m_openBackDelay;
|
|
|
double m_closeFrontDelay;
|
|
|
double m_closeBackDelay;
|
|
|
double m_drTime;
|
|
|
double m_laserFreq; //激光Q频率 英谷激光器代表真实频率
|
|
|
double m_laserPower; //激光E频率 英谷激光器代表占空比
|
|
|
double m_laserRealPower; //激光器频率对应真实功率值
|
|
|
double m_markZFocus; //激光器频率对应真实功率值
|
|
|
|
|
|
QString m_charContent; //字符内容
|
|
|
QString m_markCharContent;
|
|
|
double m_charSpacing; //字符间距
|
|
|
double m_offsetNorchX;
|
|
|
double m_offsetNorchY;
|
|
|
double m_semiWidth;
|
|
|
double m_semiHeight;
|
|
|
int m_isAutoGenerrate; //0代表原始,1代表原始+SLOT,2代表原始+SLOT+CRC8
|
|
|
int m_isMarkChar; //1代表标刻,0代表不标刻只是跑流程
|
|
|
double m_markFocal;
|
|
|
|
|
|
int m_markType; //0代表正常打,1 代表环打
|
|
|
double m_circleMarkAngle;
|
|
|
|
|
|
int m_addSerialFlag; //是否增加流水码模式,0不增加,1增加
|
|
|
QString m_serialStartStr; //流水码开始字符串,在bool DieUI::SetRecipeDie(RecipeAttrObj& obj)函数内设置默认值
|
|
|
//double m_serialCharWidth; //流水码宽
|
|
|
//double m_serialCharHeight; //流水码高
|
|
|
//double m_serialCharSpacing; //流水码间隔
|
|
|
//double m_serialCharCoordX;
|
|
|
//double m_serialCharCoordY;
|
|
|
|
|
|
QString m_areaOffsetStr; //区域偏移字符串
|
|
|
double m_waferOffsetX; //整体偏移
|
|
|
double m_waferOffsetY; //整体偏移
|
|
|
int m_yDirectionOffsetUseXFlag; //0:不使用X方向补偿Y方向 1:使用X方向补偿Y方向
|
|
|
double m_yDirectionOneOffset; //根据测试之后,一颗补偿多少
|
|
|
int m_xDirectionAutoOffsetFlag; //0:不自动补偿 1:自动补偿
|
|
|
|
|
|
QString m_fontType;
|
|
|
std::vector<MarkChar> m_markCharVec;
|
|
|
std::vector<MarkChar> m_InputMarkCharVec;
|
|
|
std::vector<MarkGraphics> m_markGraphicsVec;
|
|
|
};
|