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.
52 lines
1.4 KiB
C++
52 lines
1.4 KiB
C++
#include "GugaoCardManage.h"
|
|
|
|
GugaoCardManage* GugaoCardManage::m_instance = NULL;
|
|
CMotorDriver* GugaoCardManage::m_motorDriver = NULL;
|
|
|
|
bool GugaoCardManage::m_isInitCard = false;
|
|
|
|
GugaoCardManage::GugaoCardManage()
|
|
{
|
|
}
|
|
|
|
|
|
GugaoCardManage::~GugaoCardManage()
|
|
{
|
|
}
|
|
|
|
void GugaoCardManage::InitAllAxisParam()
|
|
{
|
|
m_motorDriver->ClearAllAxis();
|
|
for (auto& iter : IniRreadWrite::GetInstance()->m_allAxisVec)
|
|
{
|
|
MotorAttr motorAttrObj;
|
|
motorAttrObj.AxisId(iter.id);
|
|
motorAttrObj.Vel(iter.workMoveSpeed);
|
|
motorAttrObj.Acc(iter.workAcc);
|
|
motorAttrObj.Dec(iter.workDec);
|
|
motorAttrObj.ReturnAcc(iter.homeAcc);
|
|
motorAttrObj.ReturnDec(iter.homeDec);
|
|
motorAttrObj.ReturnHomeMode(iter.homeModel);
|
|
motorAttrObj.ReturnHomeStartVel(iter.homeStartSpeed);
|
|
motorAttrObj.ReturnHomeEndVel(iter.homeEndSpeed);
|
|
motorAttrObj.PositiveLimit(iter.positiveLimit);
|
|
motorAttrObj.NegativeLimit(iter.negativeLimit);
|
|
m_motorDriver->AddMotor(motorAttrObj);
|
|
}
|
|
}
|
|
|
|
void GugaoCardManage::AbsMove(int motorId, double pos, bool waitFinished)
|
|
{
|
|
auto m_motor = GugaoCardManage::GetInstance()->m_motor;
|
|
auto motorObj = std::find_if((*m_motor).begin(), (*m_motor).end(), [&](const MotorAttr &obj)
|
|
{
|
|
return obj.AxisId() == motorId;
|
|
});
|
|
if (motorObj == (*m_motor).end())
|
|
{
|
|
return ;
|
|
}
|
|
GugaoCardManage::GetInstance()->AbsMove(motorId, motorObj->PulseTo1mm(), pos, motorObj->Acc(), motorObj->Dec(), motorObj->Vel(), waitFinished);
|
|
|
|
}
|