📄 hello.c
字号:
Yabs=Yabs+pulse;
return True;
}
else
return False;
}
else return True;
}
//-----------------------------------------
int CountCheckSum2(int FuncNum,long para1,long para2)
{
int checksum;
checksum=FuncNum + para1+ (para1>>8) + (para1>>16) + (para1>>24)
+ para2+ (para2>>8) + (para2>>16) + (para2>>24);
checksum=checksum & 0xff;
return checksum;
}
//-----------------------------------------
Boolean Line(long xpulse,long ypulse)
{
char Buf[11];
char data,i=0;
if(AbsFlag)
{
xpulse=xpulse-Xabs;
ypulse=ypulse-Yabs;
}
if(xpulse | ypulse)
{
Buf[0]=0xff;
Buf[1]=CountCheckSum2(LINE,xpulse,ypulse);
Buf[2]=LINE;
Buf[3]=(xpulse>>24) & 0xff;
Buf[4]=(xpulse>>16) & 0xff;
Buf[5]=(xpulse>>8) & 0xff;
Buf[6]=xpulse & 0xff;
Buf[7]=(ypulse>>24) & 0xff;
Buf[8]=(ypulse>>16) & 0xff;
Buf[9]=(ypulse>>8) & 0xff;
Buf[10]=ypulse & 0xff;
do{
WriteABuffer(Buf,11);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10 && (char)data!=(char)0xf0) return False;
} while(data!=(char)0xf0);
}
Xabs=Xabs+xpulse;
Yabs=Yabs+ypulse;
return True;
}
//-----------------------------------------
Boolean DLine(long xpulse,long ypulse)
{
char Buf[11];
char data,i=0;
if(AbsFlag)
{
xpulse=xpulse-Xabs;
ypulse=ypulse-Yabs;
}
if(xpulse | ypulse)
{
Buf[0]=0xff;
Buf[1]=CountCheckSum2(DLINE,xpulse,ypulse);
Buf[2]=DLINE;
Buf[3]=(xpulse>>24) & 0xff;
Buf[4]=(xpulse>>16) & 0xff;
Buf[5]=(xpulse>>8) & 0xff;
Buf[6]=xpulse & 0xff;
Buf[7]=(ypulse>>24) & 0xff;
Buf[8]=(ypulse>>16) & 0xff;
Buf[9]=(ypulse>>8) & 0xff;
Buf[10]=ypulse & 0xff;
do{
WriteABuffer(Buf,11);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10 && (char)data!=(char)0xf0) return False;
} while(data!=(char)0xf0);
}
Xabs=Xabs+xpulse;
Yabs=Yabs+ypulse;
return True;
}
//-----------------------------------------
int CountCheckSum4(int FuncNum,long para1,long para2,long para3,long para4)
{
int checksum;
checksum=FuncNum + para1+ (para1>>8) + (para1>>16) + (para1>>24)
+ para2+ (para2>>8) + (para2>>16) + (para2>>24)
+ para3+ (para3>>8) + (para3>>16) + (para3>>24)
+ para4+ (para4>>8) + (para4>>16) + (para4>>24);
checksum=checksum & 0xff;
return checksum;
}
//-----------------------------------------
Boolean ClearError(void)
{
char Buf[3];
char data,i=0;
Buf[0]=0xff;
Buf[1]=CLEARERROR;
Buf[2]=CLEARERROR;
do{
WriteABuffer(Buf,3);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10) return False;
} while(data!=(char)0xf0);
return True;
}
//-----------------------------------------
Boolean Ccw(long xcen,long ycen,long xpulse,long ypulse)
{
char Buf[19];
char data,i=0;
extern float Distance(long,long,long,long);
extern void CheckMessage();
float x=xpulse,y=ypulse;
float d1=Distance(xcen,ycen,Xabs,Yabs);
float d2=Distance(xcen,ycen,xpulse,ypulse);
float d3;
if(d1>d2)
d3=d2/(d1+1);
else
d3=d1/(d2+1);
if(AbsFlag)
{
xpulse=xcen+(float)(xpulse-xcen)*d3-Xabs;
ypulse=ycen+(float)(ypulse-ycen)*d3-Yabs;
xcen=xcen-Xabs;
ycen=ycen-Yabs;
if(xpulse==0 || ypulse==0)
if(abs(xpulse-ypulse)<5 )
xpulse=ypulse=0;
}else
{
xpulse=xcen+(float)(xpulse-xcen)*d3;
ypulse=ycen+(float)(ypulse-ycen)*d3;
}
Buf[0]=0xff;
Buf[1]=CountCheckSum4(mCCW,xcen,ycen,xpulse,ypulse);
Buf[2]=mCCW;
Buf[3]=(xcen>>24) & 0xff;
Buf[4]=(xcen>>16) & 0xff;
Buf[5]=(xcen>>8) & 0xff;
Buf[6]=xcen & 0xff;
Buf[7]=(ycen>>24) & 0xff;
Buf[8]=(ycen>>16) & 0xff;
Buf[9]=(ycen>>8) & 0xff;
Buf[10]=ycen & 0xff;
Buf[11]=(xpulse>>24) & 0xff;
Buf[12]=(xpulse>>16) & 0xff;
Buf[13]=(xpulse>>8) & 0xff;
Buf[14]=xpulse & 0xff;
Buf[15]=(ypulse>>24) & 0xff;
Buf[16]=(ypulse>>16) & 0xff;
Buf[17]=(ypulse>>8) & 0xff;
Buf[18]=ypulse & 0xff;
do{
WriteABuffer(Buf,19);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10 && (char)data!=(char)0xf0) return False;
} while(data!=(char)0xf0);
while(!Idle())
{
CheckMessage();
}
Line(x,y);
while(!Idle())
{
CheckMessage();
}
Xabs=Xabs+xpulse;
Yabs=Yabs+ypulse;
return True;
}
//-----------------------------------------
Boolean DCcw(long xcen,long ycen,long xpulse,long ypulse)
{
char Buf[19];
char data,i=0;
if(AbsFlag)
{
xcen=xcen-Xabs;
ycen=ycen-Yabs;
xpulse=xpulse-Xabs;
ypulse=ypulse-Yabs;
}
Buf[0]=0xff;
Buf[1]=CountCheckSum4(DCCW,xcen,ycen,xpulse,ypulse);
Buf[2]=DCCW;
Buf[3]=(xcen>>24) & 0xff;
Buf[4]=(xcen>>16) & 0xff;
Buf[5]=(xcen>>8) & 0xff;
Buf[6]=xcen & 0xff;
Buf[7]=(ycen>>24) & 0xff;
Buf[8]=(ycen>>16) & 0xff;
Buf[9]=(ycen>>8) & 0xff;
Buf[10]=ycen & 0xff;
Buf[11]=(xpulse>>24) & 0xff;
Buf[12]=(xpulse>>16) & 0xff;
Buf[13]=(xpulse>>8) & 0xff;
Buf[14]=xpulse & 0xff;
Buf[15]=(ypulse>>24) & 0xff;
Buf[16]=(ypulse>>16) & 0xff;
Buf[17]=(ypulse>>8) & 0xff;
Buf[18]=ypulse & 0xff;
do{
WriteABuffer(Buf,19);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10 && (char)data!=(char)0xf0) return False;
} while(data!=(char)0xf0);
Xabs=Xabs+xpulse;
Yabs=Yabs+ypulse;
return True;
}
//-----------------------------------------
Boolean Test(long xcen,long ycen,long xpulse,long ypulse)
{
char Buf[19];
char data,i=0;
Buf[0]=0xff;
Buf[1]=CountCheckSum4(mCW,xcen,ycen,xpulse,ypulse);
Buf[2]=mCW;
Buf[3]=(xcen>>24) & 0xff;
Buf[4]=(xcen>>16) & 0xff;
Buf[5]=(xcen>>8) & 0xff;
Buf[6]=xcen & 0xff;
Buf[7]=(ycen>>24) & 0xff;
Buf[8]=(ycen>>16) & 0xff;
Buf[9]=(ycen>>8) & 0xff;
Buf[10]=ycen & 0xff;
Buf[11]=(xpulse>>24) & 0xff;
Buf[12]=(xpulse>>16) & 0xff;
Buf[13]=(xpulse>>8) & 0xff;
Buf[14]=xpulse & 0xff;
Buf[15]=(ypulse>>24) & 0xff;
Buf[16]=(ypulse>>16) & 0xff;
Buf[17]=(ypulse>>8) & 0xff;
Buf[18]=ypulse & 0xff;
do{
WriteABuffer(Buf,19);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10 && (char)data!=(char)0xf0) return False;
} while(data!=(char)0xf0);
Xabs=Xabs+xpulse;
Yabs=Yabs+ypulse;
return True;
}
Boolean Cw(long xcen,long ycen,long xpulse,long ypulse)
{
char Buf[19];
char data,i=0;
extern void CheckMessage();
extern float Distance(long,long,long,long);
float d1=Distance(xcen,ycen,Xabs,Yabs);
float d2=Distance(xcen,ycen,xpulse,ypulse);
float d3;
long x=xpulse,y=ypulse;
if(d1>d2)
d3=d2/(d1+1);
else
d3=d1/(d2+1);
if(AbsFlag)
{
xpulse=xcen+(xpulse-xcen)*d3-Xabs;
ypulse=ycen+(ypulse-ycen)*d3-Yabs;
xcen=xcen-Xabs;
ycen=ycen-Yabs;
if(xpulse==0 || ypulse==0)
if(abs(xpulse-ypulse)<5 )
xpulse=ypulse=0;
// -127 145 -305 220
// 177 -75 313 78
}else
{
xpulse=xcen+(xpulse-xcen)*(d1/d2);
ypulse=ycen+(ypulse-ycen)*(d1/d2);
}
Buf[0]=0xff;
Buf[1]=CountCheckSum4(mCW,xcen,ycen,xpulse,ypulse);
Buf[2]=mCW;
Buf[3]=(xcen>>24) & 0xff;
Buf[4]=(xcen>>16) & 0xff;
Buf[5]=(xcen>>8) & 0xff;
Buf[6]=xcen & 0xff;
Buf[7]=(ycen>>24) & 0xff;
Buf[8]=(ycen>>16) & 0xff;
Buf[9]=(ycen>>8) & 0xff;
Buf[10]=ycen & 0xff;
Buf[11]=(xpulse>>24) & 0xff;
Buf[12]=(xpulse>>16) & 0xff;
Buf[13]=(xpulse>>8) & 0xff;
Buf[14]=xpulse & 0xff;
Buf[15]=(ypulse>>24) & 0xff;
Buf[16]=(ypulse>>16) & 0xff;
Buf[17]=(ypulse>>8) & 0xff;
Buf[18]=ypulse & 0xff;
do{
WriteABuffer(Buf,19);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10 && (char)data!=(char)0xf0) return False;
} while(data!=(char)0xf0);
Xabs=Xabs+xpulse;
Yabs=Yabs+ypulse;
while(!Idle())
{
CheckMessage();
}
Line(x,y);
while(!Idle())
{
CheckMessage();
}
Xabs=Xabs+xpulse;
Yabs=Yabs+ypulse;
return True;
}
//-----------------------------------------
Boolean DCw(long xcen,long ycen,long xpulse,long ypulse)
{
char Buf[19];
char data,i=0;
if(AbsFlag)
{
xcen=xcen-Xabs;
ycen=ycen-Yabs;
xpulse=xpulse-Xabs;
ypulse=ypulse-Yabs;
}
Buf[0]=0xff;
Buf[1]=CountCheckSum4(DCW,xcen,ycen,xpulse,ypulse);
Buf[2]=DCW;
Buf[3]=(xcen>>24) & 0xff;
Buf[4]=(xcen>>16) & 0xff;
Buf[5]=(xcen>>8) & 0xff;
Buf[6]=xcen & 0xff;
Buf[7]=(ycen>>24) & 0xff;
Buf[8]=(ycen>>16) & 0xff;
Buf[9]=(ycen>>8) & 0xff;
Buf[10]=ycen & 0xff;
Buf[11]=(xpulse>>24) & 0xff;
Buf[12]=(xpulse>>16) & 0xff;
Buf[13]=(xpulse>>8) & 0xff;
Buf[14]=xpulse & 0xff;
Buf[15]=(ypulse>>24) & 0xff;
Buf[16]=(ypulse>>16) & 0xff;
Buf[17]=(ypulse>>8) & 0xff;
Buf[18]=ypulse & 0xff;
do{
WriteABuffer(Buf,19);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10 && (char)data!=(char)0xf0) return False;
} while(data!=(char)0xf0);
Xabs=Xabs+xpulse;
Yabs=Yabs+ypulse;
return True;
}
//-----------------------------------------
int RdStatus(void)
{
char Buf[3];
char data,i=0,IsFull;
Buf[0]=0xff;
Buf[1]=RDSTA;
Buf[2]=RDSTA;
do{
WriteABuffer(Buf,3);
if( !ReadABuffer(&data,(DWord)1) )
return 0;
i++;
if( i>10 && (char)data!=(char)0xf0)
return False;
} while(data!=(char)0xf0);
if( !ReadABuffer(&IsFull,(DWord)1) )
return 0;
return IsFull;
}
//-----------------------------------------
Boolean RdXYZP(long *xposi,long *yposi,long *zposi)
{
char Buf[3];
char data,i=0,RdData[13],CheckSum=0;
long h3,h2,h1,h0;
int j;
Buf[0]=0xff;
Buf[1]=RDXYZP;
Buf[2]=RDXYZP;
do{
WriteABuffer(Buf,3);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10 && (char)data!=(char)0xf0) return False;
} while(data!=(char)0xf0);
if(!ReadABuffer(RdData,(DWord)13) ) return False;
for(j=0;j<12;j++)
CheckSum=CheckSum+RdData[j];
if(CheckSum != RdData[12]) return False;
h3=RdData[0];
h2=RdData[1];
h1=RdData[2];
h0=RdData[3];
*xposi=((h3<<24) & 0xff000000) + ((h2<<16) & 0xff0000)+
((h1<<8) & 0xff00) + (h0 & 0xff);
h3=RdData[4];
h2=RdData[5];
h1=RdData[6];
h0=RdData[7];
*yposi=((h3<<24) & 0xff000000) + ((h2<<16) & 0xff0000)+
((h1<<8) & 0xff00) + (h0 & 0xff);
h3=RdData[8];
h2=RdData[9];
h1=RdData[10];
h0=RdData[11];
*zposi=((h3<<24) & 0xff000000) + ((h2<<16) & 0xff0000)+
((h1<<8) & 0xff00) + (h0 & 0xff);
return True;
}
//-----------------------------------------
Boolean CheckCable()
{
char x,y,z;
XRdInSta(&x);
YRdInSta(&y);
ZRdInSta(&z);
if( (x & 1) && (y & 1) && (z & 1))
{
Stop();
XOut(0,1);
YOut(0,1);
ZOut(0,1);
XOut(2,0);
// AfxMessageBox("Machine I/O Cable Connnect Fail !");
return True;
}
return False;
}
Boolean XRdInSta(char *insta)
{
char Buf[3];
char data,i=0;
Buf[0]=0xff;
Buf[1]=XRDINSTA;
Buf[2]=XRDINSTA;
do{
WriteABuffer(Buf,3);
if( !ReadABuffer(&data,(DWord)1) ) return False;
i++;
if( i>10 && (char)data!=(char)0xf0) return False;
} while(data!=(char)0xf0);
if( !ReadABuffer(insta,(DWord)1) ) return False;
return True;
}
//-----------------------------------------
Boolean YRdInSta(char *insta)
{
char Buf[3];
char data,i=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -