15,471
社区成员
发帖
与我相关
我的任务
分享
HANDLE hThread=CreateThread(NULL,0,RunProc,(LPVOID)&m_PtrArray,0,NULL);
CloseHandle(hThread);
DWORD WINAPI CMyView::RunProc(LPVOID lpParameter)
{
CPtrArray *Lpray;
Lpray=(CPtrArray*)lpParameter;
/*
read lpray data
第一次读lpray时没问题,
*/
}
DWORD WINAPI CMyView::RunProc(LPVOID lpParameter)
{
CPtrArray *Lpray;
Lpray=(CPtrArray*)lpParameter; //数据
unsigned short AxisArray[2]; //X轴和y轴
long Target[2],Cen[2]; //目标点 和 圆弧的圆心
long start_speed,move_speed,pos_x,pos_y,cen_x,cen_y,turn_clkwise;
move_speed=10000; //运得速度
start_speed=(move_speed/2); //起始速度
AxisArray[0]=AIX0; //轴号0
AxisArray[1]=AIX1; //轴号1
d5400_set_vector_profile(start_speed,move_speed,ACC_TIME,DEC_TIME);//设置电机插补速度
pos_x=((CGraph *)Lpray->GetAt(0))->m_StartPt.x; //得到第一点的坐标
pos_y=((CGraph *)Lpray->GetAt(0))->m_StartPt.y; //
d5400_t_line2(AIX0,pos_x,AIX1,pos_y,ABSOL); //直线移动到第一点(走直线)
while((M_TURN==d5400_check_done(AIX0))||(M_TURN==d5400_check_done(AIX1)))//等待到位
{}
//============================================================================
for (int i=0;i<(int)((CGraph *)Lpray->GetSize());i++)
{
if (1==((CGraph *)Lpray->GetAt(i))->m_Type)//这是直线
{
pos_x=((CGraph *)Lpray->GetAt(i))->m_EndPt.x;
pos_y=((CGraph *)Lpray->GetAt(i))->m_EndPt.y;
d5400_t_line2(AIX0,pos_x,AIX1,pos_y,ABSOL);//启动走直线
}
else //这是圆弧
{
pos_x=((CGraph *)Lpray->GetAt(i))->m_EndPt.x;
pos_y=((CGraph *)Lpray->GetAt(i))->m_EndPt.y;
cen_x=((CGraph *)Lpray->GetAt(i))->m_ArcCenPt.x;
cen_y=((CGraph *)Lpray->GetAt(i))->m_ArcCenPt.y;
if (0==((CGraph *)Lpray->GetAt(i))->m_TurnFactor)
{turn_clkwise=ATCW;} //顺时针
else
{turn_clkwise=CLWI;} //逆时针
Target[0]=pos_x;
Target[1]=pos_y;
Cen[0]=cen_x;
Cen[1]=cen_y;
d5400_arc_move(AxisArray,Target,Cen,(WORD)turn_clkwise);//启动走圆弧
}
while((M_TURN==d5400_check_done(AIX0))||(M_TURN==d5400_check_done(AIX1)))//等待到位
{}
}
return 0;
}
CGraph *tem_pGraph;
for(int j=0;j<(m_PtrArray.GetSize()-1);j++)
{
for(int i=0;i<((m_PtrArray.GetSize()-1)-j);i++)
{
if((((CGraph *)m_PtrArray.GetAt(i))->m_SerialNo)>(((CGraph *)m_PtrArray.GetAt(i+1))->m_SerialNo))
{
tem_pGraph=(CGraph *)m_PtrArray.GetAt(i);
m_PtrArray.SetAt(i,(CGraph *)m_PtrArray.GetAt(i+1));
m_PtrArray.SetAt(i+1,tem_pGraph);
}
}
}
((CGraph *)m_PtrArray.GetAt(0))->Draw(1);
*/