You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

126 lines
3.1 KiB
C++

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

#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;
};