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

#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:<3A>߶Σ<DFB6>1<EFBFBD><31><EFBFBD><EFBFBD>Բ
double x1;
double x2;
double y1;
double y2;
double diameter; //ֱ<><D6B1>
}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<><30><EFBFBD><EFBFBD>δѡ<CEB4>У<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
int m_waferIDMarkFlag; //0<><30><EFBFBD><EFBFBD>δѡ<CEB4>У<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>
QString m_lotID;
double m_waferDie; //waferֱ<72><D6B1>
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; //<2F><><EFBFBD><EFBFBD>QƵ<51><C6B5> Ӣ<>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʵƵ<CAB5><C6B5>
double m_laserPower; //<2F><><EFBFBD><EFBFBD>EƵ<45><C6B5> Ӣ<>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>ձ<EFBFBD>
double m_laserRealPower; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʶ<EFBFBD>Ӧ<EFBFBD><D3A6>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>ֵ
double m_markZFocus; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ƶ<EFBFBD>ʶ<EFBFBD>Ӧ<EFBFBD><D3A6>ʵ<EFBFBD><CAB5><EFBFBD><EFBFBD>ֵ
QString m_charContent; //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
QString m_markCharContent;
double m_charSpacing; //<2F>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD>
double m_offsetNorchX;
double m_offsetNorchY;
double m_semiWidth;
double m_semiHeight;
int m_isAutoGenerrate; //0<><30><EFBFBD><EFBFBD>ԭʼ<D4AD><CABC>1<EFBFBD><31><EFBFBD><EFBFBD>ԭʼ+SLOT,2<><32><EFBFBD><EFBFBD>ԭʼ+SLOT+CRC8
int m_isMarkChar; //1<><31><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>̣<EFBFBD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double m_markFocal;
int m_markType; //0<><30><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1 <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
double m_circleMarkAngle;
int m_addSerialFlag; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ˮ<EFBFBD><CBAE>ģʽ<C4A3><CABD>0<EFBFBD><30><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
QString m_serialStartStr; //<2F><>ˮ<EFBFBD>뿪ʼ<EBBFAA>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>bool DieUI::SetRecipeDie(RecipeAttrObj& obj)<29><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĭ<EFBFBD><C4AC>ֵ
//double m_serialCharWidth; //<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>
//double m_serialCharHeight; //<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD>
//double m_serialCharSpacing; //<2F><>ˮ<EFBFBD><CBAE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//double m_serialCharCoordX;
//double m_serialCharCoordY;
QString m_areaOffsetStr; //<2F><><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD>ַ<EFBFBD><D6B7><EFBFBD>
double m_waferOffsetX; //<2F><><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
double m_waferOffsetY; //<2F><><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB>
int m_yDirectionOffsetUseXFlag; //0<><30><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9>X<EFBFBD><58><EFBFBD>򲹳<EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD> 1<><31>ʹ<EFBFBD><CAB9>X<EFBFBD><58><EFBFBD>򲹳<EFBFBD>Y<EFBFBD><59><EFBFBD><EFBFBD>
double m_yDirectionOneOffset; //<2F><><EFBFBD>ݲ<EFBFBD><DDB2><EFBFBD>֮<EFBFBD><D6AE><EFBFBD><EFBFBD>һ<EFBFBD>Ų<EFBFBD><C5B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int m_xDirectionAutoOffsetFlag; //0<><30><EFBFBD><EFBFBD><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD> 1<><31><EFBFBD>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD><EFBFBD>
QString m_fontType;
std::vector<MarkChar> m_markCharVec;
std::vector<MarkChar> m_InputMarkCharVec;
std::vector<MarkGraphics> m_markGraphicsVec;
};