init
This commit is contained in:
141
device/control/acs/buffercode/mhcompcode.cpp
Normal file
141
device/control/acs/buffercode/mhcompcode.cpp
Normal file
@@ -0,0 +1,141 @@
|
||||
#include "mhcompcode.h"
|
||||
#include <QString>
|
||||
|
||||
MHCompCode::MHCompCode()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
|
||||
void MHCompCode::setXStartPos(double value)
|
||||
{
|
||||
xStartPos = value;
|
||||
}
|
||||
|
||||
void MHCompCode::setYStartPos(double value)
|
||||
{
|
||||
yStartPos = value;
|
||||
}
|
||||
|
||||
void MHCompCode::setXWorkRange(double value)
|
||||
{
|
||||
xWorkRange = value;
|
||||
}
|
||||
|
||||
void MHCompCode::setYWorkRange(double value)
|
||||
{
|
||||
yWorkRange = value;
|
||||
}
|
||||
|
||||
void MHCompCode::setXInterval(double value)
|
||||
{
|
||||
xInterval = value;
|
||||
}
|
||||
void MHCompCode::setYInterval(double value)
|
||||
{
|
||||
yInterval = value;
|
||||
}
|
||||
|
||||
int MHCompCode::getLookupRows()
|
||||
{
|
||||
// 比如范围为3,间隔为1,Y方向会有4条线段
|
||||
return int(xWorkRange/xInterval)+1;
|
||||
}
|
||||
|
||||
int MHCompCode::getLookupCols()
|
||||
{
|
||||
return int(yWorkRange/yInterval)+1;
|
||||
}
|
||||
|
||||
|
||||
void MHCompCode::setMHRHYOffset(double value)
|
||||
{
|
||||
MHRHYOffset = value;
|
||||
}
|
||||
void MHCompCode::setMHRHXOffset(double value)
|
||||
{
|
||||
MHRHXOffset = value;
|
||||
}
|
||||
|
||||
|
||||
void MHCompCode::setLookupRows(int value)
|
||||
{
|
||||
rows = value;
|
||||
}
|
||||
void MHCompCode::setLookupCols(int value)
|
||||
{
|
||||
cols = value;
|
||||
}
|
||||
QString MHCompCode::getCode()
|
||||
{
|
||||
QString code = QString("global real LookupTable(%1)(%2),xStart,yStart\n").arg(rows).arg(cols);
|
||||
code+=
|
||||
"MFLAGS(Z).#DEFCON = 0\n"
|
||||
"CONNECT RPOS(Z) = RPOS(Z)\n"
|
||||
"DEPENDS Z, Z\n"+
|
||||
//QString("SET APOS(Z) = RPOS(Z) - MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos+MHRHYOffset-yInterval).arg(yInterval).arg(xStartPos+MHRHXOffset-xInterval).arg(xInterval)+
|
||||
//QString("CONNECT RPOS(Z) = APOS(Z) + MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos+MHRHYOffset-yInterval).arg(yInterval).arg(xStartPos+MHRHXOffset-xInterval).arg(xInterval)+
|
||||
//QString("SET APOS(Z) = RPOS(Z) - MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos+MHRHYOffset).arg(yInterval).arg(xStartPos+MHRHXOffset).arg(xInterval)+
|
||||
//QString("CONNECT RPOS(Z) = APOS(Z) + MAP2(FPOS(Y), FPOS(X), LookupTable, %1, %2, %3, %4)\n").arg(yStartPos+MHRHYOffset).arg(yInterval).arg(xStartPos+MHRHXOffset).arg(xInterval)+
|
||||
QString("SET APOS(Z) = RPOS(Z) - MAP2(FPOS(X), FPOS(Y), LookupTable, %1, %2, %3, %4)\n").arg(xStartPos+MHRHXOffset).arg(xInterval).arg(yStartPos+MHRHYOffset).arg(yInterval)+
|
||||
QString("CONNECT RPOS(Z) = APOS(Z) + MAP2(FPOS(X), FPOS(Y), LookupTable, %1, %2, %3, %4)\n").arg(xStartPos+MHRHXOffset).arg(xInterval).arg(yStartPos+MHRHYOffset).arg(yInterval)+
|
||||
|
||||
"DEPENDS Z, Z\n"
|
||||
"runF = 1\n"
|
||||
"STOP";
|
||||
return code;
|
||||
}
|
||||
|
||||
QString MHCompCode::getCode_motion()
|
||||
{
|
||||
QString code = QString("GLOBAL REAL MAXINlhc=%1,MAXPOS_Xlhc=%2,MINPOS_Xlhc=%3,X_OFFSETlhc=%4,myRange\n").arg(MaxCmp).arg(MaxPos_x).arg(MinPos_x).arg(x_offset);
|
||||
code+=
|
||||
"GLOBAL REAL XPOINT(10000),ERR_Z1(10000)\n"
|
||||
"REAL tmp_data\n"
|
||||
"INT i,flag,count_data\n"
|
||||
"i=9999\n"
|
||||
"FILL(0,ERR_Z1,0,9999)\n"
|
||||
"FILL(MINPOS_Xlhc,XPOINT,0,9999)\n"
|
||||
"tmp_data=0;count_data=0\n"
|
||||
"MFLAGS(Z).17=0\n"
|
||||
"CONNECT RPOS(Z)=APOS(Z)+MAPNS((FPOS(X)+X_OFFSETlhc),XPOINT,ERR_Z1)\n"
|
||||
"DEPENDS Z, Z\n"
|
||||
"WHILE 1\n"
|
||||
"IF FPOS(X)>MINPOS_Xlhc & FPOS(X)<MAXPOS_Xlhc\n"
|
||||
"IF MST(X).#MOVE & RVEL(X) < 0\n"
|
||||
"XPOINT(i)=FPOS(X); myRange=RangeV\n"
|
||||
"IF ABS(myRange)>MAXINlhc\n"
|
||||
"if i<9999\n"
|
||||
"myRange=ERR_Z1(i+1)\n"
|
||||
"else\n"
|
||||
"myRange=tmp_data\n"
|
||||
"end\n"
|
||||
"ELSE\n"
|
||||
"IF count_data<1\n"
|
||||
"tmp_data=myRange\n"
|
||||
"count_data=count_data+1\n"
|
||||
"END\n"
|
||||
"END\n"
|
||||
"ERR_Z1(i)=myRange\n"
|
||||
"i=i-1\n"
|
||||
"if i<0\n"
|
||||
"i=0\n"
|
||||
"END\n"
|
||||
"END\n"
|
||||
"END\n"
|
||||
"IF FPOS(X)>MAXPOS_Xlhc\n"
|
||||
"i=9999\n"
|
||||
"count_data=0\n"
|
||||
"FILL(tmp_data,ERR_Z1,0,9999)\n"
|
||||
"FILL(MINPOS_Xlhc,XPOINT,0,9999)\n"
|
||||
"END\n"
|
||||
"END\n"
|
||||
"MFLAGS(Z).17=1\n"
|
||||
"STOP\n";
|
||||
|
||||
return code;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user